Apache2 mod_rewrite не будет работать
Файл conf:
<VirtualHost *:27010>
DocumentRoot /var/www/test/public_html
<Directory /vaw/www/test/public_html>
AllowOverride ALL
</Directory>
</VirtualHost>
порты: Listen 27010
/var/www/test/public_html/.htaccess
:
RewriteEngine on
выдает ошибку:
/var/www/test/public_html/.htaccess: RewriteEngine здесь не разрешен
Пожалуйста помоги. Пробовал перезапуск, пробовал a2ensite, a2enmod
2 ответа
Ты пишешь AllowOverride ALL
, Так должно быть AllowOverride All
,
Из документации:
Директивы в файлах конфигурации нечувствительны к регистру, но аргументы директив часто чувствительны к регистру.
Как правило, вы всегда должны следовать случаю, используемому в документации.
Кроме того, вы всегда можете проверить свою конфигурацию apache, запустив apachectl -t
, Он должен отлавливать любые синтаксические ошибки.
<VirtualHost *:27010>
DocumentRoot /var/www/test/public_html
<Directory /vaw/www/test/public_html>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Эта статья может оказаться полезной для вас: https://httpd.apache.org/docs/2.4/howto/htaccess.html
Директива "Разрешить" относится к версии до 2.4. Если у вас Apache 2.4, вы должны посмотреть директиву "Требовать" https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
DocumentRoot /var/www/test/public_html <Directory /vaw/www/test/public_html>
Как отмечено в комментариях, опечатка в пути к файлу, указанном в
<Directory>
директива, похоже, была проблемой.
/vaw/
должны были быть
/var/
чтобы соответствовать
DocumentRoot
. При неправильном пути к файлу
<Directory>
раздел был бы просто проигнорирован.