htaccess中的301不是重定向

时间:2013-01-08 22:49:17

标签: html apache .htaccess

我在WordPress网站(http://www.raynauds.org)的根目录中有htacess文件。我需要将所有调用重定向到:

http://www.raynauds.org/?p=2366

为:

http://www.raynauds.org/2012/08/11/dr-maureen-mayes-joins-raynauds-association-medical-advisory-board/

我在Linxus服务器上运行Apache。下面的代码似乎没有做任何重定向请求。我做错了什么?

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Redirect 301 /?p=2366 http://www.raynauds.org/2012/08/11/dr-maureen-mayes-joins-raynauds-association-medical-advisory-board/

2 个答案:

答案 0 :(得分:1)

在查找要执行的文件之前,

重写和重定向都应用于URL。

你的RewriteRules都有[L]标志,声明这将是修改URL的最后一条规则,因此重定向将不会用于匹配其中一个RewriteRules的URL。

由于第二个RewriteRule将捕获所有请求,因此您的重定向将无法正常工作。 您还可以使用像

这样的RewriteRule重定向
RewriteCond %{QUERY_STRING}  p=2366
RewriteRule . http://www.example.com [R=301,L]

请同时查看Manual

中的可用标记

当然这个规则应该在Wordpress的RewriteCond / RewriteRule行之前运行。

答案 1 :(得分:0)

Redirect 301规则移至RewriteBase声明下方的行。