如何对用户隐藏 .htaccess 重定向
How to hide .htaccess redirect from user
我的服务器域 www.domain.com 和多个子域 sub1.domain.com、sub2.domain.com。他们都指向服务器根目录。
我希望用户通过子域访问特定文件夹。例如:
- sub1.domain.com/someURI => sub1.domain.com/subFolder1/someURI
- sub2.domain.com/someURI => sub1.domain.com/subFolder2/someURI
我想对用户隐藏这些重定向。我尝试了以下 .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 个问题导致外部重定向:
- 在
RewriteRule
中使用R
标志
- 在目标
中使用从 http://
开始的绝对值 URL
- 另一个问题是您的重写规则是无条件的,这会导致无限循环。
您可以使用这些规则:
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]
我的服务器域 www.domain.com 和多个子域 sub1.domain.com、sub2.domain.com。他们都指向服务器根目录。
我希望用户通过子域访问特定文件夹。例如:
- sub1.domain.com/someURI => sub1.domain.com/subFolder1/someURI
- sub2.domain.com/someURI => sub1.domain.com/subFolder2/someURI
我想对用户隐藏这些重定向。我尝试了以下 .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 个问题导致外部重定向:
- 在
RewriteRule
中使用 - 在目标 中使用从
- 另一个问题是您的重写规则是无条件的,这会导致无限循环。
R
标志
http://
开始的绝对值 URL
您可以使用这些规则:
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]