Как вы включаете mod_rewrite на любой ОС? - PullRequest
44 голосов
/ 28 июня 2010

Если я правильно понимаю, мне нужно что-то добавить в httpd.config, чтобы включить mod_rewrite.Если это правда, что мне нужно добавить в httpd.conf или apache.conf?Пожалуйста, будьте специфичны для ОС.

Ответы [ 8 ]

64 голосов
/ 28 июня 2010

Нет, mod_rewrite является модулем Apache и не имеет ничего общего с PHP.

Для активации модуля должна быть активна следующая строка в httpd.conf:

LoadModule rewrite_module modules/mod_rewrite.so

, чтобы увидеть, является ли он уже активным, попробуйте поместить файл .htaccess в веб-каталог, содержащий строку

RewriteEngine on

, если это работает без выдачи внутренней ошибки сервера 500, и файла .htaccessанализируется, перезапись URL работает.

57 голосов
/ 29 мая 2013

Просто замечательно для людей, включающих mod_rewrite в Debian с Apache2:

Чтобы проверить, включен ли mod_rewrite:

Найдите в mods_enabled ссылку на модуль,работает

ls /etc/apache2/mods-enabled | grep rewrite

Если выдается rewrite.load, то модуль включен.(Примечание: ваш путь к apache2 может быть не / etc /, хотя, скорее всего, и будет.)

Чтобы включить mod_rewrite, если он еще не :

Включить модуль(по сути, создает ссылку, которую мы искали выше):

a2enmod rewrite

Перезагрузить все файлы конфигурации apache:

service apache2 restart
10 голосов
/ 24 февраля 2015

В моем случае проблема возникла даже после того, как все эти конфигурации были выполнены (@Pekka упомянула изменения в файлах httpd.conf & .htaccess). Это было решено только после того, как я добавлю

<Directory "project/path">
  Order allow,deny
  Allow from all
  AllowOverride All
</Directory>

для конфигурации виртуального хоста в файле vhost

Изменение от 29.09.2017 (для Apache 2.4 <) <a href="https://stackoverflow.com/a/9117898/219112"> См. Этот ответ

<VirtualHost dropbox.local:80>
DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
ServerName dropbox.local
ErrorLog "logs/dropbox.local-error.log"
CustomLog "logs/dropbox.local-access.log" combined
<Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
    # AllowOverride All      # Deprecated
    # Order Allow,Deny       # Deprecated
    # Allow from all         # Deprecated

    # --New way of doing it
    Require all granted    
</Directory>

2 голосов
/ 28 июня 2010

Нет, не нужно.mod_rewrite - это модуль Apache.Это не имеет ничего общего с php.ini.

0 голосов
/ 15 октября 2016

если это связано с хостингом сайта, то спросите об этом на вашем хостинге или если вы хотите включить его на локальном компьютере, то посмотрите пошаговое руководство на YouTube, касающееся включения модуля перезаписи в wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s
Значок сервера Wamp -> Apache -> Модули Apache и проверьте параметр модуля перезаписи это нужно проверить, но после этого вамп необходимо перезагрузить все сервисы

0 голосов
/ 13 апреля 2016

Чтобы использовать mod_rewrite, вы можете ввести следующую команду в терминале:

 $ su

 $ passwd **********

 # a2enmod rewrite

Перезапустите apache2 после

 # service apache2 restart

 # /etc/init.d/apache2 restart

или

 # service apache2 restart
0 голосов
/ 22 марта 2013

Сетевые решения предлагают совет, чтобы положить php.ini в cgi-bin, чтобы включить mod_rewrite

0 голосов
/ 02 марта 2012

Модуль rewrite_module встроен в сервер в большинстве случаев

Использовать .htaccess

Использовать Mod Rewrite Generator на http://www.generateit.net/mod-rewrite/

...