Kann mir jemand erklären, in welcher Reihenfolge Apache .htaccess-Dateien ausführt, die sich auf verschiedenen Ebenen desselben Pfades befinden, und wie die darin enthaltenen Umschreibregeln priorisiert werden?
Warum funktioniert beispielsweise die Umschreiberegel in der ersten .htaccess-Datei unten nicht und hat die Regel /blog
Priorität?
Zugang in /
RewriteEngine on
RewriteBase /
RewriteRule ^blog offline.html [L]
Zugang in /blog
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
PS: Ich suche nicht einfach nach einer Antwort, sondern nach einer Möglichkeit, die Interna von apache / mod_rewrite zu verstehen ... warum ist mir wichtiger, als das zu beheben,
quelle
Mit können Sie
RewriteOptions inherit
die Umschreiberegeln des übergeordneten Verzeichnisses erben. Die Umschreibregeln des übergeordneten Verzeichnisses werden jedoch später gemäß der Dokumentation zu RewriteOptions angewendet .quelle
mod_rewrite
Anweisungen nicht standardmäßig vererbt (anders als bei anderen Modulen). Sie benötigen irgendwo eineRewriteOptions InheritXXXX
Direktive, damit Direktiven vererbt werden können. Bei Apache 2.4+ wird dies jedoch komplexer, da die Option in übergeordneten Verzeichnissen und in der Serverkonfiguration angegeben werden kann, die dann untergeordnete Verzeichnisse steuert.InheritDown