htaccess, fehlerseiten, welche seite?
Michi
- html
0 Sönke Tesch0 MichiMue
0 Daniel Thoma0 Michi
hallo,
ich hab folgendes PRoble ich möchte mit htaccess eigene fehlerseiten generieren, somit übergebe ich einfach den fehler 404 an irgendeine datei
ErrorDocument 404 /errors/404.php
wie schaff ich es aber jetzt, die angefragte seite, die einen 404 zurückgibt per GET mit an die url ranzuhängen, damit ich diese in der 404.php verarbeiten kann?!
Thx Michi
ich hab folgendes PRoble ich möchte mit htaccess eigene fehlerseiten generieren, somit übergebe ich einfach den fehler 404 an irgendeine datei
ErrorDocument 404 /errors/404.php
wie schaff ich es aber jetzt, die angefragte seite, die einen 404 zurückgibt per GET mit an die url ranzuhängen, damit ich diese in der 404.php verarbeiten kann?!
Garnicht, das ist auch vollkommen unnötig. Du bekommst die fehlerhafte Adresse vom Server schon als Variable zur Verfügung gestellt. Rufe in Deiner 404.php testweise
phpinfo(INFO_VARIABLES);
auf; in der angezeigten Liste findet sich auch die Variable mit der besagten Adresse.
Gruß,
soenk.e
Garnicht, das ist auch vollkommen unnötig. Du bekommst die fehlerhafte Adresse vom Server schon als Variable zur Verfügung gestellt. Rufe in Deiner 404.php testweise
phpinfo(INFO_VARIABLES);
auf; in der angezeigten Liste findet sich auch die Variable mit der besagten Adresse.
ja, eben nicht...oben in der adressleiste steh ja dann auch nciht mehr irgendne fehlerhfte url sonder...404.php
von der eigentlich aufgerufenen site ist leider nichts mehr zu finden...ich hatte auch schon gelsen, dass man mit %s die angeforderte url rauskriegt (in der htaccess), aber eim übergebn wird da dann nichts...(man könnte natürlich enn metarefresh oder so reinschrieben, ist aber nicht elegant, denk ich)
Garnicht, das ist auch vollkommen unnötig. Du bekommst die fehlerhafte Adresse vom Server schon als Variable zur Verfügung gestellt. Rufe in Deiner 404.php testweise
phpinfo(INFO_VARIABLES);
auf; in der angezeigten Liste findet sich auch die Variable mit der besagten Adresse.
ja, eben nicht...oben in der adressleiste steh ja dann auch nciht mehr irgendne fehlerhfte url sonder...404.php
Dann ist Deine Fehlerseite irgendwie falsch eingebunden. Wenn Du in der Browser-Adressleiste statt der fehlerhaften URL die der Fehlerseite siehst, liefert der Server statt eines 404-Fehlers offensichtlich eine ordinäre Weiterleitung (nach 404.php), was dann wiederum bedeutet, daß das Skript nichts davon erfährt, das es auf Grund eines Fehlers aufgerufen wurde (es wird nicht vom Server als Ersatz für die fehlende Seite aufgerufen, sondern direkt vom Browser).
Du hast in der Antwort an Daniel eine ErrorDocument-Zeile mit vollständiger URL angegeben, das könnte eventuell der Fehler sein (obwohl Du in der ursprünglichen Frage noch eine relative URL hattest). Fehlerbehandlung funktioniert logischerweise nur innerhalb eines Servers; wenn Du als Fehlerseite eine Seite auf einem anderen Server angibst, kann Dein Server nur eine Weiterleitung ausspucken - also: relative URL.
ErrorDocument 404 /error/404.php
Funktioniert das nicht, wende Dich besser an Deinen Hoster.
Gruß,
soenk.e
Hallo Michi
Für Fehlerseiten stellt der Apache weiter Umgebungsvariablen zur verfügung: http://httpd.apache.org/docs/custom-error.html
Grüße
Daniel
Hallo Michi
Für Fehlerseiten stellt der Apache weiter Umgebungsvariablen zur verfügung: http://httpd.apache.org/docs/custom-error.html
Grüße
Daniel
hallo danile,
danke schonmal für deine hilfe, aber ich seh da nich surch, ich kann ja mal ne beispiel-zeile posten, da man mir dsagte, man könne die geforderte url mit %s ausgeben lassen
ErrorDocument 403 http://www.domain.de/index.php?main=error&error=403&req=%s
klappt ja aber nich, dann ist $_GET['req'] halt %s ?!
aber es muss doch ne möglichkeit geben oder?
Hallo Michi
Die URL des Dokumentes, das nicht gefunden wurde, steht in der Umgebungsvariable REDIRECT_URL.
Wie Du in PHP an den Inhalt von Umgebungsvariaben kommst, weiß ich nicht, aber es gibt bestimmt eine Funktion o.ä. dafür.
Grüße
Daniel