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.
if you like my post, please tweet it, so other also can see this post.
Popularity: 100% [?]
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.
I am S. M. Ibrahim lavlu aka lavluda working as web application developer, SEO, server security and optimization, apps scaling consultant from dhaka, bangladesh. On my free time i like to pass my time for opensource projects.




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.
[Reply]
Or more simpler, just do :
sudo a2enmod rewrite && sudo invoke-rc.d apache2 restart
[Reply]
thanks ebzao. it works
[Reply]
Worked like a charm! Thanks for posting this.
[Reply]
thank bro…it works…
[Reply]
Dear Lavluda
I want pdf of your how to move your php development environment to linux (Debian/Ubuntu) .
[Reply]
Thanks!! Simple and elegant solution!
[Reply]
Excellent!!, finally find perfect and simple solution..
Thanks!
Thanks a lot.
[Reply]
hey, thanks a lot man. Great job, couldn’t have been put simpler
[Reply]
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.
[Reply]
thank you very much
[Reply]
Works like a charm! Enabled it on Ubuntu 8.04 Server. Thanks!!
[Reply]
Thnx Thnx
it realy worx
[Reply]
/etc/apache2/sites-avalible/000-default is /etc/apache2/sites-available/000-default or /etc/apache2/sites-available/default
[Reply]
thanks saltedlight, it was typing mistake
fixed
[Reply]
Works!!!
[Reply]
Thank you sir. Very succinct! Much appreciated.
[Reply]
Thank you soooo much !!!!
Worked first time, brilliant!!!!!!
[Reply]
Thank you much! Perfect!
[Reply]
Excellent work, a person knowing very little about installing apache in linux could do it without any difficulty. and yes it worked..!!
Thanks
[Reply]
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.
[Reply]
Are you serious?
Never heard about a2enmod command?
#a2enmod rewrite
#/etc/init.d/apache2 restart
[Reply]
a2enmod will only work for apache2 default modules. what about if you compiled apache2 ?
[Reply]
Thanku very much yaar, i was searchin for this only thing for last 2 days…..Thanx a lot.
[Reply]
how to activate mod rewrite in CentOS ??
plzz rply faast i m in danger
[Reply]
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]
[Reply]
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
[Reply]
sorry…500 Internal error
[Reply]
I solved this by setting virtual host
nice
[Reply]
Excelent! it really works.
I tried because webmedia explorer requires it: http://www.webmediaexplorer.com
[Reply]
Very well done! it worked for me, thanks.
[Reply]
tanks a lot !!
[Reply]
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).
[Reply]
this was the only tutorial that made my htaccess files work. thank you very much. good order and good explanation and descriptions.
thanks…
[Reply]
I saw many tutorial but yours works perfectly
Good work Lavlu!
[Reply]
Thanks a lot i’ve forgot about the AllowOverride All that was my problem
[Reply]
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…
[Reply]
Thanks!
[Reply]
thanks a lot!
[Reply]
Thanks man, it works like a charm. Thanks to this tutorial i’ve enabled the “Clean URLs” option in Drupal.
[Reply]
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.
[Reply]
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.
[Reply]
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.
[Reply]
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.
[Reply]
I could not enable the clean URL on a test copy of a Drupal site.
With this tuto it works.
Thank you
[Reply]
Thanks a lot
worked like a charm!
as you already know!
[Reply]
Thank You!
Great Job!
Thanks,thanks,thanks!
[Reply]
totally worked and i had my doubts.
many thanks.
[Reply]
YOU SAVE MY LIFE!! Lol!
All of this because of a simple line change!!
[Reply]
it worked file. in addition i also create a symlink in mods-enables to mods-availables/rewrite.load
[Reply]