如何使用.htaccess重定向带逗号分隔的错误URL?
解决错误URL的.htaccess重定向问题
问题背景
- 网站存在正常URL:
https://maldivesresorts.com.au/package/vakarufalhi-island-resort-all-meals-drinks/(有两个相同实例) - SEO审计排查出一个错误URL:
https://maldivesresorts.com.au/luxury-resorts-study-vakarufalhi-maldives-resort/,https://maldivesresorts.com.au/package/vakarufalhi-island-resort-all-meals-drinks/,here - 需要将该错误URL永久重定向至
/hot-deals,但当前使用的.htaccess代码无法生效
当前失效的代码
RewriteEngine On redirect /luxury-resorts-study-vakarufalhi-maldives-resort/,https://maldivesresorts.com.au/package/vakarufalhi-island-resort-all-meals-drinks/,here /hot-deals
修复方案
由于错误URL包含逗号、完整子URL等特殊字符,普通redirect指令无法正确匹配,需使用mod_rewrite的规则精准匹配路径:
RewriteEngine On RewriteRule ^luxury-resorts-study-vakarufalhi-maldives-resort/,https://maldivesresorts.com.au/package/vakarufalhi-island-resort-all-meals-drinks/,here$ /hot-deals [R=301,L]
规则说明
RewriteRule支持正则表达式匹配,能精准识别带特殊字符的请求路径R=301设置永久重定向,符合SEO优化要求,告诉搜索引擎该URL已永久迁移L标记表示匹配此规则后停止执行后续规则,避免冲突- 路径开头无需加斜杠,因为
RewriteRule匹配的是网站根目录下的相对路径(域名之后的部分)
内容的提问来源于stack exchange,提问作者Vijay
相关产品推荐
相关产品推荐

