Правило mod_rewrite не работает на виртуальном хосте. Я хотел это для CakePHP.
Есть ли настройка для добавления в файл виртуального хоста?
Правило mod_rewrite не работает на виртуальном хосте. Я хотел это для CakePHP.
Есть ли настройка для добавления в файл виртуального хоста?
Ответы:
Если вы используете последнюю версию Apache 2.4+, то здесь описан процесс включения mod_rewrite.
Зайдите в etc/apache2/
Open, 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>
apache2.conf
и перезапускаapache
404 исчез, но все страницы вернулись на домашнюю страницу! модульphpinfo()
не былmod_rewrite
включен. Затем, запустив CLI commnd (как предложено Лонстоном ниже), все пошло на пользу! Почему это решение не включилоmod-rewrite
модуль для меня, но CLI подходит? Является ли это комбинацией изменения.conf
и запуска команды CLI одна за другой, чтобы включить модуль, или одного из них на самом деле достаточно?