我遇到了 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;我遗漏了什么?