如何使用.htaccess实现带动态参数的URL重定向?
解决.htaccess动态URL重定向问题
直接用下面的规则就能实现你要的重定向需求:
RewriteEngine On # 匹配/product-info/后接A开头+数字的动态参数,永久重定向到目标路径 RewriteRule ^product-info/([A]\d+)$ /product-info/index/index/id/$1 [L,R=301]
规则说明
RewriteEngine On:必须开启重写引擎,否则所有规则都不生效。^product-info/([A]\d+)$:精准匹配路径以product-info/开头,后面跟着A开头+一串数字的动态参数(比如A100001、A100002这类格式),括号里的([A]\d+)是捕获组,用来抓取这个动态参数。/product-info/index/index/id/$1:重定向的目标路径,$1会替换成前面捕获到的动态参数,实现动态匹配。[L,R=301]:L表示匹配到这条规则后就停止处理后续规则;R=301是永久重定向,适合SEO场景,浏览器和搜索引擎都会记住这个跳转关系。
你之前规则的问题
- 错误用了
RewriteCond %{QUERY_STRING}:你要处理的product-info/A100001是URL的路径部分,不是?后面的查询字符串,所以这个条件根本匹配不到目标URL。 RewriteRule ^$:这条规则只匹配网站根目录(空路径),和你要处理的/product-info/A100001完全不沾边。- 目标路径写错:你写的
/routing/index/index/id/?不仅路径和需求不符,还没保留动态参数,自然无法实现预期跳转。
内容的提问来源于stack exchange,提问作者Purushotam Sharma
相关产品推荐
相关产品推荐

