Tuesday, April 5, 2011

Apache RewriteRule .* index.php [NC,L] Not working

I am trying to redirect everything to a single page from my /website/folder/ directory.

I added a simple .htaccess with this simple code (I know this would require more code in .htaccess but it's just a test).

RewriteEngine on
RewriteRule .* index.php [NC,L]

When I try :

http://127.0.0.1:8888/website/folder/fileDoesntExistMustGoIndex

I have an "Object not found 404" error and the access.log display:

127.0.0.1 - - [13/Mar/2010:13:48:31 -0500] "GET /website/folder/fileDoesntExistMustGoIndexHTTP/1.1" 404 1118

I have check the httpd.conf and I see nothing that could alter this .htaccess statement. Any idea?

Edit:

RewriteEngine on
RewriteRule .* http://www.google.ca [NC,L]

This works... but not when I try to rewrite to a page of mine.

From stackoverflow
  • RewriteEngine On
    RewriteBase /
    RewriteRule . index.php
    

    also try

    RewriteLog "rewrite.log"
    RewriteLogLevel 3
    

    to see what happens

    Daok : I can't make it works with the RewriteLog. I always go a server error. But if I remove the RewriteLog statement and use your RewriteBase with : RewriteBase /website/folder/ it does work. I will try to figure out how to not have to use RewriteBase /website/folder/ because in production server those folder aren't the same. Thanks for the answer :)
    Daok : I added the RewriteLog into the httpd.conf and I can now see more detail. Thanks a lot luca for all those informations.
    Daok : The problem without RewriteBase was because in the httpd.conf I had an alias! Thanks a lot for your help. I now understand more how rewrite works.

0 comments:

Post a Comment