[英]How to redirect URL using .htaccess with dynamic parameter?
我想重定向
https://example.com/product-info/A100001
到
https://example.com/product-info/index/index/id/A100001
使用.htaccess 重定向规则
A100001 将是动态的
A100001
A100002
A100003
A100004
....
我正在尝试这个
RewriteEngine on
RewriteCond %{QUERY_STRING} product-info/A100001
RewriteRule ^$ /routing/index/index/id/? [L,R=301]
还尝试了其他示例,但在我的场景中不起作用
任何精通 htacees 规则的人都可以在这方面帮助我。
RewriteCond %{QUERY_STRING} product-info/A100001 RewriteRule ^$ /routing/index/index/id/? [L,R=301]
您的示例 URL 仅包含 URL 路径,不包含查询字符串。 您发布的规则会将/?product-info/A100001
到/routing/index/index/id/
。
请尝试以下内容:
RewriteRule ^(product-info)/(A\d{6})$ /$1/index/index/id/$2 [R=302,L]
上面的代码会将/product-info/A123456
形式的请求重定向到/product-info/index/index/id/A123456
。
$1
反向引用仅包含product-info
,从RewriteRule
模式(保存重复)中捕获, $2
包含动态部分( A
后跟 6 位数字)。
这是一个 302(临时)重定向。 始终首先使用 302 进行测试,以避免潜在的缓存问题。
.htaccess
文件中指令的顺序很重要。 在任何现有重写之前,此规则可能需要在文件顶部附近添加 go。
更新:
重定向正在使用你的代码,你能告诉我参数模式吗,我需要从 A452218 到 A572217 的数字
Regex 不处理数字范围,只处理字符范围。 如果您特别只想匹配指定范围内的数字,那么您需要执行以下操作(更复杂):
RewriteRule ^(product-info)/A(45221[89]|4522[2-9]\d|452[3-9]\d{2}|45[3-9]\d{3}|4[6-9]\d{4}|5[0-6]\d{4}|57[01]\d{3}|572[01]\d{2}|57220\d|57221[0-7])$ /$1/index/index/id/A$2 [R=302,L]
注意: $2
反向引用现在只包含动态数字,减去A
前缀,它现在明确包含在替换字符串中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.