.htaccess 域目录无法正确解析 domain.com/domain

.htaccess 域目录无法正确解析 domain.com/domain

我有 2 个指向同一 IP 的域名foo.combar.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]

相关内容