Seite 1 von 1

.htaccess und error 404

Verfasst: 04.09.2005 13:37
von wksys
Ich habe, wie üblich, eine .htaccess-Datei mit folgendem Inhalt:

Code: Alles auswählen

ErrorDocument 404 http://www.meine-domain.de/404.htm
Die dazugehörige 404.htm lautet (auszugsweise):

Code: Alles auswählen

... <meta http-equiv="refresh" content="0; url=index.htm"> ...
Das funktioniert auch prima (zur Erläuterung: es gibt bei mir kein Verzeichnis und keine Datei mit dem Namen „alpha”):
Rufe ich also „www.meine-domain.de/alpha/” auf, landet man automatisch auf der (gewünschten) Indexseite.
Ebenso, wenn man z.B. „www.meine-domain.de/alpha.htm” aufruft.

Nur: rufe ich „www.meine-domain.de/alpha.php” auf (bitte Endung beachten!), so werde ich nicht auf die Indexseite weitergeleitet, sondern es erscheint die hässliche „Error 404”-Seite, und der Benutzer weiß nicht, wies weitergeht.

Was mache ich falsch ?

Verfasst: 04.09.2005 15:57
von Dennis63
Evtl ist das Umleiten von nicht vorhandenen PHP-Scripten deaktiviert. Oder der Serveradmin hat was falsch eingestellt.

Normalerweise sollte ein eintrag in der .htaccess reichen - sofern die Funktion freigeschaltet ist.

Also: Hoster/Admin informieren, der soll den Server richtig einstellen.

Grüße
Dennis

Verfasst: 04.09.2005 18:24
von Pyramide
Du könntest auch mal einen Link zur echten seite posten, vielleicht liegt der Fehler ja woanders (falscher HTML-Code o.ä.).

Verfasst: 04.09.2005 20:33
von wksys

Verfasst: 04.09.2005 20:53
von Pyramide
Ah...jetzt verstehe ich auch, was du meinst. Das scheint dann tatsächlich an der Serverkonfiguration zu liegen.

Aber warum setzt du die Fehlerseite nicht direkt auf index.php anstatt erst auf 404.php und dann nochmal auf index.php weiterzuleiten?

Verfasst: 04.09.2005 21:30
von Jensemann
Interessant ist auch das das ganze mit nicht vorhandenen PHP Dateien in Unterverzeichnissen funktioniert. Wenn das Unterverzeichniss schon nicht existiert.

domain.tld/alpha/lala.php geht wie gewünscht, domain.tld/lala.php aber nicht.

Weiterhin betrifft das Problem nicht nur .php, sondern auch .pl, .cgi. Vermutlich alle Extensions die mit dem Handler cgi-script assoziiert sind.

Verfasst: 04.09.2005 21:32
von wksys
Pyramide hat geschrieben:Ah...jetzt verstehe ich auch, was du meinst. Das scheint dann tatsächlich an der Serverkonfiguration zu liegen.

Aber warum setzt du die Fehlerseite nicht direkt auf index.php anstatt erst auf 404.php und dann nochmal auf index.php weiterzuleiten?
Weil ich's 'mal so gelernt habe. Funktionierte ja auch immer. Erst später kam ich genau auf diese Idee, „gleich” in der .htaccess auf die Indexseite zu verweisen.

Auch bei „Suppengrün” war die .htaccess bis vor 2 Tagen so aufgebaut, daß sie ohne Umweg direkt auf die Indexseite verwies. (das Resultat, nämlich daß die Seite bei einer fehlenden php-Seite nicht korrekt funktioniert, bestand aber auch damals schon).

Wegen der Google-sitemap habe ich das vor 2 Tagen geändert: jetzt wird wieder eine „404”-Datei aufgerufen, aber mit der Endung „php”. Grund ist, daß ich dort einen header eingeben kann, nämlich (es folgt der komplette Quellkode der 404.php):

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
 header("HTTP/1.0 404");
?>
<html>
<head>
  <title>Fehlerseite</title>
  <meta name="robots" content="noindex, nofollow">
  <meta http-equiv="refresh" content="0; url=http://www.suppengruen.biz/index.php"></head>
<body></body></html>
Bevor ich diese Umstellung vornam, hieß es ganz schlicht und einfach in der (vorherigen) .htaccess-Seite:

Code: Alles auswählen

ErrorDocument 404 http://www.suppengruen.biz/index.php
aber jetzt heißt es natürlich:

Code: Alles auswählen

ErrorDocument 404 http://www.suppengruen.biz/404.php
Du schreibst u.a.:
Das scheint dann tatsächlich an der Serverkonfiguration zu liegen
Auch ich habe mittlerweile diesen Eindruck - obwohl, wie ich glaube, bei einem „professionellem” Hoster zu sein (1&1). Da ich mich selber in der Konfiguration eines Servers nicht auskenne: was müsste ich dem Support-Personal von 1&1 sagen, damit dies geändert wird ?

Du kennst die Problematik bei Google-sitemaps, wenn bei einer 404-Seite der Errorkode 200 (und nicht 404) wiedergegeben wird ? Dann verstehst Du auch, warum ich in der oben dargestellten 404.php den „header” eingefügt habe.

Was also tun ?

Verfasst: 04.09.2005 21:49
von wksys
jensemann hat geschrieben:Interessant ist auch das das ganze mit nicht vorhandenen PHP Dateien in Unterverzeichnissen funktioniert. Wenn das Unterverzeichniss schon nicht existiert.

domain.tld/alpha/lala.php geht wie gewünscht, domain.tld/lala.php aber nicht.

Weiterhin betrifft das Problem nicht nur .php, sondern auch .pl, .cgi. Vermutlich alle Extensions die mit dem Handler cgi-script assoziiert sind.
Ich hab's auch mit anderen extensions probiert. Gibt man z.B. „alpha.txt” ein, so wird man ohne weiteres (korrekt!) auf die Indexseite geleitet.
Das trifft auch für „alpha.net” zu.

Und Deine Beobachtung, daß man eine php-Datei in einem garnicht existierenden Unterverzeichnis (also ..alpha/alpha.php ) aufrufen kann (und damit trotzdem völlig korrekt bei der gewünschten Indexseite landet), kann ich nur bestätigen.

Bloß weiß ich jetzt überhaupt nicht mehr, wie man den Error 404 behandelt.

Trotzdem: Danke für den Hinweis.

Verfasst: 04.09.2005 21:50
von Jensemann
Was du dem Hoster sagen musst habe ich dir im Grunde in meinem Beitrag schon gesagt.

Aufrufe die an den cgi-script Handler des Webservers gehen werden nicht mit der Einstellung ErrorDocument behandelt.

Warum das so ist, sollen die dann herausfinden.

Verfasst: 04.09.2005 22:38
von Underhill
Hi,

sorry das ich mich einmische, aber hier ist die Loesung des 404 Problemes mit 1&1:

http://www.modrewrite.de/foren/ftopic833.html


Gruss
Underhill