Install apache mod rewrite on ubuntu

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.

To enable the mod_rewrite :

sudo a2enmod rewrite

To disable this module :

sudo a2dismod rewrite

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

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.

Resources :

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







Last Updated On : 27th January 2009

Subscribe to get updates delivered to your inbox

4 Comments + Add Comment

  • AllowOverride FileInfo did not work for me. I used AllowOverride All and it worked.

  • 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

  • Awesome! That fixed a problem that had cost me hours of frustration. Thanks!

  • It worked!!

    Thanks.

Leave a comment