1.location 介紹
•location 是在 server 塊中配置,用來通過匹配接收的uri來實現分類處理不同的請求,如反向代理,取靜態文件等
•location 在 server 塊中可以有多個,且是有順序的,會被第一個匹配的 location 處理
•localtion 匹配功能只做匹配分發用,并不會改變uri的內容或其他作用,我一開始理解的時候就混淆了一些概念,建議多做測試看實際效果
2.localtion 匹配規則
•location [ = | ~ | ~* | ^~ ] uri { … }
•location @name { … }
注1:規則不能混合使用
注2:以下例子說明都以該server為基礎
1
2
3
4
|
server { listen 8861; server_name abc.com; } |
2.1 “=” 精確匹配
•內容要同表達式完全一致才匹配成功
例:
1
2
3
4
5
6
|
location = / { ..... } # 只匹配http://abc.com # http://abc.com [匹配成功] # http://abc.com/index [匹配失敗] |
2.2 “~”,大小寫敏感
例·:
1
2
3
4
5
|
location ~ /Example/ { ..... } #http://abc.com/Example/ [匹配成功] #http://abc.com/example/ [匹配失敗] |
2.3.“~*”,大小寫忽略
例:
1
2
3
4
5
6
|
location ~* /Example/ { ..... } # 則會忽略 uri 部分的大小寫 #http://abc.com/test/Example/ [匹配成功] #http://abc.com/example/ [匹配成功] |
2.4.“^~”,只匹配以 uri 開頭
例:
1
2
3
4
5
6
|
location ^~ /index/ { ..... } #以 /img/ 開頭的請求,都會匹配上 #http://abc.com/index/index.page [匹配成功] #http://abc.com/error/error.page [匹配失敗] |
2.5.“@”,nginx內部跳轉
例:
1
2
3
4
5
6
7
|
location /index/ { error_page 404 @index_error; } location @index_error { ..... } #以 /index/ 開頭的請求,如果鏈接的狀態為 404。則會匹配到 @index_error 這條規則上。 |
2.6 不加任何規則
•不加任何規則則時,默認是大小寫敏感,前綴匹配,相當于加了“~”與“^~”
•只有 / 表示匹配所有uri
1
2
3
4
5
6
7
8
9
10
11
|
location /index/ { ...... } #http://abc.com/index [匹配成功] #http://abc.com/index/index.page [匹配成功] #http://abc.com/test/index [匹配失敗] #http://abc.com/Index [匹配失敗] # 匹配到所有uri location / { ...... } |
總結
以上所述是小編給大家介紹的nginx location 配置 正則表達式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://blog.csdn.net/u014296316/article/details/80966675