Why doesn’t the htaccess redirect work

.htaccessapache-2.2redirect

I have setup a simple htaccess redirect which looks like this (this is the whole .htaccess file):

Options +FollowSymLinks

RewriteEngine On

Redirect 301 /something http://something.com/something.php

If I then load the site which contains this .htaccess, ie, myredirectsite.com/something I end up with the following 404:

The requested URL /something was not found on this server.

Apache/2.2.3 (Red Hat) Server at myredirectsite.com Port 80

And the logs:

[Tue Jul 10 14:25:46 2012] [error] [client xx.xx.xxx.xx] File does not exist: /home/sites/scp/something

Something is not a file, and something does not exist. I have assumed I could use Redirect the same as a Rewrite but it looks like the redirect needs to be for a file that actually exists?

I created the file 'something' and it just attempts to load the blank file. No redirect.

What am I missing in getting this working?

Best Answer

Make sure that

AllowOverride All

is set in the httpd.conf file!

But if you have access to the main config file, I would recommend doing the configuration there rather than in an .htaccess file - the .htaccess file will slow the server down. This may not be an issue if you have a very low server load, but it's just as well to use the best practices even on smaller projects.

Related Topic