2011-11-18 53 views
1

一個非常奇怪的問題。我有一些.htaccess 301重定向不工作,有些是。他們在同一個文件中,在同一臺服務器上。.htaccess重定向不起作用

這裏有一個工程:

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上的301代碼。

我非常瞭解.htaccess和正則表達式,但這一個讓我難住。有任何想法嗎?

+0

奇怪,我試過規則,這是不是在本地工作,他們爲我工作得很好。嘗試創建一個新的.htaccess文件,並使用不起作用的規則。 – Cyclonecode

+1

請問您是否可以發佈所有的重定向,以便(1)我們可以快速猜出問題實際來自哪裏(它看起來不像是來自這些規則)(2)優化它們是因爲我非常確定它們「已經很快被製作出來了,它們可能會更短 –

+1

你能舉出哪些URL可以工作的例子:啓動和最終重定向,哪些不啓動:啓動以及最終重定向應該是什麼?謝謝 –

回答

0

我可以請你做一些優化,如: 什麼是RewriteCond末尾的HTTP/?我已刪除它:

那真是奇怪
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.phphttp://www.myserver.com/myfolder/aa。那麼加入.php是什麼意思?

告訴我,如果這項工作