我有一个无法解决的mod_重写重定向问题。
来自特定域的所有请求都会被“静默”重写到指定的子目录中。例如
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]
但是,将url直接指向这个目录应该可以用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]
我得到一个不定式重定向循环,尽管
RewriteCond %{ENV:REDIRECT_STATUS} 200
在根.htaccess文件中阻止…怎么了?
顺便说一句,我必须使用mod_rewrite,因为这个站点是外部托管的,我不能访问apache配置。
非常感谢你的指点。