如何通过.htaccess实现主域名映射子域名内容且保留主域名URL
基于.htaccess的内部重定向配置方案
要实现访问www.example.com时加载new.example.com的内容、且地址栏保持主域名不变的需求,本质是使用Apache的代理模式做内部重定向,不需要触发浏览器端的跳转。
你只需要在www.example.com站点根目录的.htaccess文件中添加以下配置即可:
RewriteEngine On # 匹配所有访问主域名的请求 RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] # 内部代理到子域名站点内容,不改变地址栏 RewriteRule ^(.*)$ http://new.example.com/$1 [P,L]
参数说明
[NC]:忽略大小写匹配域名,兼容用户输入大小写混合的域名场景[P]:启用代理重写模式,是实现地址栏不变的核心参数[L]:匹配到本条规则后不再执行后续的重写规则,避免规则冲突
注意事项
- 必须提前确认服务器已经启用
mod_rewrite、mod_proxy、mod_proxy_http三个模块,否则规则会不生效甚至触发500错误 - 如果你的站点已经接入HTTPS,将规则中的
http://new.example.com/$1修改为https://new.example.com/$1即可,避免跨协议加载异常 - 如果两个站点的静态资源路径存在差异,建议先对齐
new.example.com的资源路径,或者额外补充静态资源的匹配规则 - 测试规则前建议清空浏览器缓存,避免旧的重定向缓存影响测试结果
内容的提问来源于stack exchange,提问作者Lily-Rose James
相关产品推荐
相关产品推荐

