我有 2 个域指向相同的 IPfoo.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]
更新:谢谢@anubhava
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$
RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/(.*) HTTP/"
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)$ /bar/$1 [L]