kostenloser Webspace werbefrei: lima-city


[.htaccess] 404 Fehlerseite

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    coder-0x1

    Kostenloser Webspace von coder-0x1, auf Homepage erstellen warten

    coder-0x1 hat kostenlosen Webspace.

    Hallo zusammen!
    Also, ich habe folgendes Problem:
    Ich hab auf meine Website eine Downloadseite.
    Die Links zu den Downloads auf meiner eigenen Seite verweisen auf "./downloads/$dateiname".
    In diesem Verzeichnis soll sich aber nicht die Datei befinden, sondern nur ein PHP-Script, dass die Datei irgendwoher läd und an den Browser ausgibt.
    Ich habe also das PHP-Script erstellt (sollte soweit auch funktionieren) aber ich möchte jetzt für diesen Ordner einen 404-Verweiß auf das Script machen, sodass wenn z.B. die Datei "textdatei.txt" angefragt wird, der Server eigendlich die "downloader.php" ausführt, welche die "textdatei.txt" an den Browser gibt.
    Ich habe also Folgendes in die .htaccess geschrieben:
    ErrorDocument 404 ./downloader.php

    Allerdings funktioniert das nicht, ich bekomme nur die Ausgabe:
    ./downloader.php

    und das Script wird nicht ausgeführt.

    Ich hoffe, ihr habt mein Problem verstanden und könnt mir helfen.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Probier es mal mit relativen pfaden.

    /download.php

    soweit ich noch weiß müsste es aber bei lima /home/webpages/lima-city/[username/html/ heißen - also

    /home/webpages/lima-city/[username/html/download.php

  4. Also die .htaccess muss bei dir im Obersten Verzeichniss, also / lagern, dann einfach nen extra Ordner Machen "error" -muss net- und fertig ^^


    ErrorDocument 404 /error/404-error.html


    funktioniert Prima, habs getestet ^^
  5. Autor dieses Themas

    coder-0x1

    Kostenloser Webspace von coder-0x1, auf Homepage erstellen warten

    coder-0x1 hat kostenlosen Webspace.

    privatecitypage schrieb:
    Probier es mal mit relativen pfaden.

    /download.php

    soweit ich noch weiß müsste es aber bei lima /home/webpages/lima-city/[username/html/ heißen - also

    /home/webpages/lima-city/[username/html/download.php


    Ich werd's mal versuchen.
    kill-a-teddy schrieb:
    Also die .htaccess muss bei dir im Obersten Verzeichniss, also / lagern, dann einfach nen extra Ordner Machen "error" -muss net- und fertig ^^


    ErrorDocument 404 /error/404-error.html


    funktioniert Prima, habs getestet ^^

    Ich will ja keine 404-Seite sondern nur die Umleitung in einem Ordner auf ein PHP-Script.
    Wenn jmd "/downloads/textdocument.txt" anfragt, dass dann die "downloader.php" aufgerufen wird, die das "textdocument.txt" zurückgibt.

    EDIT:
    Wenn ich
    /home/webpages/lima-city/coder-0x1/html/download.php

    nehme, dann bekomme ich die Ausgabe:
    /home/webpages/lima-city/[username/html/download.php

    Und wenn ich
    /download.php

    nehme dann kommte ein 404-Fehler, dass das Fehlerscript nicht gefunden wurde.

    Beitrag zuletzt geändert: 22.7.2011 18:52:32 von coder-0x1
  6. Warum machst du das nicht mit mod_rewrite?!

    RewriteEngine On
    RewriteRule ^textdatei\.txt$ download.php [QSA]
  7. Autor dieses Themas

    coder-0x1

    Kostenloser Webspace von coder-0x1, auf Homepage erstellen warten

    coder-0x1 hat kostenlosen Webspace.

    fabo schrieb:
    Warum machst du das nicht mit mod_rewrite?!

    RewriteEngine On
    RewriteRule ^textdatei\.txt$ download.php [QSA]

    Weil es nicht eine Datei sein soll, sondern beliebig viele...
    Ich müsste also für jede Datei einen Eintrag in der .htaccess machen.
    Außerdem mal ne Frage (ich kenne mich mit .htaccess nicht so gut aus):
    Wird bei mod_rewrite eine Umleitung für den Browser gestartet, dann währe das nämlich sinnlos für mich, oder wird das wie bei ErrorDocument nur intern umgeleitet?

    Beitrag zuletzt geändert: 23.7.2011 13:54:29 von coder-0x1
  8. Beliebig viele sind doch auch kein Problem. Dafür ist mod_rewrite ja eigentlich gedacht :)

    Zum Thema weiterleitung... Im Gegensatz zu deiner 404 Lösung handelt es sich hier tatsächlich um eine interne Weiterleitung d.h.

    Gibt der Besucher textdatei.txt ein, wird intern die Datei download.php aufgerufen.

    Bei deiner 404-Lösung wird der Besucher vom Browser auf download.php geleitet.

    RewriteEngine On
    RewriteRule (.*)\.html$ download.php?file=$1 [QSA]


    Dies würde beispielsweise jede Anfrage auf eine Textdatei (intern) an download.php?file=XXXX leiten.
  9. Autor dieses Themas

    coder-0x1

    Kostenloser Webspace von coder-0x1, auf Homepage erstellen warten

    coder-0x1 hat kostenlosen Webspace.

    fabo schrieb:
    Beliebig viele sind doch auch kein Problem. Dafür ist mod_rewrite ja eigentlich gedacht :)

    Zum Thema weiterleitung... Im Gegensatz zu deiner 404 Lösung handelt es sich hier tatsächlich um eine interne Weiterleitung d.h.

    Gibt der Besucher textdatei.txt ein, wird intern die Datei download.php aufgerufen.

    Bei deiner 404-Lösung wird der Besucher vom Browser auf download.php geleitet.

    RewriteEngine On
    RewriteRule (.*)\.html$ download.php?file=$1 [QSA]


    Dies würde beispielsweise jede Anfrage auf eine Textdatei (intern) an download.php?file=XXXX leiten.


    Ich habe mal gegooglet und hab folgendes gebastelt:
    RewriteEngine on
    RewriteRule (.*)$ downloader.php?file=$1

    Das funktioniert auf meinem localhost einwandfrei, auf meinem Webspace kann ich aus irgendeinem Grund die .htaccess nicht überschreiben...

    Ich hab das ganze auf Grundlage von dieser Seite gamecht:
    http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

    Da das ganze von deinem Vorschlag abweicht würde ich gerne mal wissen, was der Unterschied ist...

    EDIT:
    Noch ne Frage: was ist mit GET-Feldern? Werden die beibehalten?

    Beitrag zuletzt geändert: 23.7.2011 20:00:36 von coder-0x1
  10. Bei meinem Beispiel gehörte das \.html nicht hin :D

    Zu deiner Frage: Siehst du doch :)

    ^(.*)$ downloader.php?file=$1


    $1 entspricht (.*)

    Sähe es z.B. so aus:

    ^(.*)-(.*)$


    Hättest du zwei Get-Parameter...
  11. Autor dieses Themas

    coder-0x1

    Kostenloser Webspace von coder-0x1, auf Homepage erstellen warten

    coder-0x1 hat kostenlosen Webspace.

    Hast du nen Link, wo das ganze vernünftig erklährt wird?

    Außerdem noch ne Frage: ;-)
    Wenn ich eine Umleitung für alle Dateien in "./downloads" mache und dann eine Umleitung für alle Dateien in z.B. "./downloads/subdir",
    also so:
    RewriteEngine on
    RewriteRule \.downloads/(.*)$ \./downloads/downloader.php?file=$1
    RewriteRule \.downloads/subdir(.*)$ \./downloads/downloader.php?subdir=1&file=$1

    Würde dass funktionieren?
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!