|
 |
|
| Autor |
Nachricht |
Lightstorm User [User]

Anmeldung: 30.10.04 Beiträge: 15
|
Verfasst am: 31.10.2004, 00:51 Titel: Errorpages, htaccess & REQUEST_URI |
|
|
Hallo,
per .htaccess leite ich bei Serverfehlern auf die Datei error.php weiter und übergebe den erzeugten Fehlercode.
| Code: | ErrorDocument 400 /error.php?error=400
ErrorDocument 401 /error.php?error=401 | usw...
Die Datei error.php ist folgendermaßen aufgebaut:
| Code: | <?php
$header = "Content-Type: text/plain; charset=\"us-ascii\"\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$header .= "FROM: name@domain.de\n"; // eMail-Adresse des Absenders
$msg = "Error $error\n\n"; // Error-Code
$msg .= "Browser: $HTTP_USER_AGENT\n\n"; // Verwendeter Browser
$msg .= "IP-Adresse: $REMOTE_ADDR\n\n"; // IP-Adresse
$msg .= "Requested URL: $REQUEST_URI\n\n"; // URL der Datei die angefordert wurde
$msg .= "Refering URL: $HTTP_REFERER\n\n"; // URL die auf diese Datei verweist
$mailto = "name@domain.de"; // eMail-Adresse des Empfängers
mail("$mailto","Error $error","$msg","$header");
?> |
Leider gelingt die Übergabe von REQUEST_URI nicht wie gewünscht. Mir wird als Requested URL immer "/error.php?error=xxx" übergeben... Ich hätte gerne, dass wirklich das übermittelt wird, was eingegeben wurde. Wenn z.B. eingegeben wird "www.meinedomain.de/lalala.txt" soll die Fehlerseite 404 erscheinen und anschließend in dieser der Hinweis, dass lalala.txt nicht existiert. In der Email-Benachrichtigung natürlich entsprechend. Jemand ne Idee, wieso nur die error.php übergeben wird bzw. was geändert werden muss, damit wirklich die ursprüngliche Eingabe ankommt?
|
|
| Nach oben |
|
 |
Andreas Schroth Bekannter [Admin]


Anmeldung: 08.04.04 Beiträge: 1667 Wohnort: Lauf a. d. ...
|
Verfasst am: 31.10.2004, 07:52 Titel: |
|
|
hm, ich weiß wirklich nicht ob das funktioniert, aber nurmal eine Überlegung:
In der .htaccess folgendes eingeben:
| Code: | ErrorDocument 400 /error.php?error=400&refpage={REQUEST_URI}
ErrorDocument 401 /error.php?error=401&refpage={REQUEST_URI} |
Und dann halt statt $REQUEST_URI auszugeben, eben $refpage ausgeben...
Würde mich über eine Rückmeldung zu meinem Vorschlag sehr freuen... (vor allem, da ich das nicht ausprobiert habe, sondern einfach nur ausgedacht habe) _________________
Computer-tipps.net / Forumprofi.de
Hier sind die Foren-Regeln zu finden.
|
|
| Nach oben |
|
 |
Lightstorm User [User]

Anmeldung: 30.10.04 Beiträge: 15
|
Verfasst am: 31.10.2004, 12:49 Titel: |
|
|
gute idee - das gibt jedoch als requested URL lediglich {REQUEST_URI} zurück. Auch der komplette Abfragestring bleibt "error=404&refpage={REQUEST_URI}" Ich hab schon zig Foren durchsucht, wo dieses Problem angesprochen wird... leider ohne Ergebnis. Meist gab es anderswo das Problem auch nur in Verbindung mit Subdomains. Ich weiß nicht weiter...
|
|
| Nach oben |
|
 |
David Reisner Power-Poster [Admin]


