如何在.htaccess中重定向结尾带4-5位数字的指定URL?
修正后的.htaccess重定向规则
直接使用以下规则即可实现需求:
RewriteEngine On RewriteRule ^kod-rabatowy/([^/]+)/([0-9]{4,5})$ kod-rabatowy/$1/ [R=302,L,NC]
规则说明:
RewriteEngine On:必须开启重写引擎,否则所有规则不生效- 匹配规则部分
^kod-rabatowy/([^/]+)/([0-9]{4,5})$:^锚定URL开头,确保只匹配以kod-rabatowy/开头的地址([^/]+)捕获品牌变量(如groupon),匹配除斜杠外的任意字符([0-9]{4,5})精准匹配结尾的4-5位数字,$确保URL到此结束,避免误匹配带其他后缀的地址
- 目标地址
kod-rabatowy/$1/:保留捕获的品牌变量,重定向到不带数字的目标路径 - 标记部分:
R=302:临时重定向,若需永久重定向可改为R=301L:匹配成功后停止处理后续规则NC:忽略URL大小写,兼容不同大小写的访问请求
原规则失效原因:
- 原
RewriteCond的正则表达式错误,多余的(/.*|)导致无法匹配目标URL格式 - 原
RewriteRule中用([^/]+)匹配结尾内容,未限制为数字,会错误匹配所有带后缀的地址,不符合仅4-5位数字才重定向的要求
内容的提问来源于stack exchange,提问作者Miłosz
相关产品推荐
相关产品推荐

