How to Install Apache Mod Rewrite on Ubuntu / Linux

By | August 8, 2020

Apache Mod Rewrite

mod_rewrite is an apache module which enables rewriting of urls requested by client before the pages are fetched by apache.

For example www.site.com/products.php?code=459 can be written as www.site.com/products/459 or www.site.com/products/459.html.

The second url is re-written into the first one by mod_rewrite using rewrite rules specified in the .htaccess file.

Enable Mod Rewrite

To enable the mod_rewrite module use the a2enmod command.

$ sudo a2enmod rewrite

To disable this module :

$ sudo a2dismod rewrite

Enable .htaccess

Next edit the file:

/etc/apache2/sites-enabled/000-default

Look for the section :

<directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</directory>

Replace the AllowOverride None with AllowOverride FileInfo as :

<directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</directory>

Now restart apache

$ sudo /etc/init.d/apache2 restart

Test Htaccess Rules

Now place an .htaccess file in say /var/www/ folder to test mod rewrite

To test whether mod_rewrite is working or not, fill the .htaccess file with some garbage text save and then open some file of that folder in the browser.

You should get a 500 Internal Server Error and a .htaccess error in the apache log file. This shows that now mod_rewrite is enabled.

Now put some rewrite rules in the .htaccess file

RewriteEngine on
RewriteRule ^([0-9]+).html$ index.php?id=$1

which should replace a folder/23.html to folder/index.php?id=23 for example.

Links and Resources

For further details and instructions on setting up mod rewrite and writing htaccess rules, check out the official doc page. Some of the links are given below:

1. Apache 1.3 mod rewrite
2. http://httpd.apache.org/docs/1.3/howto/htaccess.html
3. http://httpd.apache.org/docs/1.3/configuring.html#htaccess
4. http://httpd.apache.org/docs/2.2/howto/htaccess.html
5. http://wiki.apache.org/httpd/DistrosDefaultLayout

About Silver Moon

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected].

4 Comments

How to Install Apache Mod Rewrite on Ubuntu / Linux
  1. Paul

    I love you man! I spent hours tweaking config files and modules, and this line saved me

    “AllowOverride FileInfo”

    Instead of allowing all, do this. Worked for me. <3

Leave a Reply

Your email address will not be published. Required fields are marked *