2010-08-24 50 views
0

的URL我需要更改目錄的URL,以便:如何改變目錄

www.example.com/foo/ 

成爲

www.example.com 

我不能移動的文件。

使用mod_rewrite簡單地重寫www.example.com改爲www.example.com/foo把一個htaccess文件是沒有問題的

RewriteEngine On 
RewriteRule !^foo/ foo%{REQUEST_URI} [L] 

但是我必須確保如果用戶請求WWW .example.com/foo表示http狀態爲404或用戶重定向到www.example.com。不幸的是,無論我做什麼,它似乎最終在一個無限循環。例如,這將導致一個無限循環重定向:

RewriteEngine On 
RewriteRule !^foo/ foo%{REQUEST_URI} [L] 

RewriteCond %{REQUEST_URI} ^/foo 
RewriteRule ^foo(.*) http://www.example.com$1 [R=301,L] 

回答

1

您需要在發送給服務器的原始請求狀態下,由於mod_rewrite處理,這將導致內部重定向循環過程中%{REQUEST_URI}將發生變化。

因此,這樣的事情應該注意的事情(爲404,你301 RewriteRule應該可以正常工作,以及如果你要交換,在):

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/foo [NC] 
RewriteRule^- [R=404]