我有2个域指向相同的IP foo.com和bar.com
我没有权限为域设置虚拟主机,但是我已经设法创build了.htaccess规则,以便像这样设置。
现在有了上面的设置,我可以有不同的index.html文件来访问域的根目录。
这是我为bar.com实施的规则
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$ RewriteCond %{REQUEST_URI} !bar/ RewriteRule ^(.*)$ bar/$1 [L]
上面的规则完美地工作,但是当我浏览到bar.com/bar它不给我一个404 ,而是它仍然指向我的bar目录的根。
所以,我创build了另一个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]
所以我暂时创build了一个redirect到主bar.com域。
RewriteRule ^bar/(.*)$ http://bar.com/$1 [L,QSA,R=301]
我就是这么做的
RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$ RewriteCond %{THE_REQUEST} "(GET|POST) \/bar\/(.*) HTTP/" RewriteCond %{ENV:REDIRECT_STATUS} !200 RewriteRule ^(.*)$ /bar/$1 [L]