nginx正則匹配 全域性常量

2021-10-04 01:10:34 字數 3840 閱讀 4105

1:nginx location 規則匹配

^

~ 識別符號匹配後面跟乙個字串。匹配字串後將停止對後續的正規表示式進行匹配。

如:location ^

~/images/

, 在匹配了/images、這個字串後就停止對後續的匹配

= 精準匹配,如:location=

/,只會匹配urrl為/的請求

~ 區分大小寫的匹配

~* 不區分大小寫的匹配

!~ 對區分大小寫的匹配取非!~

* 對區分大小寫的匹配取非

/ 通用匹配,如果沒有其他匹配,任何匹配請求都會被匹配到

2:正規表示式

*           重複前面的字元0次或多次

? 重複前面的字元0次或1次

+ 重複前面的字元1次或多次

. 匹配除換行符以外的任意乙個字元

(a | b) 匹配a或b

^ 以...

..開頭

$ 以...

..結尾

重複前面的字元n次

重複前面的字元n次或更多次

重複前面的字元n次到m次

*? 重複前面的字元0次或多次 ,但盡可能的少重複

+? 重複前面的字元1次或更多次 ,但盡可能的少重複

?? 重複前面的字元0次或1次 ,但盡可能的少重複

? 重複前面的字元n次或m次 ,但盡可能的少重複

? 重複前面的字元n次以上 ,但盡可能的少重複

3:正則補充

\w          匹配任意不是字母,數字,下劃線,漢子的字元

\s 匹配任意不是空白字串的字元

\d 匹配任意非數字的字元

\b 匹配不是單詞開頭或結束的位置

[a] 匹配a-z小寫字母的任意乙個

[^a] 匹配除a以外的任意字元

4:過期快取

expires      30d

;

5:設定某些型別檔案的瀏覽器快取時間

6:針對瀏覽器

location /

}

7:判斷檔案,資料夾

-f和!

-f用來判斷是否存在檔案

-d和!

-d用來判斷是否存在目錄

-e和!

-e用來判斷是否存在檔案或目錄

-x和!

-x用來判斷檔案是否可執行

8:全域性變數

$args                  請求中的引數,如www.abc.com/test/hello?a=

1&b=

2的$args就是a=

1&b=

2$document_root nginx虛擬主機配置檔案中的root引數對應的值

$document_uri 當前請求中不包含指令的uri,如www.abc.com/test/hello?a=

1&b=

2的document_uri就是/test/hello,不包含後面的引數

$host 主機頭,也就是網域名稱

$http_user_agent 客戶端的詳細資訊,也就是瀏覽器的標識,用curl -a可以指定

$http_cookie cookie資訊

$limit_rate 如果nginx伺服器使用limit_rate配置了顯示網路速率,則會顯示,如果沒有設定,則顯示0

$remote_addr 客戶端的公網ip

$remote_port 客戶端的埠

$request_method 請求資源的方式,get/put/delete等

$request_filename 當前請求的資源檔案的路徑名稱,相當於是$document_root/$document_uri的組合

$request_uri 請求的鏈結,包括$document_uri和$args

$scheme 請求的協議,如ftp、http、https

$server_protocol 客戶端請求資源使用的協議的版本,如http/

2.0等

$server_addr 伺服器ip位址

$server_name 伺服器的主機名

$server_port 伺服器的埠號

$uri 和$document_uri相同

$http_referer 客戶端請求時的referer,通俗講就是該請求是通過哪個鏈結跳過來的

常用:$http_referer

$request_uri

$http_user_agent

9:案例

Nginx 正則匹配

目錄 區分大小寫 大小寫敏感 匹配成功 不區分大小寫匹配成功 區分大小寫匹配失敗 不區分大小寫匹配失敗 以什麼開頭的匹配 以什麼結尾的匹配 代表任意字元 expires 30d 表示過期時間30天 location 禁止訪問chrome瀏覽器。f和 f用來判斷是否存在檔案 d和 d用來判斷是否存在目...

正則全域性匹配 g

每次匹配使用當前正則物件的lastindex屬性的值作為在目標字串中開始查詢的起始位置。lastindex屬性的初始值為0,找到匹配的項後lastindex的值被重置為匹配內容的下乙個字元在字串中的位置索引,用來標識下次執行匹配時開始查詢的位置,如果找不到匹配的項lastindex的值會被設定為0。...

定義全域性常量

這樣定義 private final static int over all 如果只有final,這個值雖然不能改,但是如果over all所在的類有很多個物件,那麼over all這個物件將存放很多次,會很浪費空間。所以需要加加上static,這樣的話就算有很多物件那也會只有乙個over all。...