簡體   English   中英

用於NGINX的正則表達式重寫配置文件URL

[英]Regex for NGINX Rewrite on Profile URLs

我正在進行NGINX重寫。 我想匹配是否存在,並且它不只是將那里的內容設置為$ 2。

rewrite ^/profile/(([a-zA-Z0-9_-]*-u)|(^\s*$))([0-9]+)$ /profile/$2/ redirect;

這不是很正常,現在可以匹配/ a-u4 /,但我希望它也匹配/ 4 /。

正則表達式可能嗎?

是的,有可能。 我從您想匹配/ profile / Name-u000 /或/ profile / 000 /的注釋中了解到

此正則表達式將起作用:

^/profile/([a-zA-Z0-9_-]+-u)?([0-9]+)/$

這會將匹配的任何數字(000部分)放入$ 2。

制定完整規則:

rewrite ^/profile/([a-zA-Z0-9_-]+-u)?([0-9]+)/$ /profile/$2/ redirect;

但是請不要使用它! 如果您要這樣做,它將只會創建一個重定向周期。 但是我需要...

澄清度

我知道您可能需要進行調整才能准確地確定您想要的內容,因為我不清楚您要獲取的金額是2美元。 讓我知道,我將更新我的答案。 如果這只是您要捕獲的數字,那么您希望將/ profile / 000 /重定向到其自身而不進行任何更改,因此無需執行該部分,僅/ profile / Name-u000 /就需要重定向。 讓我知道我是否想念一些東西。

正則表達式如何工作

^/profile/

匹配字符串的開頭,后跟/ profile /。

([a-zA-Z0-9_-]+-u)?

(可選)匹配1個或多個字母,數字,下划線或破折號,后跟-u,並將其捕獲到$ 1。 括號后的問號是使其成為可選項的原因。 請記住,第一部分(在-u之前)甚至可能以下划線或破折號開頭或結尾,而您可能想要也可能不需要。

([0-9]+)

匹配1個或多個數字並捕獲至$ 2。

/$

在字符串末尾用正斜杠完成匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM