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

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

17
задан 17 February 2014 в 14:56

3 ответа

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

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>
0
ответ дан 17 February 2014 в 14:56

Прежде всего, установите для вашей конфигурации 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 в Конфигурация> apache2handler> Загруженные модули , там должно быть написано mod_rewrite, и это означает, что mod_rewrite включен.

0
ответ дан 17 February 2014 в 14:56

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

Options +FollowSymLinks -MultiViews
0
ответ дан 17 February 2014 в 14:56

Другие вопросы по тегам:

Похожие вопросы: