
У меня есть файл .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>