how to enable mod_rewrite in apache2.2 (debian/ubuntu)
Here i am going to describe how to enable mod_rewrite in apache2.2 -specaily for debian.
In default installion of apache2.2 on debian never enable mod_rewrite default. So you may need to enable .
First install the apache2.2 with this command :
debian user please use “su” before start this process
ubuntu user please use “sudo su” before start this process
apt-get install apache2 (it will install apache 2.2)
now use locate to find if the mod_rewrite.so is availble on your server
updatedb
locate mod_rewrite.so
it will found in “/usr/lib/apache2/modules”
new apache follow some folders to enable and desuable mods.
so now do this:
cd /etc/apache2/mods-enabled
touch rewrite.load
gedit rewrite.load (you may use any editor to edit this file)
now paste this following line
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Then edit /etc/apache2/sites-available/000-default
Find the following
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
and change it to
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
and finally restart Apache
/etc/init.d/apache2 restart
OK, you done
don’t forget to comment, if it works or not.
thanks.
Related posts:
- Website optimization 02: enable deflate /output compression (debian/ubuntu) On the fir
- Website Optimization 01: disable ETag in apache (debian/ubuntu) From last
Related posts brought to you by Yet Another Related Posts Plugin.

















July 16th, 2007 at 12:08 am
Whoa!!
Excellent work Lavlu, much appreciated. This was one of my major problem even few days ago. I just think why didnt you write this article that time.
Very good work. Keep it on.
July 24th, 2007 at 3:03 pm
Or more simpler, just do :
sudo a2enmod rewrite && sudo invoke-rc.d apache2 restart
July 24th, 2007 at 3:42 pm
thanks ebzao. it works
August 4th, 2007 at 11:43 pm
[...] how to enable mod_rewrite in apache2.2 (debian/ubuntu) [...]
August 19th, 2007 at 4:48 am
Worked like a charm! Thanks for posting this.
August 29th, 2007 at 9:11 pm
[...] to this explanation of how to fix [...]
September 17th, 2007 at 10:37 pm
thank bro…it works…
October 25th, 2007 at 9:03 am
Dear Lavluda
I want pdf of your how to move your php development environment to linux (Debian/Ubuntu) .
January 8th, 2008 at 12:38 am
Thanks!! Simple and elegant solution!
January 8th, 2008 at 2:41 am
Excellent!!, finally find perfect and simple solution..
Thanks!
Thanks a lot.
February 3rd, 2008 at 10:11 am
hey, thanks a lot man. Great job, couldn’t have been put simpler
April 24th, 2008 at 6:41 pm
Thank you very much it works
One comment. I’ve found you through google and google sais to me that you are dangerous here is the link look yourself http://www.google.gr/interstitial?url=http://www.lavluda.com/2007/07/15/how-to-enable-mod_rewrite-in-apache22-debian/
I don’t think that your blog is dangerous. You can complain about that.
April 28th, 2008 at 10:45 pm
thank you very much
May 5th, 2008 at 4:28 pm
Works like a charm! Enabled it on Ubuntu 8.04 Server. Thanks!!
May 17th, 2008 at 4:32 am
Thnx Thnx
it realy worx
May 18th, 2008 at 7:36 pm
/etc/apache2/sites-avalible/000-default is /etc/apache2/sites-available/000-default or /etc/apache2/sites-available/default
May 19th, 2008 at 1:05 pm
thanks saltedlight, it was typing mistake
fixed
May 27th, 2008 at 7:48 pm
Works!!!
June 3rd, 2008 at 8:30 pm
Thank you sir. Very succinct! Much appreciated.
June 3rd, 2008 at 11:33 pm
Thank you soooo much !!!!
Worked first time, brilliant!!!!!!
June 10th, 2008 at 2:27 pm
Thank you much! Perfect!
June 24th, 2008 at 11:46 pm
Excellent work, a person knowing very little about installing apache in linux could do it without any difficulty. and yes it worked..!!
Thanks
June 29th, 2008 at 2:17 am
Jeez.. You have no idea how glad I am i found this. I have been struggling with linux for a few days now. No idea why everything has to be this hard.
July 3rd, 2008 at 7:15 pm
Are you serious?
Never heard about a2enmod command?
#a2enmod rewrite
#/etc/init.d/apache2 restart
July 3rd, 2008 at 9:08 pm
a2enmod will only work for apache2 default modules. what about if you compiled apache2 ?
July 17th, 2008 at 2:40 pm
Thanku very much yaar, i was searchin for this only thing for last 2 days…..Thanx a lot.
July 17th, 2008 at 9:59 pm
how to activate mod rewrite in CentOS ??
plzz rply faast i m in danger
July 20th, 2008 at 8:22 pm
Very important to say that before you apply rewrite rules you need to say in the site configuration RewriteEngine On
so the rewrite configuration example looks like this:
RewriteEngine On
# allow only for https!
RewriteCond %{SERVER_PORT} 80
RewriteRule ^/svn(.*) https://%{SERVER_NAME}/svn$1 [R,L]
July 21st, 2008 at 7:19 pm
nice, it helps me a lot … but …
when I try to change AllowOverride None to All, I get the external error and I cannot access my page…Any ideas I’d appreciate so much
July 21st, 2008 at 7:21 pm
sorry…500 Internal error
July 22nd, 2008 at 1:29 pm
I solved this by setting virtual host
nice
July 27th, 2008 at 8:41 pm
Excelent! it really works.
I tried because webmedia explorer requires it: http://www.webmediaexplorer.com
August 12th, 2008 at 4:07 am
Very well done! it worked for me, thanks.
August 26th, 2008 at 4:29 pm
tanks a lot !!
August 27th, 2008 at 6:21 pm
[...] mod rewrite how to enable mod_rewrite in apache2.2 (debian/ubuntu) [...]
August 31st, 2008 at 4:29 am
This could be achieved more easily by symlinking from /etc/apache2/mods-available/rewrite.load (this will also work with any of the other modules that have a file in mods-available).
September 22nd, 2008 at 7:47 pm
this was the only tutorial that made my htaccess files work. thank you very much. good order and good explanation and descriptions.
thanks…
October 19th, 2008 at 6:35 pm
I saw many tutorial but yours works perfectly
Good work Lavlu!
October 27th, 2008 at 1:06 pm
[...] This is my source: http://www.lavluda.com/2007/07/15/how-to-enable-mod_rewrite-in-apache22-debian/ [...]
October 29th, 2008 at 1:45 am
Thanks a lot i’ve forgot about the AllowOverride All that was my problem
November 10th, 2008 at 5:19 pm
Most tutorials in regards of ‘mod_rewrite’ out there today, even at Apache site are often referring to older versions, so from that perspective it’s nice with a fresh tutorial.
However if you are reading this then you should be aware of the following:
The ‘Enabled’ directory is to contain Links into ‘Available’ directory. Doing anything else is stepping away from the intended server structure. So copy the ‘rewrite.load’ as a link from the ‘Available’ directory, into the ‘Enabled’ directory. No need to edit anything!
The ‘000-default’ is your Apache2 server default file changes here are very global. The edit above actually opens up for the use of ex:’.htaccess’ files in the whole site.
Normally you leave this file alone and make the appropriate changes at a lower level. Like in the ‘apache2.conf’ which is the normal place for server wide alterations.
Just a tip…
November 12th, 2008 at 8:28 pm
Thanks!
December 9th, 2008 at 8:15 am
thanks a lot!
December 23rd, 2008 at 6:58 pm
Thanks man, it works like a charm. Thanks to this tutorial i’ve enabled the “Clean URLs” option in Drupal.
January 22nd, 2009 at 1:32 pm
THANKS!!! I’d been racking my brains trying to get my .htaccess file working. It was full of Rewrite directives. Then I found your explanation. Worked perfectly.
Thanks, again.
May 1st, 2009 at 8:34 am
whoaa…its work..thanks…but when i check the mods loaded by apache using apache2ctl -l , mod_rewrite isn’t on the list..but after all it works :p .thanks.
May 15th, 2009 at 2:47 am
maque, my impression is that to see the loaded modules you should do apache2ctl -M
…and BTW Lavluda, it worked for me as well. But I’d like to know why.
Is there a good book re Apache 2.0 somewhere? The difference between Apache 1.x and 2.x is significant re implementation. It’s much more convoluted; more confusing. So before I make my site public, I’d like to know that I haven’t compromised security in any way.
May 15th, 2009 at 10:27 pm
This is a follow-up to my post yesterday…
I spoke too soon. After the tweak, my other non-Drupal sites were no longer available.
The odd thing is that after I reset everything to the initial Drupal (ie, post-install) settings, clean-urls still worked and my other non-Drupal sites were available once more.
My system is Linux debian 2.6.26-2-amd64 (Lenny). The bottom line is, in my case, the tweak did not work.
May 29th, 2009 at 4:10 pm
I could not enable the clean URL on a test copy of a Drupal site.
With this tuto it works.
Thank you
June 13th, 2009 at 5:10 am
Thanks a lot
worked like a charm!
as you already know!
June 29th, 2009 at 11:23 pm
Thank You!
Great Job!
Thanks,thanks,thanks!
July 2nd, 2009 at 11:31 am
totally worked and i had my doubts.
many thanks.