0
我有我找不出mod_rewrite重定向问题。重定向到子目录和子目录出
来自特定域的所有请求都会“静静地”重写到指定的子目录中。例如www.mydomain.net/hello.html
检索/net/hello.html
中的文件。下面的.htaccess (放在我的托管根)达到这个完美:
RewriteEngine on
RewriteBase/
RewriteCond %{ENV:REDIRECT_STATUS} 200 # <-- i will need this later. read to the end of the post.
RewriteRule .* - [L]
rewriteCond %{HTTP_HOST} ^www.mydomain.net$
rewriteCond %{REQUEST_URI} !^/net.*$
rewriteRule (.*) /net/$1 [L]
但是,直接的网址进入该目录但应明显与301的URL重定向没有该子目录。例如www.mydomain.net/net/hello.html
应该重定向到www.mydomain.net/hello.html
(它仍然检索/net/hello.html
中的文件)。我.htacces此(放置在/net
)文件遗憾的是不起作用:
RewriteEngine on
RewriteBase/
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^(.*) /$1 [R=301,L]
我得到一个不定式重定向循环尽管在根.htaccess文件的RewriteCond %{ENV:REDIRECT_STATUS} 200
块...所以有什么不对?
顺便说一句,我必须使用mod_rewrite,因为该网站是externaly托管,我没有访问的Apache配置。
非常感谢任何指针。
感谢秋葵!使用THE_REQUEST规避循环。但是,我必须将RewriteRule行更改为“RewriteRule ^(。*)/ $ 1 [L,R = 301]”,因为.htaccess文件是从子目录“net”执行的。 – halloleo 2010-04-12 06:06:41