如何通过.htaccess将/series子路径重定向到/product并保留后续路径参数
配置方法
首先确认你的Apache服务器已经开启mod_rewrite模块,绝大多数商用主机默认都会开启该模块。
编辑站点根目录下的.htaccess文件,不存在的话可以手动新建,写入以下配置:
RewriteEngine On RewriteRule ^series/(.*)$ /product/$1 [L,R=301,NC]
规则说明
RewriteEngine On:开启Apache重写引擎,是所有重写规则生效的前提,如果你已经在文件其他位置写过这行可以不用重复添加^series/(.*)$:匹配所有以series/开头的请求路径,括号内的(.*)会捕获/series/之后的所有路径内容,存入变量$1/product/$1:重定向的目标路径,$1会自动替换为刚才捕获的后续路径,实现路径内容的保留- 末尾参数说明:
R=301:返回301永久重定向状态码,对搜索引擎收录更友好;如果只是临时测试需求,可以替换为R=302使用临时重定向L:表示匹配到该规则后不再执行后续的其他重写规则,避免规则冲突NC:匹配路径时不区分大小写,/Series/、/SERIES/这类大小写不一致的路径也会正常触发重定向
注意事项
- 如果你需要重定向时丢弃原请求的查询参数,可以在参数末尾加上
QSD,即修改为[L,R=301,NC,QSD] - 如果已有其他重写规则,请将这条规则放在所有规则的靠前位置,避免被其他规则提前拦截导致不生效
- 配置完成后如果没有立即生效,可以清理浏览器缓存后再测试
内容的提问来源于stack exchange,提问作者Vijay Bhatt
相关产品推荐
相关产品推荐

