5

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?

willdanceforfun
  • 557
  • 2
  • 11
  • 23

2 Answers2

6

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.

Jenny D
  • 27,780
  • 21
  • 75
  • 114
  • Resolved my problem thanks. Mine was in apache2.conf. Don't forget to reload the apache2 service. – Pozinux Jan 17 '20 at 10:21
1

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
willdanceforfun
  • 557
  • 2
  • 11
  • 23