我需要使用 .htaccess 将子域重写为子目录,但将子域保留在 url 中,如下所示:
在浏览器中访问的网址:sub1.domain.com
服务网址:sub.domain.com/sub1/
我尝试了以下方法
RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteRule ^(.*)$ http://subdomain.domain.com/subdomain/$1 [L,NC,QSA]
但这会导致无限循环。我知道通过 php 来做到这一点会更容易,但是使用 .htaccess 是否有任何解决方案?
您可以在文档根目录中使用此规则:
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteRule ^((?!sub1/).*)$ /sub1/$1 [L,NC]
解释:
-
NC
: 忽略大小写
-
L
:最后一条规则
-
RewriteCond %{HTTP_HOST}
行确保规则仅执行subdomain
-
(?!sub1/)
是负向先行表达式,表示请求不是以以下开头/sub1/
-
RewriteRule ^((?!sub1/).*)$ /sub1/$1 [L,NC]
将当前路径重写为/sub1/<uri>
参考:
- Apache mod_rewrite简介
- Apache mod_rewrite 技术细节
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)