Использование mod_rewrite в Apache 2.4
Итак, есть много потоков о том, как использовать mod_rewrite, но я считаю, что он работает немного по-другому в Apache 2.4. Я попробовал это:
<Directory /var/www/vhosts/example.com>
<IfModule mod_rewrite>
RewriteEngine On
RewriteBase /var/www/vhosts/example.com
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
</Directory>
Это находится в /etc/apache2/conf-available/httpd.conf/
и у меня sudo a2enconf httpd.conf
который работал и включил его, но он все равно не хочет работать..
Я пробовал без Directory
немного, я пытался назвать это mod_rewrite.c
какой WordPress предлагает, но ни один из вышеперечисленных, кажется, не работает. Я также попробовал это с Directory
тег, но без IfModule
, который по понятным причинам закончился тем, что Apache не запустился.. И да, я перезапускаю Apache между каждой попыткой.
Есть ли в Apache 2.4 новый трюк, который я не знаю, если? Любая помощь приветствуется.
3 ответа
После включения mod_rewrite этой командой:
sudo a2enmod rewrite
Создайте файл для вашей конфигурации httpd в /etc/apache2/sites-available/, поэтому в моей Ubuntu я делаю файл /etc/apache2/sites-available/code-machine.conf:
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Изменить: И как напомнили Крис Грегори и Firepol, вы можете зарегистрировать новый файл конфигурации code-machine.conf:
sudo a2ensite code-machine.conf
Затем перезапустите ваш Apache:
sudo service apache2 restart
Даже я столкнулся с аналогичной проблемой с Apache 2.4 14.04
Обратите внимание, что файл конфигурации теперь находится по адресу /etc/apache2/apache2.conf
,
Я попробовал это, и это сработало для меня.
sudo nano /etc/apache2/apache2.conf
Найдите директиву Directory, где находится ваш корневой каталог, и установите следующее:
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Я зарегистрировал новый файл conf в Apache, прежде чем он заработал.
sudo a2ensite MyConfiguration.conf
Тогда я мог бы бежать
sudo service apache2 restart