如何用.htaccess将含?和color_id的URL重定向至根域名
解决.htaccess重定向到根域名的问题
问题分析
你当前的规则中,RewriteRule ^(.*)$ /$1? 会保留原请求的路径(比如示例中的wholesale-pricelist),仅清空查询字符串,因此重定向结果不是目标根域名。
修正后的规则
将规则修改为以下内容,即可实现所有查询字符串包含color_id的URL重定向到根域名:
RewriteEngine On RewriteCond %{QUERY_STRING} color_id RewriteRule ^(.*)$ /? [R=301,L]
规则说明
RewriteCond %{QUERY_STRING} color_id:匹配任何查询字符串中包含color_id的请求,不管color_id在查询串中的位置,覆盖更多场景。RewriteRule ^(.*)$ /?:将匹配到的任意路径直接重定向到根域名/,末尾的?用于清空重定向后的查询字符串。R=301:标记为永久重定向,符合SEO优化的需求。L:表示这是最后一条执行的规则,避免后续规则干扰。
注意事项
确保该规则放在.htaccess文件中其他重写规则的前面,防止被其他规则提前拦截处理。
内容的提问来源于stack exchange,提问作者Ayan Biswas
相关产品推荐
相关产品推荐

