Ладно, есть много тем о том, как использовать 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 новый трюк, который я не знаю, если? Любая помощь приветствуется.
После того, как включил 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
У меня было зарегистрировать новый файл конфигурации в Apache, прежде чем он заработал.
sudo a2ensite MyConfiguration.conf
Тогда я мог бежать
sudo service apache2 restart