重定向 sytnax

问题描述 投票:0回答:1

我正在做的一个网站将使用不同的图片路径,事实上,这些图片将存储在一个共同的文件夹中。我希望所有匹配指定模式的请求都能成功,并显示所请求的图片。

我的匹配标准模式如下。

"/" + any web-friendly path (could include forward slashes) + "_" + 6 digit number + "_" + one of the following: [tn|s|m|l|xl|xxl] + ".jpg" 

如果一个请求符合这个模式,那么它应该被重定向,就像这样。

"/img/" + requested 6 digit number + "_" + requested characters from [tn|s|m|l|xl|xxl] + ".jpg".

所以,所有(包括请求的文件名的第一部分)直接在6位数前面的内容都应该用 "img "代替。

一些例子。

/foo/bar_000001_s.jpg                 -> /img/000001_s.jpg
/foo/bar/foo-foo_bar-bar_000099_s.jpg -> /img/000099_s.jpg

我最接近的尝试:

RewriteRule ^\/([A-Za-z0-9_-\/\s]+)_([0-9]{6})_([tn|s|m|l|xl|xxl])(.jpg)$ /img/$2_$3$4$
regex .htaccess
1个回答
1
投票

你可以使用。

RewriteRule (?:^|/)[\w-]+?_(\d{6})_(tn|[sml]|xx?l)(\.jpg)$ /img/$1_$2$3 [L,NC,R=302]
  • 使开始 / 可选
  • 使用 \w 对于 [a-zA-Z0-9_]
  • 使第一场比赛非贪婪的使用 +?
  • 交替使用时,移除 [] 肃清
  • 移除 $ 从目标URI末端
© www.soinside.com 2019 - 2024. All rights reserved.