Правило mod_rewrite не работает на виртуальном хосте. Я хотел это для CakePHP.
Есть ли настройки для добавления в файл виртуального хоста?
Если вы используете последнюю версию Apache 2.4+, то вот процесс включения mod_rewrite.
Перейдите на etc/apache2/
Откройте apache2.conf
, используя ваш любимый текстовый редактор.
Измените
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
на
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
и сохраните его. Помните, что вы должны иметь права root для редактирования и сохранения этого файла.
Теперь перезапустите apache.
service apache2 reload
Этот процесс включит mod_rewrite для сервера Apache, включая виртуальный хост.
Вы также можете проверить, включена она или нет. Создайте скрипт php
<?php
phpinfo();
?>
Загрузите его с сервера. В разделе Loaded Modules
проверьте, есть ли mod_rewrite
или нет. Если он там, то он включен.
Включить перезапись, используя
# sudo a2enmod rewrite
Затем перезапустите apcahe2, используя
# service apache2 restart
Включить в Virtualhost, добавив
AllowOverride FileInfo
Затем перезапустите apcahe2, используя
# service apache2 restart
пример :
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# I Have below line from none to FileInfo
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>