I\'ve got fresh install of Apache 2.2 on my Vista machine, everything works fine, except mod rewrite.
I\'ve uncommented
LoadModule rewrite_module mo
Try setting: AllowOverride All
.
Second most common issue is not having mod rewrite enabled: a2enmod rewrite
and then restart apache.
For my situation, I had
RewriteEngine On
in my .htaccess
, along with the module being loaded, and it was not working.
The solution to my problem was to edit my vhost entry to inlcude
AllowOverride all
in the <Directory>
section for the site in question.
Use below command
sudo a2enmod rewrite
And the restart apache through below command
sudo service apache2 restart
The first time I struggled with mod_rewrite rules ignoring my traffic, I learned (frustratingly) that I had placed them in the wrong <VirtualHost>
, which meant that my traffic would ignore all of them no matter how well-written they were. Make sure this isn't happening to you:
# Change the log location to suit your system.
RewriteLog /var/log/apache-rw.log
RewriteLogLevel 2
These parameters will activate if you perform a graceful restart of Apache, so you can recycle them in and closely monitor the mod_rewrite behavior. Once your problem is fixed, turn the RewriteLogLevel back down and celebrate.
In 100% of my experience, I've found that the RewriteLog has helped me discover the problem with my rewrite rules. I can't recommend this enough. Good luck in your troubleshooting!
Also, this bookmark is your best friend: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog
<edit>
Just noticed you said mod_rewrite.s instead of mod_rewrite.so - hope that's a typo in your question and not in the httpd.conf file! :)
</edit>
I'm more used to using Apache on Linux, but I had to do this the other day.
First off, take a look in your Apache install directory. (I'll be assuming you installed it to "C:\Program Files" here)
Take a look in the folder: "C:\Program Files\Apache Software Foundation\Apache2.2\modules" and make sure that there's a file called mod_rewrite.so in there. (It should be, it's provided as part of the default install.
Next, open up "C:\Program Files\Apache Software Foundation\Apache2.2\conf" and open httpd.conf. Make sure the line:
#LoadModule rewrite_module modules/mod_rewrite.so
is uncommented:
LoadModule rewrite_module modules/mod_rewrite.so
Also, if you want to enable the RewriteEngine by default, you might want to add something like
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
to the end of your httpd.conf file.
If not, make sure you specify
RewriteEngine On
somewhere in your .htaccess file.
New apache version has change in some way. If your apache version is 2.4 then you have to go to /etc/apache2/
. There will be a file named apache2.conf
. You have to edit that one(you should have root permission). Change directory text like this
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Now restart apache.
service apache2 reload
Hope it works.