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?

5

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.

5

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>
2
Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest