如何对用户隐藏 .htaccess 重定向

How to hide .htaccess redirect from user

我的服务器域 www.domain.com 和多个子域 sub1.domain.com、sub2.domain.com。他们都指向服务器根目录。

我希望用户通过子域访问特定文件夹。例如:

我想对用户隐藏这些重定向。我尝试了以下 .htaccess 文件:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^sub1.domain.com$
RewriteRule ^(.*)$ http://sub1.domain.com/subFolder1/ [R,L]

RewriteCond %{HTTP_HOST} ^sub2.domain.com$
RewriteRule ^(.*)$ http://sub2.domain.com/subFolder2/ [R,L]

它只是在没有任何 URI 的情况下正确重定向,并且重定向是可见的。

您有 2 个问题导致外部重定向:

  1. RewriteRule
  2. 中使用R标志
  3. 在目标
  4. 中使用从 http:// 开始的绝对值 URL
  5. 另一个问题是您的重写规则是无条件的,这会导致无限循环。

您可以使用这些规则:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} =sub1.domain.com
RewriteRule ^((?!subFolder1/).*)$ subFolder1/ [NC,L]

RewriteCond %{HTTP_HOST} =sub2.domain.com
RewriteRule ^((?!subFolder2/).*)$ subFolder2/ [NC,L]