2017-02-02 4 views
1

Ich habe dieses Problem. Wenn ich auf exampleSite.com/unexistingpage.php zugreife, ist alles in Ordnung und das Fehlerdokument wird angezeigt. Beim Versuch, browser exampleSite.com/folder/unexistingpage.php zu browsen, werden jedoch einige defekte Varianten der Homepage angezeigt und das Fehlerdokument wird nicht gefunden (ich denke, die Site versucht, es im Ordner/folder/zu finden)Fehler Dokument nicht angezeigt, wenn URL enthält directory

in meinem .htaccess ich folgendes

ErrorDocument 400 /400.php 
ErrorDocument 401 /401.php 
ErrorDocument 403 /403.php 
ErrorDocument 404 /404.php 
ErrorDocument 500 /500.php 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L] 
</IfModule> 

haben diese So wie kann ich das beheben und die Seite sagen für den Fehler Dokument im Stammverzeichnis nur suchen? Oder vielleicht etwas anderes verursacht das Problem?

PS: Ich bin auf Apache 2.4

+0

'einige defekte Variationen der Homepage werden angezeigt' - so wird '/ 404.php' nicht angezeigt, wenn die URL' exampleSite.com/folder/unexistingpage.php' ist? – anubhava

+0

Nein, ich bekomme eine HTML-Version der Homepage und in der Konsole bekomme ich "" NetworkError: 404 Not Found - http://exampleSite.com/folder/unexistingpage.php "Dies wird nur verursacht, wenn ein Verzeichnis hinzugefügt wird die URL, sonst funktioniert alles – Dimentica

+0

Haben Sie einen anderen htaccess in/Ordner? – starkeen

Antwort

1

Übersetzen meines Kommentars in einer Antwort.

Es scheint, ErrorDocument 404 /404.php Direktive funktioniert gut, aber am wahrscheinlichsten Ihre css/js/images werden nicht gefunden, aufgrund Ihrer relativen Pfade in 404.php Datei verwenden.

Zum Testen kann man einfach <h1>This is 404 page</h1> im /404.php hinzufügen und das sollte die großen mutigen This is 404 page Text von allen nicht vorhandenen Seiten anzuzeigen.

Um das Problem zu beheben Sie dies HTML ist nur unter <head> Abschnitt Ihrer 404.php Seite hinzufügen: <base href="/" /> so dass jede relative URL von dieser Basis-URL aufgelöst wird und nicht von der URL der aktuellen Seite.

+1

Danke! Ich wusste nicht über die Wirklich nützlich! – Dimentica

Verwandte Themen