Apache 2.2 重写规则过度绑定

Apache 2.2 重写规则过度绑定

我遇到了 RewriteRule 的问题,它似乎在 REGEX 中过度绑定:

RewriteRule ([0-9]{4,6}(?:-[0-9]{1,2})?\.jpg)$     /cgi-bin/logo-image.pl?image=$1 [L,PT]

它应该做的是绑定一个 4-6 位数字,后跟可选的-,一个 1-2 位数字和.jpg,在 URL 末尾,并将它们作为查询字符串发送到后端。除非 URL 中还有另一个 4-6 位数字,否则它可以正常工作,例如,

https://site.url/images-sold/foo-bar-498-24340-1.jpg

工作,调用/cgi-bin/logo-image.pl?image=24340-1.jpg,但是

https://site.url/images-sold/foo-bar-49899-24340-1.jpg

调用/cgi-bin/logo-image.pl?image=49899-24340-1.jpg。我已验证正则表达式为有效的 PCRE;我遗漏了什么?

相关内容