精品一区二区三区影院在线午夜_天天躁日日躁狠狠躁AV麻豆_国产午夜福利短视频_中文字幕乱偷无码AV先锋蜜桃_久久精品一二区东京热_国产成人亚洲日韩欧美久久久,国产成人精品久久一区二区三区

nginx rewrite重寫(xiě)規則集合

本文根據網(wǎng)絡(luò )搜索整理,不是原創(chuàng )

一.正則表達式匹配,其中:
~       為區分大小寫(xiě)匹配
~*      為不區分大小寫(xiě)匹配
!~和!~*  分別為區分大小寫(xiě)不匹配及不區分大小寫(xiě)不匹配

.      匹配除換行符以外的任意字符
\w     匹配字母或數字或下劃線(xiàn)或漢字
\s     匹配任意的空白符
\d     匹配數字
\b     匹配單詞的開(kāi)始或結束
^      匹配字符串的開(kāi)始
$      匹配字符串的結束

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

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

(exp)         匹配exp,并捕獲文本到自動(dòng)命名的組里
(?<name>exp)  匹配exp,并捕獲文本到名稱(chēng)為name的組里,也可以寫(xiě)成(?'name'exp)
(?:exp)       匹配exp,不捕獲匹配的文本,也不給此分組分配組號    
(?=exp)       匹配exp前面的位置
(?<=exp)      匹配exp后面的位置
(?!exp)       匹配后面跟的不是exp的位置
(?<!exp)      匹配前面不是exp的位置
(?#comment)   注釋分組不對正則表達式的處理產(chǎn)生任何影響

二.文件及目錄匹配,其中:
-f和!-f用來(lái)判斷是否存在文件
-d和!-d用來(lái)判斷是否存在目錄
-e和!-e用來(lái)判斷是否存在文件或目錄
-x和!-x用來(lái)判斷文件是否可執行

三.rewrite指令的最后一項參數為flag標記,flag標記有:
1.last    相當于apache里面的[L]標記,表示rewrite。
2.break本條規則匹配完成后,終止匹配,不再匹配后面的規則。
3.redirect  返回302臨時(shí)重定向,瀏覽器地址會(huì )顯示跳轉后的URL地址。
4.permanent  返回301永久重定向,瀏覽器地址會(huì )顯示跳轉后的URL地址。

四. 語(yǔ)法規則: 【= | ^~ | ~ | ~* | / | /uri 】
 location = /uri                = 表示精確匹配,只有完全匹配上才能生效,若找到,停止搜索; 
 location ^~ /uri               ^~開(kāi)頭表示對URL路徑進(jìn)行前綴匹配,并且在正則匹配之前,若找到,停止搜索; 
 location ~ pattern             ~開(kāi)頭表示區分大小寫(xiě)的正則匹配,按配置文件順序匹配; 
 location ~* pattern            ~*開(kāi)頭表示不區分大小寫(xiě)的正則匹配,按配置文件順序匹配; 
 location /uri                  不帶任何修飾符,表示前綴匹配,在正則匹配之后; 
 location /                     通用匹配,任何未匹配到其他location的請求都會(huì )匹配到,相當于default; 

五. 多個(gè)location配置的情況匹配順序為
首先精確匹配 = ;
其次前綴匹配 ^~;
其次是按照配置文件中的正則匹配; 
然后匹配不帶任何修飾符的前綴匹配; 
最后交給/通用匹配;

nginx全局變量

arg_PARAMETER        #這個(gè)變量包含GET請求中,如果有變量PARAMETER時(shí)的值。
args                 #這個(gè)變量等于請求行中(GET請求)的參數,如:foo=123&bar=blahblah;
binary_remote_addr   #二進(jìn)制的客戶(hù)地址。
body_bytes_sent      #響應時(shí)送出的body字節數數量。即使連接中斷,這個(gè)數據也是精確的。
content_length       #請求頭中的Content-length字段。
content_type         #請求頭中的Content-Type字段。
cookie_COOKIE        #cookie COOKIE變量的值
document_root        #當前請求在root指令中指定的值。
document_uri         #與uri相同。
host                 #請求主機頭字段,否則為服務(wù)器名稱(chēng)。
hostname             #Set to themachine’s hostname as returned by gethostname
http_HEADER
is_args              #如果有args參數,這個(gè)變量等于”?”,否則等于”",空值。
http_user_agent      #客戶(hù)端agent信息
http_cookie          #客戶(hù)端cookie信息
limit_rate           #這個(gè)變量可以限制連接速率。
query_string         #與args相同。
request_body_file    #客戶(hù)端請求主體信息的臨時(shí)文件名。
request_method       #客戶(hù)端請求的動(dòng)作,通常為GET或POST。
remote_addr          #客戶(hù)端的IP地址。
remote_port          #客戶(hù)端的端口。
remote_user          #已經(jīng)經(jīng)過(guò)Auth Basic Module驗證的用戶(hù)名。
request_completion   #如果請求結束,設置為OK. 當請求未結束或如果該請求不是請求鏈串的最后一個(gè)時(shí),為空(Empty)。
request_method       #GET或POST
request_filename     #當前請求的文件路徑,由root或alias指令與URI請求生成。
request_uri          #包含請求參數的原始URI,不包含主機名,如:”/foo/bar.php?arg=baz”。不能修改。
scheme               #HTTP方法(如http,https)。
server_protocol      #請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
server_addr          #服務(wù)器地址,在完成一次系統調用后可以確定這個(gè)值。
server_name          #服務(wù)器名稱(chēng)。
server_port          #請求到達服務(wù)器的端口號。

nginx中rewrite 一些簡(jiǎn)單重寫(xiě)

禁止.mp3.sh訪(fǎng)問(wèn)

location ~ .*\.(mp3|sh)$

{

return 403;

}

目錄/hometest/ 重定向到 /www/temp/

rewrite ^/([0-9a-z]+)test/$ /www/$1 permanent;

例如:

訪(fǎng)問(wèn) ceshitest.com/uuu/

結果重定向到 ceshitest.com/www/uuu/

文件/ceshi-123-456-789.html 重定向到 /ceshi/123/456/789.html

rewrite ^/ceshi-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /ceshi/$1/$2/ceshitest_$3.html permanent;

根據表達式來(lái)重定向URI及修改字符串,只對相對路徑有效;如果想配對主機名,需使用if語(yǔ)句,示例如下:

if( $host ~* www\.(.*)\.(.*)$)

{

set $test1 $1;

set $test2 $2;

rewrite ^(.*)$ http://t=$test1&m=$test2 permanent;

}

例子:訪(fǎng)問(wèn)www.baidu.com

結果:瀏覽器會(huì )訪(fǎng)問(wèn) http://baiducom/ ($1代表第1個(gè)括號內容$2代表第2括號內容)

额敏县| 曲阜市| 桃园市| 德安县| 托里县| 綦江县| 积石山| 仪征市| 金塔县| 饶平县| 凤山市| 德昌县| 尼玛县| 萍乡市| 阿克苏市| 遂宁市| 临夏县| 星子县| 和平区| 舒兰市| 那曲县| 潞城市| 五大连池市| 扎兰屯市| 收藏| 恩施市| 图木舒克市| 密云县| 盐津县| 嫩江县| 枣强县| 许昌县| 定边县| 龙江县| 鹰潭市| 新安县| 上蔡县| 屏南县| 渭南市| 肥东县| 夹江县|