如何配置.htaccess实现根域名重定向到子域名并移除查询字符串
正确的.htaccess重定向配置
以下规则可实现将example.com和www.example.com的所有请求重定向到blog.example.com,保留原URL路径同时移除所有查询字符串:
RewriteEngine On # 匹配根域名或www子域名 RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] # 重定向到blog子域名,保留路径并清空查询字符串 RewriteRule ^(.*)$ https://blog.example.com/$1? [R=301,L]
规则说明:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]:精准匹配请求的主机名是example.com或www.example.com,[NC]参数忽略大小写差异。RewriteRule ^(.*)$ https://blog.example.com/$1? [R=301,L]:^(.*)$捕获主机名后的全部路径内容(包括空路径);$1引用捕获到的路径,实现原路径的完整保留;- 结尾的
?会强制清空原URL的所有查询字符串; R=301标记为永久重定向,L表示执行完这条规则后停止后续规则处理。
原有规则无效的原因:
你之前的规则仅匹配根路径(空路径)且无查询字符串的请求场景,完全覆盖不到带路径或包含查询字符串的情况,因此无法满足需求。
内容的提问来源于stack exchange,提问作者Abhijeet Pratap
相关产品推荐
相关产品推荐

