Я пытаюсь настроить библиотеку маршрутизации 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, перезапись должна быть включена.
Вы должны разрешить перезапись.
<Directory "/path/to/document/root/">
AllowOverride All
Allow from All
</Directory>
Прежде всего, установите для вашей конфигурации 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 включен.
У меня была похожая проблема, но другие ответы мне не помогли. Эта строка в начале .htaccess
решила мою проблему:
Options +FollowSymLinks -MultiViews