我需要使用 .htaccess 将子域重写为子目录,但将子域保留在 url 中,如下所示:
在浏览器中访问的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>
引用资料:
关于php - .htaccess 将子域重写到目录并将子域保留在 url 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22394989/