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

8

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

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

user12gk21hkj
источник

Ответы:

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>
Бабин Лонстон
источник
Это сработало и для меня!
Ниладри Саркар