.htaccess в верхних каталогах игнорируется

.htaccess в верхних каталогах игнорируется

У меня есть файл .htaccess в каталоге /var/www/html/htc с конкретными правилами для bookmatic.net и еще один файл .htaccess с общими правилами для всех доменов в /var/www/html.

При доступе к bookmatic.net файл .htaccess в /htc работает нормально, но тот, что в /html, игнорируется. Может кто-нибудь помочь?

Спецификации bookmatic.net в httpd.conf выглядят следующим образом:

<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>

решение1

AllowOverride All— это директива, которая сообщает Apache о необходимости поиска .htaccessдополнительных настроек в файлах.

Этот vhost сообщает Apache, что нужно искать .htaccessфайлы в /var/www/html/htcи глубже, чтобы не охватить .htaccessфайл в /var/www/html.

Одним из способов решения этой проблемы было бы создание еще одного блока, подобного этому (возможно, в httpd.confдругом vhost, если это имеет больше смысла):

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

решение2

У вас есть AllowOverride Allдля <Directory /var/www/html/htc>. Я полагаю, что это не разрешено в /var/www/html. Вы можете попробовать:

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

Связанный контент