Nginx正則表達(dá)式的使用方法

這篇文章主要講解了Nginx正則表達(dá)式的使用方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、泰州網(wǎng)絡(luò)推廣、成都微信小程序、泰州網(wǎng)絡(luò)營(yíng)銷、泰州企業(yè)策劃、泰州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供泰州建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

前言

最近幫客戶配置服務(wù)器,經(jīng)常修改Nginx的配置文件,頻繁的用到正式匹配規(guī)則,這里整理了一些常用的正則參數(shù)及規(guī)則,以備查詢。

Nginx配置中Location的語(yǔ)法規(guī)則 location [ = | ~ | ~* | ^~ | !~ | !~* ] /uri/{ … }

  1. = 表示精確匹配
  2. ~ 表示區(qū)分大小寫正則匹配
  3. ~* 表示不區(qū)分大小寫正則匹配
  4. ^~ 表示URI以某個(gè)常規(guī)字符串開頭
  5. !~ 表示區(qū)分大小寫正則不匹配
  6. !~* 表示不區(qū)分大小寫正則不匹配
  7. / 通用匹配,任何請(qǐng)求都會(huì)匹配到
     

匹配順序

多個(gè)location配置的情況下匹配順序?yàn)椋?/p>

首先匹配 =
其次匹配 ^~
其次是按文件中順序的正則匹配
最后是交給 / 通用匹配
當(dāng)有匹配成功時(shí)候,停止匹配,按當(dāng)前匹配規(guī)則處理請(qǐng)求。

. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束

*     重復(fù)零次或更多次
+     重復(fù)一次或更多次
?     重復(fù)零次或一次
{n}     重復(fù)n次
{n,}     重復(fù)n次或更多次
{n,m}     重復(fù)n到m次
*?     重復(fù)任意次,但盡可能少重復(fù)
+?     重復(fù)1次或更多次,但盡可能少重復(fù)
??     重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}?     重復(fù)n到m次,但盡可能少重復(fù)
{n,}?     重復(fù)n次以上,但盡可能少重復(fù)

\W     匹配任意不是字母,數(shù)字,下劃線,漢字的字符
\S     匹配任意不是空白符的字符
\D     匹配任意非數(shù)字的字符
\B     匹配不是單詞開頭或結(jié)束的位置
[^x]     匹配除了x以外的任意字符
[^aeiou]     匹配除了aeiou這幾個(gè)字母以外的任意字符

常用的規(guī)則

精確匹配

location = / {
 proxy_pass http://127.0.0.1:9090/
}

將所有請(qǐng)求直接轉(zhuǎn)發(fā)給服務(wù)器的9090端口。

處理靜態(tài)文件

#目錄匹配
location ^~ /static/ {
 root /webroot/static/;
}
#后綴匹配
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
 root /webroot/res/;
}

轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器

#將/account/開始的請(qǐng)求轉(zhuǎn)發(fā)給Account服務(wù)器
location /account/ {
 proxy_pass http://127.0.0.1:8080/
}
#將/order/開始的請(qǐng)求轉(zhuǎn)發(fā)給Order服務(wù)器
location /order/ {
 proxy_pass http://127.0.0.1:9090/
}

rewrite指令

  • last 相當(dāng)于apache里面的[L]標(biāo)記,表示rewrite。
  • break 本條規(guī)則匹配完成后,終止匹配,不再匹配后面的規(guī)則。
  • redirect 返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址。
  • permanent 返回301永久重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址。
  • 使用last和break實(shí)現(xiàn)URI重寫,瀏覽器地址欄不變。
  • 使用alias指令必須用last標(biāo)記;使用proxy_pass指令時(shí),需要使用break標(biāo)記。
  • last標(biāo)記在本條rewrite規(guī)則執(zhí)行完畢后,會(huì)對(duì)其所在server{……}標(biāo)簽重新發(fā)起請(qǐng)求,而break標(biāo)記則在本條規(guī)則匹配完成后,終止匹配。

看完上述內(nèi)容,是不是對(duì)Nginx正則表達(dá)式的使用方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:Nginx正則表達(dá)式的使用方法
文章網(wǎng)址:http://muchs.cn/article38/gdddpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈電子商務(wù)、服務(wù)器托管定制網(wǎng)站、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化