繁体   English   中英

正则表达式在重定向中排除 URL 的不同部分

[英]Regex to exclude varying part of a URL in redirection

我希望在 WordPress 安装上重定向图像,如下所示:

从:

https://example.com/uploads/folder/123/image.jpg
https://example.com/uploads/folder/123/image-small.jpg
https://example.com/uploads/folder/123/image-medium.jpg
https://example.com/uploads/folder/123/image-large.jpg

到一个独特的:

https://example.com/wp-content/uploads/image.jpg

目标是让所有变体(普通、小型、中型和大型)从旧文件夹重定向到新文件夹中的唯一图像。 我已经能够通过Redirection plugin实现这一点,使用一系列正则表达式:

/uploads/folder/\d{1,3}/(.*).jpg
/wp-content/uploads/$1.jpg

/uploads/folder/\d{1,3}/(.*)-small(.*)
/wp-content/uploads/$1$2

/uploads/folder/\d{1,3}/(.*)-medium(.*)
/wp-content/uploads/$1$2

/uploads/folder/\d{1,3}/(.*)-large(.*)
/wp-content/uploads/$1$2

但这似乎效率不高,我想用一个正则表达式来统治它们……

我尝试了不同的方法在一个正则表达式中统一所有案例,但无法做到(我发现的排除方法不允许我通过$1$2来正确重写 URL)。 我知道这可能是非常基本的,但如果有人能指出我正确的方向,我将不胜感激。

这可能有效:

/uploads/folder/\d{1,3}/(.*?)(?:-small|-medium|-large)?(\.\w+)
/wp-content/uploads/$1$2

请注意. 在正则表达式中表示任何字符,并且正则表达式量词默认是贪婪的(例如,尽可能匹配)。 因此,拥有.*通常会带来麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM