如何通过子文件夹内的.htaccess将根域名URL重写至指定子目录
.htaccess URL重写配置方案
将以下内容写入/subfolder目录下的.htaccess文件即可实现需求:
RewriteEngine On # 匹配所有访问原域名 example.com 的请求,包含带www前缀的情况 RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] # 重定向所有请求到目标地址,默认保留原请求路径与查询参数 RewriteRule ^(.*)$ https://example.co.uk/subfolder/$1 [L,R=301,QSA]
规则说明
[NC]:忽略大小写匹配域名,www.example.com和example.com都会命中规则,不需要匹配带www的场景可以删掉规则里的(www\.)?[R=301]:使用301永久重定向,有利于搜索引擎权重传递;调试阶段可改为R=302临时重定向,避免浏览器缓存旧规则导致调试异常[L]:匹配到该规则后终止后续所有重写规则,避免和其他规则冲突[QSA]:保留原请求的查询参数,例如原请求https://example.com/page?id=123会跳转到https://example.co.uk/subfolder/page?id=123- 如果不需要保留原请求路径,所有请求统一跳转到
subfolder首页,将规则改为RewriteRule ^(.*)$ https://example.co.uk/subfolder/ [L,R=301]即可
生效前提
- 服务器已启用Apache的
mod_rewrite扩展 - 站点配置中
/subfolder目录的AllowOverride参数设置为All,允许.htaccess文件生效 example.com和example.co.uk两个域名的请求均可被当前站点接收
内容的提问来源于stack exchange,提问作者Metame
相关产品推荐
相关产品推荐

