一个非常奇怪的问题。我有一些.htaccess 301重定向无效,有些是。它们位于同一个服务器上的同一个文件中。
这是一个有效的方法:
RewriteRule ^Email-2 Email-2.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*Email-2\.php\ HTTP/
RewriteRule ^(([^/]+/)*)Email-2\.php$ http://www.myserver.com/myfolder/Email-2$1 [R=301,L]
这是一个不起作用的......
RewriteRule ^finance-step2 finance-step2.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*finance-step2\.php\ HTTP/
RewriteRule ^(([^/]+/)*)finance-step2\.php$ http://www.myserver.com/myfolder/finance-step2$1 [R=301,L]
我有30多个这样的重定向,唯一不起作用的似乎是-step2,-step3等等。所有其他重定向都是。
我在Firefox中使用了Live HTTP Headers,似乎Apache根本没有发送那些不起作用的301代码,但它正在发送301代码。
我非常了解.htaccess和正则表达式,但这个让我感到难过。有什么想法吗?
答案 0 :(得分:0)
我可以请你做一些优化,如:
HTTP/
末尾的RewriteCond
是什么?我删除了它:
RewriteRule ^(Email-2|finance-step2) $1.php [QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(Email-2|finance-step2)\.php
RewriteRule ^(([^/]+/)*)(Email-2|finance-step2)\.php$ http://www.myserver.com/myfolder/$2$1 [R=301,QSA,L]
有一点非常奇怪:您首先将aa
重定向到aa.php
,然后将aa.php
重定向到http://www.myserver.com/myfolder/aa
。那么添加.php
是什么意思?
告诉我这是否有效