- nginx配置
# ^測(cè)試
location ~ ^/imgs {
return 200 "匹配/imgs開頭的正則表達(dá)式";
}
- 測(cè)試
### ngxinx響應(yīng):匹配/imgs開頭的正則表達(dá)式
GET http://localhost:85/imgs/123
- nginx配置
# $測(cè)試
location ~ \.js$ {
return 200 "匹配js文件";
}
- 測(cè)試
### ngxinx響應(yīng):匹配js文件
GET http://localhost:85/http.js
[abc]
匹配[]內(nèi)的任意一個(gè)字符- nginx配置
# [abc]測(cè)試
location ~ [a-zA-Z].html$ {
return 200 "匹配英文字母的html";
}
- 測(cè)試
### ngxinx響應(yīng):匹配英文字母的html
GET http://localhost:85/demo.html
### ngxinx響應(yīng):404 Not Found。因?yàn)閐emo1中含有數(shù)據(jù)不合規(guī)則
GET http://localhost:85/demo1.html
- nginx配置
location ~ ^/users?$ {
return 200 "匹配user結(jié)尾 或 users結(jié)尾";
}
- 測(cè)試
### ngxinx響應(yīng):匹配user結(jié)尾 或 users結(jié)尾
GET http://localhost:85/user
### ngxinx響應(yīng):匹配user結(jié)尾 或 users結(jié)尾
GET http://localhost:85/users
### ngxinx響應(yīng):匹配user結(jié)尾 或 users結(jié)尾。因?yàn)閚ginx的locaton匹配的是URI(統(tǒng)一資源標(biāo)識(shí)符),不是URL(統(tǒng)一資源定位符),URL比URI范圍更廣,URL還包含查詢參數(shù)如?id=123、片段標(biāo)識(shí)符如#section1
GET http://localhost:85/user?name=abc
### ngxinx響應(yīng):404 Not Found。不符合匹配規(guī)則。
GET http://localhost:85/usernames
- nginx配置
# +測(cè)試、\w測(cè)試,匹配多個(gè)路徑參數(shù),/\w+表示路徑參數(shù),(/\w+)+表示1個(gè)以個(gè)路徑參數(shù),((/\w+)+)+將多個(gè)路徑參數(shù)分組
location ~ ^/api((/\w+)+)+$ {
return 200 $1;
}
- 測(cè)試
### ngxinx響應(yīng):404 Not Found。沒有路徑參數(shù)匹配不到
GET http://localhost:85/api
### ngxinx響應(yīng):/user。匹配1個(gè)路徑/user
GET http://localhost:85/api/user
### ngxinx響應(yīng):/user/books
GET http://localhost:85/api/user/books
### ngxinx響應(yīng):/user/book/12
GET http://localhost:85/api/user/book/12
- nginx配置
# *測(cè)試、\w測(cè)試,匹配0或多個(gè)路徑參數(shù)
location ~ ^/dev-api((/\w+)+)*$ {
return 200 $1;
}
- 測(cè)試
### ngxinx響應(yīng): Response code: 200 (OK) <Response body is empty>。匹配0個(gè)參數(shù)路徑
GET http://localhost:85/dev-api
### ngxinx響應(yīng):/user
GET http://localhost:85/dev-api/user
### ngxinx響應(yīng):/user/books
GET http://localhost:85/dev-api/user/books
### ngxinx響應(yīng):/user/book/123
GET http://localhost:85/dev-api/user/book/123
- nginx配置
# .測(cè)試 匹配換行符以外的其它字符
location ~ ^/others/(.+)+$ {
return 200 $1;
}
- 測(cè)試
### ngxinx響應(yīng):asdfas2435!@
GET http://localhost:85/others/asdfas2435!@#
### ngxinx響應(yīng):404 Not Found。因?yàn)榘?0a,%0a為urlencode后的換行符
GET http://localhost:85/others/asdfas%0a2435!@#
- nginx配置
# \W測(cè)試,匹配非數(shù)字、非字母、非下劃線
location ~ ^/W/(\W+)$ {
return 200 $1;
}
- 測(cè)試
### nginx響應(yīng):!@#$%^&*()
GET http://localhost:85/W/!%40%23%24%25%5E%26*()
### nginx響應(yīng):404 Not Found。不符合規(guī)則,含有數(shù)字和字母
GET http://localhost:85/W/!%40%23%24%25%5E%26*()123abc
- nginx配置
# \d測(cè)試,匹配數(shù)字
location ~ ^/num/(\d+)$ {
return 200 $1;
}
- 測(cè)試
### nginx響應(yīng):123
GET http://localhost:85/num/123
### nginx響應(yīng):404 Not Found。不符合規(guī)則
GET http://localhost:85/num/abc
- nginx配置
# \s測(cè)試,匹配\n和\t
location ~ ^/empty((/\s+)+)+$ {
return 200 $1;
}
- 測(cè)試
### nginx響應(yīng):/ %0a:換行符
GET http://localhost:85/empty/%0a
### nginx響應(yīng):/ / %09:制表符
GET http://localhost:85/empty/%09/%09
- 分組編號(hào):從左至右從1開始號(hào),每遇到一個(gè)左括號(hào)編號(hào)就加1
- 使用分組:$n表示第n個(gè)分組中的內(nèi)容
閱讀原文:原文鏈接
該文章在 2025/7/1 23:40:17 編輯過