it-swarm.com.de

Apache Rewrite gibt Fehler 500 zurück

Ich versuche herauszufinden, was ich mit dieser .htaccess-Umschreibung falsch mache:

Options -Indexes

RewriteEngine  on
RewriteBase    /test/site/
RewriteOptions MaxRedirects=10

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /test/site/public/page.php?rel=$1 [NC,L,B]

Ich habe ein Front-End-Skript, das alle Anforderungen verarbeitet. In meinem Fall brauche oder habe ich keine index.php/index.html -Datei in meinem Stammprojekt (/test/site/). Dies führt dazu, dass Apache aufgrund der ersten Codezeile einen 403-Fehler auslöst.

Der Code funktioniert nur, wenn Sie wie folgt auf die Links zugreifen:

http://localhost/test/site/public/index
http://localhost/test/site/public/something/else/index.html

Aber wenn Sie eintreten

http://localhost/test/site/public/

Es wird 403 Fehler werfen.

Ich bin mir ziemlich sicher, dass ich etwas falsch mache, aber ich kann es nicht herausfinden.

2
tftd

Nun, Ihre RewriteRule wird nicht angewendet, da dieser Pfad, den Sie versuchen, ein Verzeichnis ist. Während des Setups leitet Ihr .htaccess die beiden Dinge um, bei denen es sich nicht handelt.

Sie benötigen eine zusätzliche Regel oder eine benutzerdefinierte 403-Seite, um Verzeichnisse zu verwalten. Sie können Ihren Zustand auch nur in Dateien ändern. Mit anderen Worten, entfernen Sie die zweite RewriteCond-Zeile. Was Sie tun, hängt davon ab, was für einen Verzeichnispfad geschehen soll.

1
Itai