Anmeldung: 08.04.04 Beiträge: 726 Wohnort: Peggau/Öst ...
|
Verfasst am: 31.10.2004, 16:44 Titel: |
|
|
@Lightstorm:
Eine direkte Lösung für dein Problem habe ich auch nicht, da ich kein Programmierer bin, und da wohl auf anderen Foren auch keine Lösung steht scheint das ganze wohl kompliziert zu sein.
Ich selbst arbeite auch mit der .htaccess Datei um Fehler abzufangen, ich denke aber, der beste weg ist, keine Fehlermeldungen zu übergeben, sondern den User direkt auf die Startseite zu leiten.
Fehlerseiten können sehr viel Ursachen haben, wenn man valides HTML einsetzt und die Links überprüft, kann man sicher sein dass die Besucher dorthin gelangen wo sie hinwollen.
Ich hoffe du verstehst meine Überlegung, ich verstehe als Webmaster nicht den Sinn dahinter Fehlermeldungen von Usern zu übergeben, da 4xx Fehlermeldungen die Ausnahme sein müssen  _________________
http://www.webmasterwelt.net/artikel,407,-foren-regeln.html
http://www.hoood.de -> Kostenloser Backlink für Foren!
http://www.iralo.de/2005/12/19/versicherungen-rund-um-den-hausbau
|
|
| Nach oben |
|
 |
Lightstorm User [User]

Anmeldung: 30.10.04 Beiträge: 15
|
Verfasst am: 31.10.2004, 16:49 Titel: |
|
|
...völlig richtig. um die 4xx-fehler aber in grenzen zu halten, ist es mir wichtig zu erfahren, welcher link oder welche eingabe den fehler hervorgerufen hat um mögliche fehler oder deadlinks zu beheben oder eben um damit zu leben, dass die leute nur rumspielen und checken, welche ordner noch auf meinem webspace liegen. fakt ist ja nun mal einfach, dass ich die sachen mit scripten abfange, die überall laufen - nur bei mir nicht. irgendwas hat mein provider am apache wohl anders konfiguriert als bei anderen.
|
|
| Nach oben |
|
 |
David Reisner Power-Poster [Admin]


Anmeldung: 08.04.04 Beiträge: 726 Wohnort: Peggau/Öst ...
|
Verfasst am: 31.10.2004, 16:53 Titel: |
|
|
@Lightstorm:
Dies ist natürlich eine weitere Möglichkeit, hier kannst du aber, wenn du einen Provider hast der sich auskennt, beim Support anrufen und dies bald erledigen, ich wünsche dir dabei viel Erfolg!
Wenn die Leute nicht wissen sollen welche Ordner noch auf deinem Webspace liegen, sperre diese aus bzw. verlinke sie nirgends, dann findet sie normalerweise auch niemand
Fehlerhafte Links kann man gut mit Linkcheckern beheben.
Ich hoffe aber, dass der Support bei deinem Provider gut ist, damit du das Problem rasch gelöst bekommst. _________________
http://www.webmasterwelt.net/artikel,407,-foren-regeln.html
http://www.hoood.de -> Kostenloser Backlink für Foren!
http://www.iralo.de/2005/12/19/versicherungen-rund-um-den-hausbau
|
|
| Nach oben |
|
 |
Lightstorm User [User]

Anmeldung: 30.10.04 Beiträge: 15
|
Verfasst am: 01.11.2004, 02:13 Titel: |
|
|
Oh man... gleich noch ein Problem zu später Stunde gelöst. Auf eine Antwort vom Provider warte ich noch immer. Hab also selbst weiter gefummelt.
Meine error.php, welche die Errorcodes vom Apache übergeben bekommt und daraus sowohl eine Email mit Fehlermeldung als auch eine Fehlermeldung für den Monitor ausgibt, beinhaltete folglich auch zwei Scripte. Naja... was soll ich sagen - nachdem ich rausgefunden habe, dass der Referer mit relativen Pfaden in der .htaccess und Firefoxx korrekt in der Email erschien, musste das Problem doch an meinen Scripten liegen. Ich habe die also einfach mal getauscht. Vorher: Erst Mail-Script - dann Ausgabe auf dem Monitor. Nun ist es andersherum und läuft wie geschmiert! Die müssen sich wohl irgendwie in die Quere gekommen sein. Der Pfad zu meiner error.php ist nun für 401 & 404 relativ, für alle anderen absolut vergeben und läuft endlich! 
|
|
| Nach oben |
|
 |
David Reisner Power-Poster [Admin]


