Apache 2.4 mod_rewrite not working

apache 2.4 mod_rewrite not working

То что Ubuntu всегда поддерживает последние версии ПО это хорошо, но не всегда удобно. По этой причине я в свое время отказался от Ubuntu Server в пользу Debian, но на рабочей машине я наткнулся на очередную проблему — настройку mod_rewrite на Apache 2.4. Собственно тут я кратко расскажу что нужно делать. чтобы mod_rewrite заработал.

1. Его нужно включить, а сделать это можно следующей командой:

sudo a2enmod rewrite

2.Теперь нужно перезапустить сервис Apache2.2, выполнив следующую команду:

sudo service apache2 restart

3. Если у вас используются виртуальные хосты, то в их конфиге необходимо добавить строчку AllowOverride All. Например приведу пример на /etc/apache2/sites-available/default, откроем его:

sudo vim /etc/apache2/sites-available/default

Найдем строчку «<Directory «/var/www/html»>» и ниже добавим строку «AllowOverride All«, проще говоря, конфиг нужно привести к следующему виду:

</p>
<p>&lt;VirtualHost *:80&gt;<br />
 ServerAdmin [email protected]<br />
 DocumentRoot /var/www/html<br />
 &lt;Directory /&gt;<br />
   Options FollowSymLinks<br />
   AllowOverride None<br />
 &lt;/Directory&gt;<br />
 &lt;Directory /var/www/html&gt;<br />
   Options Indexes FollowSymLinks MultiViews<br />
   AllowOverride None<br />
   Require all granted<br />
 &lt;/Directory&gt;</p>
<p> ErrorLog /var/log/apache2/0default-error.log<br />
 LogLevel warn</p>
<p> CustomLog /var/log/apache2/0default-access.log combined<br />
&lt;/VirtualHost&gt;</p>
<p>

Если виртуальные хосты у вас не используются, то добавьте строчку «AllowOverride All» в файл /etc/apache2/apache2.conf.

4. Теперь перезапустим сервис:

sudo service apache2 restart

И все! Про то, как это можно сделать в старой версии Apache можно почитать тут.

Источник:

  • http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/
  • http://codematrix.ru/Записки/ubuntu/60-Включение-mod_rewrite-в-ubuntu.html