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?

  • 3
    Debug logs, for a start. – womble Jul 10 '12 at 6:50
  • Edit your question to include additional information, don't put it in a comment. – womble Jul 10 '12 at 7:19
  • The Redirect directive isn't part of mod_rewrite, so if that's all you're doing, you should remove the "RewriteEngine on" directive. – Jenny D Jul 10 '12 at 7:29
  • Thanks for that @JennyD. I've removed it - it seems though that perhaps my server isn't even attempting to load the htaccess. – willdanceforfun Jul 10 '12 at 8:04
  • Do you have access to the main server configuration? Does it have AllowOverride set - if so, to what? – Jenny D Jul 10 '12 at 8:06

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.

| improve this answer | |
  • Resolved my problem thanks. Mine was in apache2.conf. Don't forget to reload the apache2 service. – Pozinux Jan 17 at 10:21

My httpd.conf file was not configured on this server to AllowOverride in the site directory. It was set to 'none' which I changed to:

AllowOverride All
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.