Вопрос Как включить mod_rewrite в Apache?


Я только что установил стек LAMP в своей системе Ubuntu.

Перенаправление не работает для меня. Я не знаю, как это исправить. Может кто-нибудь мне помочь?


159
2018-06-12 13:45


происхождения


ИМХО этот вопрос не специфичен для Ubuntu и должен быть перенесен на Ошибка сервера, - Paolo
OP установил лампу на UBUNTU. Сколько еще вам нужно Ubuntu? - wojox
@wojov: Я не знаю об этом случае, но этот аргумент не работает. «Как я могу использовать это приложение (на Ubuntu)?» в основном вне темы.
Это не «Как я могу использовать приложение», но «как включить определенную функцию в Ubuntu». Apache под Ubuntu использует другой макет конфигурации, в котором каждый модуль и виртуальный хост являются файлами в /etc/apache2 и который можно включить, используя a2* программы. - Lekensteyn
Вы должны описать, что вы сделали, чтобы сузить проблему, это - ericn


ответы:


Чтобы включить модуль перезаписи, запустите «apache2 enable module rewrite»:

sudo a2enmod rewrite

Чтобы применить изменения, необходимо перезапустить веб-сервер:

sudo service apache2 restart

Если вы планируете использовать mod_rewrite в .htaccess файлов, вам также необходимо включить использование .htaccess файлов путем изменения AllowOverride None в AllowOverride FileInfo, Для веб-сайта по умолчанию отредактируйте /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

После такого изменения вам нужно снова перезапустить Apache.


231
2018-06-12 13:49



У меня был больше успеха с AllowOverride All - Valentin Despa
Благодаря! sudo a2enmod rewrite а также FileInfo исправил это для меня! - d-_-b
Для меня этот файл был /etc/apache2/apache2.conf, где я нашел эту запись в config - rahmanisback
Да, эти две проблемы исправили проблему. - Adelin
Это не работает для меня. Я задал вопрос здесь askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Я смею добавить специальный ответ (как продолжение замечательного ответа выше) относительно ubuntu 14.04 а также .htaccess :

В 14.04 имя файла конфигурации по умолчанию изменено на 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

добавьте следующее в конец файла:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

По некоторым причинам в Ubuntu 14.04 и apache2 корень установлен на /www/html, Если вы хотите изменить корневой сервер веб-сервера на старый добрый /www, open 000-default.conf и изменение

DocumentRoot /var/www/html/

в

DocumentRoot /var/www/

а затем, конечно, это должно быть

<Directory "/var/www">
    AllowOverride All
</Directory>

49
2017-10-17 13:00



Thanx для информации! Этот / новый способ мы можем использовать www как папку, где мы помещаем все веб-сайты, а html по умолчанию является «веб-сайтом» для localhost. Может быть важно, если вы играете с открытием портов в мир - так что ваш локальный хост не может видеть папки других проектов. - Vladimir Vukanac
Это не работает для меня. я использую Ubuntu 14.04.4 LTS - Suhail Gupta