.htaccess und error 404

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
wksys
Mitglied
Beiträge: 28
Registriert: 17.08.2003 13:18
Wohnort: Bad Mergentheim

.htaccess und error 404

Beitrag 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 ?
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du könntest auch mal einen Link zur echten seite posten, vielleicht liegt der Fehler ja woanders (falscher HTML-Code o.ä.).
KB:knigge
wksys
Mitglied
Beiträge: 28
Registriert: 17.08.2003 13:18
Wohnort: Bad Mergentheim

Beitrag von wksys »

Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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?
KB:knigge
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
wksys
Mitglied
Beiträge: 28
Registriert: 17.08.2003 13:18
Wohnort: Bad Mergentheim

Beitrag 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 ?
wksys
Mitglied
Beiträge: 28
Registriert: 17.08.2003 13:18
Wohnort: Bad Mergentheim

Beitrag 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.
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag 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
Antworten

Zurück zu „Coding & Technik“