2013-10-09 33 views
0

我重定向一些靜態HTML文件/ URL到一些新的網址是這樣的:的.htaccess 301重定向沿着舊的URL傳遞給新的URL

Redirect 301/http://newsite.com 
Redirect 301 /pageA.html http://newsite.com/subfolder/page-a/ 
Redirect 301 /pageA-B.html http://newsite.com/subfolder/page-a/page-b/ 

然而,由此產生的URL看起來是這樣的:

http://newsite.com/subfolder/pageA-B.html/ 

代替

http://newsite.com/subfolder/page-a/page-b/ 

爲什麼我的URL重定向沿着老路走通?

+0

你碰巧也有mod_rewrite的規則,在你的htaccess的文件? –

+0

@JonLin - 不,這只是一個直接的重定向列表。儘管我只是意外地發現了它。我會在此之後發佈一個答案。 – hellatan

回答

4

事實證明,這只是一個優先順序。看來,第一條規則:

Redirect 301/http://newsite.com 

立即變成一個通用。相反,爲了需要扭轉:

Redirect 301 /pageA-B.html http://newsite.com/subfolder/page-a/page-b/ 
Redirect 301 /pageA.html http://newsite.com/subfolder/page-a/ 
Redirect 301/http://newsite.com 

從我收集,我原來的方式看到了關閉根的任何路徑已自動匹配的根源,因爲它是那麼沿着舊的URL作爲參數傳遞本質。但通過顛倒順序,這是一個更明確的匹配,然後優先考慮它,因爲它位於它試圖匹配的url列表的頂部。

不知道如果我解釋正確操作的這種邏輯/順序,但是這是最好的,我可以總結在凌晨4點這個功能=)