.htaccess in höheren Verzeichnissen wird ignoriert

.htaccess in höheren Verzeichnissen wird ignoriert

Ich habe eine .htaccess-Datei im Verzeichnis /var/www/html/htc mit spezifischen Regeln für bookmatic.net und eine weitere .htaccess-Datei mit allgemeinen Regeln für alle Domänen in /var/www/html

Beim Zugriff auf bookmatic.net funktioniert die .htaccess-Datei in /htc einwandfrei, die in /html wird jedoch ignoriert. Kann jemand helfen?

Die Spezifikationen von bookmatic.net in httpd.conf lauten wie folgt:

<VirtualHost *:443>
    ServerName bookmatic.net
    ServerAlias *.bookmatic.net
    DocumentRoot /var/www/html/htc
    AllowEncodedSlashes On

    <Directory /var/www/html/htc>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
        LimitRequestBody 25000000
        LimitXMLRequestBody 25000000
    </Directory>

    RewriteEngine on
</VirtualHost>

Antwort1

AllowOverride All.htaccessist die Anweisung, die Apache anweist, in Dateien nach weiteren Konfigurationen zu suchen .

Dieser virtuelle Host weist Apache an, tiefer nach .htaccessDateien zu suchen, damit die Datei in nicht verdeckt wird ./var/www/html/htc.htaccess/var/www/html

Eine Möglichkeit, dies zu lösen, besteht darin, einen weiteren Block wie diesen zu erstellen (möglicherweise in httpd.confstatt in diesem vhost, wenn das sinnvoller ist):

<Directory /var/www/html>
     AllowOverride All
</Directory>

Antwort2

Sie haben AllowOverride Allfür <Directory /var/www/html/htc>. Ich nehme an, es ist in nicht erlaubt /var/www/html. Sie könnten Folgendes versuchen:

<Directory /var/www/html>
    AllowOverride All
</Directory>

verwandte Informationen