为什么我的 htaccess 重定向不起作用?

为什么我的 htaccess 重定向不起作用?

我已经设置了一个简单的 htaccess 重定向,它看起来像这样(这是整个 .htaccess 文件):

Options +FollowSymLinks

RewriteEngine On

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

如果我加载包含此 .htaccess 的网站,即 myredirectsite.com/something,我最终会得到以下 404:

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

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

以及日志:

[2012 年 7 月 10 日星期二 14:25:46] [错误] [客户端 xx.xx.xxx.xx] 文件不存在:/home/sites/scp/something

有些东西不是文件,有些东西不存在。我假设我可以使用与重写相同的重定向,但看起来重定向需要针对实际存在的文件?

我创建了文件“something”,但它只是尝试加载空白文件。没有重定向。

我缺少什么才能使这个工作正常进行?

答案1

确保

AllowOverride All

在httpd.conf文件中设置!

但是,如果您有权访问主配置文件,我建议您在那里进行配置,而不是在 .htaccess 文件中进行配置 - .htaccess 文件会降低服务器速度。如果您的服务器负载很低,这可能不是问题,但即使在较小的项目中也最好使用最佳实践。

答案2

此服务器上的 httpd.conf 文件未配置为站点目录中的 AllowOverride。它被设置为“none”,我将其更改为:

AllowOverride All

相关内容