Как включить mod_rewrite для виртуального хоста


8

Правило mod_rewrite не работает на виртуальном хосте. Я хотел это для CakePHP.

Есть ли настройка для добавления в файл виртуального хоста?

Ответы:


21

Если вы используете последнюю версию 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есть ли или нет. Если он там, то он включен.


До того, как я воспользовался этой опцией, все мои переписывания заканчивались на 404, однако после обновления apache2.confи перезапуска apache404 исчез, но все страницы вернулись на домашнюю страницу! модуль phpinfo()не был mod_rewriteвключен. Затем, запустив CLI commnd (как предложено Лонстоном ниже), все пошло на пользу! Почему это решение не включило mod-rewriteмодуль для меня, но CLI подходит? Является ли это комбинацией изменения .confи запуска команды CLI одна за другой, чтобы включить модуль, или одного из них на самом деле достаточно?
— Ниладри Саркар

6

Включить перезапись с помощью

# 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>

Это сработало и для меня!
— Ниладри Саркар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.