fragen stichworte

RewriteRule in htaccess im Unterverzeichnis

Windows-Server, auf dem Apache ausgeführt wird. In meinem Apache-Conf habe ich AllowOverride None für den Stamm einer Site und dann habe ich ein Unterverzeichnis auf AllowOverride All:

gesetzt
<Directory/>
    AllowOverride None
</Directory>
<Directory "/safe/">
    AllowOverride All
</Directory>

Wenn ich jedoch versuche, eine Umschreibregel in der .htaccess -Datei des Unterverzeichnisses einzurichten, passiert nichts, ich bekomme nur einen 404-Fehler, der nicht gefunden wurde. Beispiel:

RewriteEngine On
RewriteRule (.*)/blah?test=$1 [R=302,NC,NE,L]

Umschreibungs-URLs funktionieren vom Stamm aus über das Apache-Conf einwandfrei. Ich verstehe nicht, warum die Regel ignoriert wird. Ich möchte nicht, dass die URL innerhalb des Conf neu geschrieben wird. In diesem Fall muss ich möglicherweise die Weiterleitungen ständig ändern und den Server nicht jedes Mal neu laden, wenn eine Änderung vorgenommen wird. Ich möchte auch die Serverleistung nicht beeinträchtigen, indem Sie .htaccess -Dateien Site-weit aktivieren, nur im Unterverzeichnis, das ich brauche.

antworten

Vorsicht vor Verzeichnis & amp; Location-Tags in der Apache-Konfiguration haben eine unterschiedliche Bedeutung. Verzeichnis arbeitet auf Dateisystem & amp; Standort auf URIs.

Wenn Sie von einer URL wie dieser sprechen: http://example.com/safe/index.html sollten Sie Folgendes tun:

<Location/safe>
    AllowOverride All
</Location>