mod_rewrite erzeugt 403-Fehlerseite

B

ByeBye 242513

Hallo Community,

habe ein etwas merkwürdiges Problem mit mod_rewrite. Es funktioniert soweit alles Prima, egal was der Benutzer eingibt - Beispiele:
  • domain.de/test123
    Existiert nicht / 404-Fehler / Ist Okay
  • domain.de/test123/
    Existiert nicht / 404-Fehler / Ist Okay
  • domain.de/impressum
    Existiert nicht / 404-Fehler / Ist Okay
  • domain.de/impressum/
    Existiert / Impressum wird angezeigt / Ist Okay
  • domain.de/error
    Existiert nicht / 404-Fehler / Ist Okay

    Nur bei "error" erscheint nicht die Fehlerseite, obwohl eine vorhanden ist:
  • domain.de/error/
    Existiert / 403-Fehler wird angezeigt / NICHT OKAY

mod_rewrite Datei:
Code:
Options +FollowSymlinks

ErrorDocument 400 /error.html
ErrorDocument 401 /error.html
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
ErrorDocument 500 /error.html

RewriteEngine On
RewriteRule ^(.*)/$        /index.php*******$1
 
Zuletzt bearbeitet von einem Moderator:
Hi,

im Gegensatz zum HTTP-Statuscode "404" (404 - Not Found), der eine nicht existierende Ressource bescheinigt, antwortet der Server mit einem 403-Fehler (403 - Forbidden), wenn es an der Berechtigung mangelt, auf die angeforderte Ressource Zugriff zu haben - siehe hierzu beispielsweise diese Übersicht der HTTP-Status-Codes.

mfg Maik
 
Hallo Maik,

das merkwürdige ist nur, dass dieses Problem nur bei /error/ auftritt. Obwohl die mod_rewrite-Datei alle Dateien gleich behandelt soll. Diese werde via Include-Befehl eingefügt.
Dies bedeutet z. B. wenn der Pfad domain.de/impressum/ heißt wird die impressum.php eingebunden NUR wenn der Pfad domain.de/error/ heißt wird nicht die error.php Datei sondern eine 403 Fehlermeldung angezeigt.

Ich kann die Fehlerseite auch ganz normal aufrufen wenn ich statt domain.de/error/ --- domain.de/index.php*******error eingebe.
 
Zuletzt bearbeitet von einem Moderator:
Auf dem Server existiert also kein Verzeichnis namens "error", das mit einem Verzeichnisschutz versehen ist?

mfg Maik
 
Nabend,

ich weiß zwar deine Servergegebenheiten nicht,
aber es könnte sein, dass dein Hoster oder in deiner apache.conf
ein Verweis von /error auf einen bestimmten Ordner existiert(in dem
vermutlich dann die Logs liegen), der dann eben nicht von außen erreichbar
sein darf. (Vielleicht nur von einem internen Netz, spezielle IP, oder über
Authentifizierung usw. usw.)

Grüße
 
Also ein Verzeichnis names "error" existiert nicht, wird nur simuliert mit mod_rewrite.
Ich werde mal versuchen MArc's Lösungsweg nachzugehen.

EDIT:
MArc du hattest Recht, mein Hoster teilte mir gerade mit das der Ordner /error/ für das System reserviert ist.
 
Zuletzt bearbeitet von einem Moderator:
Zurück