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> раздел был бы просто проигнорирован.

Другие вопросы по тегам