2012-01-27 98 views
0

只是想知道是否有可能301重定向現有的Rewriterule?你可以重寫htaccess ReWriteRule嗎?

例如,如果我在我的.htaccess文件下面一行:

重寫規則^藍色的小部件/ bluewidgets.php

,然後我需要改變我的URL結構,但是URL「藍領小部件/「在搜索引擎中排名很好,我不會失去它,是否可以添加另一個重定向該URL的重寫規則(301)」newdirectory/blue-widgets /「?如果是這樣,這是如何完成的,是否在現有的新重寫條目下添加新的重寫條件?

您是否有2次重寫,放慢頁面或有其他問題的事實?

回答

0

你是混淆了兩個完全不同的方面:內部和外部的重寫。

301和302是外部重寫,實際上將重定向指令傳遞迴用戶的瀏覽器來執行。 301告訴瀏覽器(和搜索引擎)地址變化是永久的。

沒有[R]標誌的重寫規則會執行內部重定向 - 這是Apache/IIS子系統內的重映射,不會暴露於外界。

是的,你可以有多個URI在內部重定向到同一個目標,但正如你寫的那樣,它們不會是外部的而是301s。

0

嘗試

RewriteRule ^blue-widgets/$ /new-directory/blue-widgets/ [L,NC,R=301] 
RewriteRule ^new-directory/blue-widgets/$ bluewidgets.php [L,NC] 

的,這對你有2次重寫,減慢頁面或有任何其他的問題?

301發送到blue-widgetsnew-directory/blue-widgets緩存,只會每個客戶端發生一次,所以性能應該受影響最小。

但是,如果可以的話,你也應該更改網站上的這個鏈接是new-directory/blue-widgets

+0

你確定第二行是正確的嗎?它應該有「新目錄/」部分嗎? – user1052096 2012-01-27 00:59:37

+0

@ user1052096第一行重定向到新的url。第二行接受新的url並將其重寫爲你的應用程序。兩者都是必要的,並會取代您的原單行。 – 2012-01-27 01:02:05