2016-01-19 141 views
0

我試圖找到上述問題的答案,並且無法這樣做。我發現的大多數示例都是將所有子目錄子頁面重定向到根目錄,而不是重定向到子目錄的根目錄。將所有子目錄子頁面重定向到子目錄根

例如,我希望所有http://domain.com/subdirectory/ *去http://domain.com/subdirectory/,並實施在.htaccess以下的重定向規則:

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^subdirectory/(.*)$ /subdirectory/ [R=301,NC,L] 

我也試過:

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^subdirectory/(.*)$ http://domain.com/subdirectory/ [R=301,NC,L] 

兩種情況上方嘗試去http://domain.com/subdirectory時會導致重定向循環錯誤 - 這裏有任何想法或建議?

回答

0

你需要在你的正則表達式使用.+目錄名稱後:

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(subdirectory)/(.+)$ /$1/ [R=301,NC,L] 

否則subdirectory/.*也匹配/subdirectory/引起重定向循環。

+0

試過了,它返回了500服務器錯誤。 – Scott

+0

這條規則沒有錯,因爲它在我的Apache上工作。對於500你應該檢查你的Apache error.log並在這裏報告錯誤 – anubhava