Anmeldung: 08.04.04 Beiträge: 726 Wohnort: Peggau/Öst ...
|
Verfasst am: 01.11.2004, 06:51 Titel: |
|
|
Guten Morgen Lightstorm.
Ich finde es gut 1-2 Nachteulen hier im Forum zu haben, somit ist hier wohl immer etwas los, da ich eher ein Morgenmensch bin.
Zum Thema absolut/relativ: Man muss leider bei vielen Dingen aufpassen, dass man nicht durcheinander kommt, bzw. aufpassen dass Dinge sich nicht stören die dies eigentlich nicht sollten.
Dazu hilft entweder rumprobieren wie in deinem aktuellen Fall, oder aber eine Skizze bzw. vorige Planung was man wie einsetzt.
Gibt es auch Informationen bzw. Infos vom Provider warum Skripte sich stören wäre ich gespannt diese hier zu lesen. _________________
http://www.webmasterwelt.net/artikel,407,-foren-regeln.html
http://www.hoood.de -> Kostenloser Backlink für Foren!
http://www.iralo.de/2005/12/19/versicherungen-rund-um-den-hausbau
|
|
| Nach oben |
|
 |
800XE Bekannter [Mod]


Anmeldung: 24.10.04 Beiträge: 1298 Wohnort: Speyer
|
Verfasst am: 04.11.2004, 11:09 Titel: Re: Errorpages, htaccess & REQUEST_URI |
|
|
| Lightstorm hat folgendes geschrieben: | | Leider gelingt die Übergabe von REQUEST_URI nicht wie gewünscht. Mir wird als Requested URL immer "/error.php?error=xxx" übergeben... |
Nach dem Umdrehen von den zwei Relativen und Absoluten Pfaden funktioniert da das error 404 jetzt? ich denke mal nein.
Lese mal in der error.php den referer $HTTP_REFERER vielleicht steht dort die nicht gefundene Datei drin.
Noch ne Idee:
Das ErrorDoc in der htaccess raus und eine Rewrite rein die einfach alles abfängt
RewriteRule (.*)$ /?willhaben=$1
in der index.php agfragen ob die Variable "willhaben" einen Inhalt hat und dann prüfen ob das Gewünschte lieferbar ist, wenn nicht einen 404 anzeigen bzw die Startseite anzeigen und die eMail senden
| Code: |
if ( $GLOBALS[willhaben] )
{
if ( file_exists($GLOBALS[willhaben]) )
{
if ( strstr($GLOBALS[willhaben], ".php") )
{
include ($GLOBALS[willhaben]);
}
else
{
$size = filesize($GLOBALS[willhaben]);
$handle = fopen($GLOBALS[willhaben], "rb");
$buffer = fread($handle, $size); fclose($handle);
echo($buffer);
}
}
}
else
{
// eMail wegen 404
}
exit():
}
|
Warscheinlich muß da erst mal das "/" am anfang von der "willhaben" Variable entvernt werden.
Und dann prüfen ob es eine Ausführbare Datei ist alsi geIncludet werden muß
Oder eine html, die wird dan eingelesen und per echo zum Browser geschickt
jpg und gif wird auch abgefangen und durch die Index.php - read - echo
geschleust
Also eine Lösung könnte es sein, aber eine die wieder andere (nicht wenige) Probleme bringt
Ich probier mal am Wochenende mit dieser Idee rum ........ _________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär
|
|
| Nach oben |
|
 |
Lightstorm User [User]

Anmeldung: 30.10.04 Beiträge: 15
|
Verfasst am: 04.11.2004, 18:34 Titel: Re: Errorpages, htaccess & REQUEST_URI |
|
|
| 800XE hat folgendes geschrieben: | | Nach dem Umdrehen von den zwei Relativen und Absoluten Pfaden funktioniert da das error 404 jetzt? ich denke mal nein. |
Seit ich den Pfad zur error.php generell mit relativem Pfad übergebe, funktionert alles. Auch der error404 inkl. Übergabe des gewünschten aber nicht gefundenen URL. Danke trotzdem. 
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde
|
| Seite 1 von 1 |
|  |