How to enable mod_rewrite in Apache?
I just installed the LAMP stack on my Ubuntu system.
The redirection is not working for me. I don't know how to fix it. Can anyone help me?
To enable it the rewrite module, run "apache2 enable module rewrite":
sudo a2enmod rewrite
You need to restart the webserver to apply the changes:
sudo service apache2 restart
If you plan on using mod_rewrite in .htaccess
files, you also need to enable the use of .htaccess
files by changing AllowOverride None
to AllowOverride FileInfo
. For the default website, edit /etc/apache2/sites-available/default
:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# changed from None to FileInfo
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
After such a change, you need to restart Apache again.
- Apache documentation on AllowOverride
- Manual page of
a2enmod
I dare to add a special answer (as a followup to the great answer above) regarding ubuntu 14.04 and .htaccess
:
In 14.04, the name of the default configuration file is changed to 000-default.conf
:
sudo gedit /etc/apache2/sites-available/000-default.conf
add the following to the end of the file :
<Directory "/var/www/html">
AllowOverride All
</Directory>
For some reason, in Ubuntu 14.04 and apache2 the root is set to /www/html
. If you want to change the webserver root back to good old /www
, open 000-default.conf
and change
DocumentRoot /var/www/html/
to
DocumentRoot /var/www/
and then off course it should be
<Directory "/var/www">
AllowOverride All
</Directory>