Использование 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
Другие вопросы по тегам