所以,我在網站上我想要的頁面,如;如何使用mod_rewrite將網站目錄的外觀「移動」到根目錄而不實際移動文件?在我的代碼中發現錯誤!
www.example.com/shop/index.php
(或下/店鋪其他任何網頁/爲此事)。到現在爲止出現
www.example.com/index.php
,但沒有實際移動的文件,這些文件仍位於/店/,但現在通過網址訪問/
看起來很簡單,我可以使用RewriteRule自己做到這一點,非常標準。第二個要求是保持聯繫的舊內容的工作,所以我想類似的事情,但在其他方向,但使用301外部重定向(不重寫),即
www.example.com/shop/index.php
應該301重定向至;
www.example.com/index.php
再一次,它自己很簡單。但把它們放在一起,你就會在訪問一個頁面時給你一個可愛的「這個網頁有一個重定向循環」錯誤。不過,我不明白爲什麼,因爲一個規則是重寫,一個是301重定向,他們都有L標誌,所以我認爲沒有更多的規則被處理。所以,我處於我對這個mod_rewrite的理解的極限。
爲了測試和避免我的網站訪問人員,我使用的目錄/ blob /和/ b/with/b /是新的目錄。我現在有的代碼給了重定向循環,
RewriteRule ^blob/(.*)$ "http\:\/\/www\.example.com\/b\/$1" [R=301,NC,L]
RewriteRule ^b/(.*)$ /blob/$1 [NC,L]
我想是因爲第一條規則再次執行一次,爲什麼這是使用'L'標誌?我應該檢查或更改哪些條件以便重定向規則僅在原始請求用於/ blob/而不是重寫的URI時才被激活。
非常感謝您花時間幫助:) – kevin 2011-04-27 22:33:29
我的榮幸,希望它能爲您解決。 – anubhava 2011-04-27 22:36:29