Hallo,
ich hab ein Problem mit ErrorDocument 404 Weiterleitung:
.htaccess:
ErrorDocument 404 /test.php
test.php:
Beide Dateien liege nat. im Root.
Rufe ich die test.php direkt auf bekomm ich die richtige Ausgabe.
Gebe ich allerdings einen ungültigen Link ein, z.b: charlie.bplaced.net/blablablub (gibts nat. nicht)
erhalte ich anstelle der test.php einen 404 Error.
Habs auch mal via Proxy versucht - ebenfalls kein Erfolg, nur wenn ich anstelle der rel. eine absolute Pfadangabe mache.
Ich benötige allerdings die rel. Angabe, da ich sonst mit:
keinen Wert erhalte.
Ich hoffe Jemand hat eine Lösung für mein Problem.
THX!
[quote=„CharlieM“]Gebe ich allerdings einen ungültigen Link ein, z.b: charlie.bplaced.net/blablablub (gibts nat. nicht)
erhalte ich anstelle der test.php einen 404 Error.[/quote]
Natürlich, so soll’s ja auch sein.
Ich weiß nicht mal, was eigentlich dein Problem ist/sein soll.
In solch einem Fall soll ja auch keine Weiterleitung stattfinden.
Das Script, welches du angegeben hast, wird aufgerufen - aber intern, ohne dass der Server einen Redirect an den Browser schickt. Würde er letzteres machen, dann würde der Client nämlich gar nicht korrekt informiert werden, dass ein 404-Fehler aufgetreten ist, weil er dann einen ganz anderen HTTP-Statuscode als Antwort bekommen würde.
Wenn du die Angabe in der .htaccess also korrekt gemacht hast, dann wird dein Script aufgerufen, wenn der Nutzer eine nicht existente Adresse anfordert - was ist denn dann jetzt eigentlich noch das Problem …?
Komm’ mir bitte nicht mit , ich kann nichts dafür, dass dein Verständnis davon noch nicht besonders ausgeprägt ist.
Du bist hier der jenige, der den Sachverhalt nicht begreift!
Das, was dein 404-Script an Ausgaben macht, wird an den Client weitergeben. (Noch mal, wie gesagt, wenn du es in der .htaccess korrekt angegeben hast.)
Bei absoluter Pfadangabe findet ein Redirect statt. Damit wird der Client aufgefordert, noch mal unter einer anderen Adresse nachzufragen - das ist aber in so einem Fall (404) nicht sinnvoll.
Wenn mit der relativen Pfadangabe dein Script nicht aufgerufen wird - dann ist vermutlich schlicht und einfach die Pfadangabe falsch.
Natürlich geht sie „verloren“, weil der Client dann eine neue Ressource anfordert - und du dann in dieser Variablen deren Adresse bekommst.
Hmm…Tonfall…egal
.htaccess hab ich gepostet, das Script kannst ja direkt aufrufen, liegt ja alles im Root.
Beide Files liegen im Root - wie schon gepostet.
Tatsache ist daß das PHP-File mit /test.php nicht aufgerufen wird, dann hätte ich ja schließlich eine Ausgabe und ich hätte hier auf den Fred nicht geantwortet
Und genau das ist nach wie vor mein Problem. Ich benötige zur Weiterverarbeitung eben die URL, welche den 404 Error ausgelöst hat um entsprechend der Anfrage weitere Anweisungen zu machen.
Sonst wäre es mir Apfel wie Käse ob ich abs. oder rel. angebe…
Mit abs. Pfad erhalte ich ja die Ausgabe
test.php
was nicht gerade sinnvoll ist
Keine Ahnung obs sonst iwelche Möglichkeiten gibt um an die auslösende URL zu kommen…
Hab mir schon überlegt die sonstigen Files via .htaccess auszuschließen, was bei einen ebenfalls laufenden CMS ziemlich sinnlos ist.
Also wird wohl offenbar dein Script aufgerufen, welches jeweils die angefragte Adresse ausgibt.
Nur, dass es dahinter jedes mal noch “/raetsel.” ausgibt, musst du ihm jetzt vielleicht noch abgewöhnen …
Den IE muss man erst mal so einstellen, dass er 404-Seiten überhaupt anzeigt, und nicht seine eigene Fehlermeldung - und selbst wenn der Nutzer das gemacht hat, zeigt der IE erst dann Fehlerdokumente des Servers an, wenn diese eine bestimmte Größe in Bytes überschreiten, ich glaube 512 - und das ist bei deiner Textmeldung nicht der Fall.