mod_rewrite включен, но не работает


17

Я пытаюсь настроить библиотеку маршрутизации PHP. Они приводят этот пример для файла .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Я не мог заставить это работать, поэтому я попытался включить mod_rewrite, но он говорит: «Перезапись модуля уже включена».

Почему это не работает должным образом? Благодарность! Я использую Ubuntu Precise 12.04 и apache2.2.22. (Проверено на наличие обновлений)

РЕДАКТИРОВАТЬ: Еще пара деталей, это бродячая сборка PuPHPet, должна быть включена перезапись.

Ответы:


33

Вы должны разрешить перезапись.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

5
Это излишне разрешительно. AllowOverrideНеобходим только для рассматриваемой конфигурации. Allow from Allне имеет ничего общего с вопросом и может не подходить для среды @ randomdev.
Марк

1
<Directory "/path/to/document/root/">Я забыл перейти /path/to/document/root/в мой проект root. Спасибо!
Абхишек

16

Прежде всего, настройте вашу конфигурацию httpd следующим образом (путь может отличаться друг от друга. В моем Ubuntu он находится в / etc / apache2 / sites-available / default):

DocumentRoot /var/www

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

После этого вы должны включить mod_rewrite с помощью этой команды:

sudo a2enmod rewrite

Последнее, перезапустите службу apache :

sudo service apache2 restart

Чтобы убедиться в этом, вы можете проверить это снова из phpinfo в Configuration> apache2handler> Loaded Modules, там должно быть написано, mod_rewriteи это означает, что mod_rewrite включен.


Должно ли это быть в элементе виртуального хоста?
Jjxtra

Вы можете увидеть некоторый пример в Apache Virtual Host Example
metamorph

1

У меня была похожая проблема, но другие ответы мне не помогли. Эта строка в начале .htaccessрешила мою проблему:

Options +FollowSymLinks -MultiViews
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.