.htaccess配置:将subdomain.domain.com/*重定向至domain.com/folder/*
.htaccess 子域名重定向到主域名文件夹的解决方案
直接用下面的规则就能实现你要的跳转,把代码放到你的.htaccess文件最开头:
RewriteEngine On # 匹配subdomain.domain.com的所有请求 RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC] # 重定向到主域名的folder目录,保留原请求的文件路径 RewriteRule ^(.*)$ https://domain.com/folder/$1 [L,R=302]
规则说明
RewriteEngine On:必须开启重写引擎,否则所有规则都不生效RewriteCond行:精准匹配子域名,[NC]表示不区分大小写,避免因大小写差异导致匹配失败RewriteRule行:^(.*)$捕获子域名下的所有请求路径(比如file.pdf),通过$1传递到目标地址,[L]表示执行完这条规则就停止后续匹配,[R=302]是临时重定向,测试没问题后可以改成R=301永久重定向
常见问题排查
- 连接重置问题:大概率是之前的规则导致了循环重定向,比如目标地址又触发了同一条规则。用上面的规则可以避免,因为它只匹配子域名的请求,主域名的请求不会触发这条规则。
- 规则不生效:
- 确认服务器开启了
mod_rewrite模块,并且网站根目录的Apache配置里设置了AllowOverride All,否则.htaccess文件不会被解析 - 检查域名拼写,正则里的
.必须用\.转义,否则会匹配任意字符 - 测试时先清空浏览器缓存,或者用隐私窗口访问,避免旧的重定向缓存影响结果
- 确认服务器开启了
内容的提问来源于stack exchange,提问作者Petitemo
相关产品推荐
相关产品推荐

