我有 2 个指向同一 IP 的域名foo.com
,bar.com
我无权为域名设置虚拟主机,但我已设法创建.htaccess
规则,以便像这样设置。
- foo.com 指向 / 目录
- bar.com 指向 /bar 目录
有了上述设置后,现在我可以使用不同的index.html
文件来访问域的根目录。
这是我实施的规则bar.com
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{REQUEST_URI} !bar/
RewriteRule ^(.*)$ bar/$1 [L]
上述规则运行良好,但是当我导航到bar.com/bar
它时并没有给我一个404
,而是仍然指向我的bar
目录的根目录。
因此,我创建了另一个RewriteCond
来处理此类问题。
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/ HTTP/"
虽然RewriteCond
效果很好。我不确定我会写什么重写规则,以便当用户访问时bar.com/bar
它会指向/bar/bar
目录,从而给我一个404
我尝试了RewriteRule
下面的方法,但似乎不起作用
RewriteRule ^bar/(.*)$ bar/bar/$1 [L,QSA]
所以我临时创建了一个到主bar.com
域的重定向。
RewriteRule ^bar/(.*)$ http://bar.com/$1 [L,QSA,R=301]
答案1
我是这样做的。
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/(.*) HTTP/"
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)$ /bar/$1 [L]