簡體   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