2010-08-24 46 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]