欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂紅帽Linux開發(fā)Nginx實現(xiàn)IF語句AND和OR多重判斷

2018-07-03 11:20:51 1690瀏覽

一、NginxRewrite規(guī)則相關指令有if、rewrite、set、return、break等

1、其中rewrite是最關鍵的指令。一個簡單的NginxRewrite規(guī)則語法如下:

rewrite^/b/(.*)\.html/play.php?video=$1last;
break;

2、如果加上if語句,示例如下:

if(!-f$request_filename)
rewrite^/img/(.*)$/site/$host/images/$1last;

二、Nginx與Apache的Rewrite規(guī)則實例對比

簡單的Nginx和Apache重寫規(guī)則區(qū)別不大,基本上能夠完全兼容。例如:

ApacheRewrite規(guī)則:

RewriteRule^/(mianshi|xianjing)/$/zl/index.php?name=$1[L]
RewriteRule^/ceshi/$/zl/ceshi.php[L]
RewriteRule^/(mianshi)_([a-zA-Z]+)/$/zl/index.php?name=$1_$2[L]
RewriteRule^/pingce([0-9]*)/$/zl/pingce.php?id=$1[L]

NginxRewrite規(guī)則:

rewrite^/(mianshi|xianjing)/$/zl/index.php?name=$1last;
rewrite^/ceshi/$/zl/ceshi.phplast;
rewrite^/(mianshi)_([a-zA-Z]+)/$/zl/index.php?name=$1_$2last;
rewrite^/pingce([0-9]*)/$/zl/pingce.php?id=$1last;

三、NGINX實現(xiàn)IF語句里的AND,OR多重判斷

1、nginx的配置中不支持if條件的邏輯與/邏輯或運算,并且不支持if的嵌套語法,我們可以用變量的方式來實現(xiàn):

具體方法為AND就用變量疊加,OR就用0或1切換。

1)首先是偽代碼(即不被nginx支持)寫在這里只是為了方便理解:

if($remote_addr~"^(12.34|56.78)"&&$http_user_agent~*"spider"){
return403;
}

這是等效的,并真實可用的配置

set$flag0;
if($remote_addr~"^(12.34|56.78)"){
set$flag"${flag}1";
}
if($http_user_agent~*"spider"){
set$flag"${flag}2";
}
if($flag="012"){
return403;
}

2)服務器真實生效的配置

location/{
if($request_filename~^(.+)/(.+)$){
set$l2$1;
}
set$ll$request_filename;
if(!-e$request_filename){
set$l3"3";
}
if(!-e$l2){
set$l4"1$l3";
}
if($l4=13){
rewrite^(.*)$http://m.dionly.net.cn;
}
access_log/tmp/pythotab-access.logxingcheng;
error_log/tmp/pythotab-error.log;
}

釋義:

a.$request_filename為被請求文件的路徑,$request_filename~^(.+)/(.+)$為被請求文件的上級目錄信息??梢詫?l2定義在日志格式中,通過日志查看輸出是否成功。

b.通過set$l4"1$l3",實際上就代替了邏輯與運算。

四、nginx的rewrite規(guī)則參考

-~為區(qū)分大小寫匹配

-~*為不區(qū)分大小寫匹配

-!~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹

--f和!-f用來判斷是否存在文件

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

--e和!-e用來判斷是否存在文件或目錄

--x和!-x用來判斷文件是否可執(zhí)行

-last相當于Apache里的[L]標記,表示完成rewrite,呵呵這應該是最常用的

-break終止匹配,不再匹配后面的規(guī)則

-redirect返回302臨時重定向地址欄會顯示跳轉(zhuǎn)后的地址

-permanent返回301永久重定向地址欄會顯示跳轉(zhuǎn)后的地址

-$args

-$content_length

-$content_type

-$document_root

-$document_uri

-$host

-$http_user_agent

-$http_cookie

-$limit_rate

-$request_body_file

-$request_method

-$remote_addr

-$remote_port

-$remote_user

-$request_filename

-$request_uri

-$query_string

-$scheme

-$server_protocol

-$server_addr

-$server_name

-$server_port

-$uri

以上就是關于扣丁學堂紅帽Linux開發(fā)Nginx實現(xiàn)IF語句AND和OR多重判斷的詳細介紹,想要了解更多關于Linux培訓就業(yè)班或行業(yè)前景,請關注扣丁學堂官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權威的Linux視頻教程系統(tǒng),通過千鋒扣丁學堂金牌講師在線錄制的Linux視頻教程課程,讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能。扣丁學堂Linux技術交流群:422345477

扣丁學堂微信公眾號



關注微信公眾號獲取更多的學習資料



查看更多關于“Linux培訓資訊的相關文章>>

標簽: Linux命令 Linux視頻教程 Linux培訓 Linux在線學習 Linux在線視頻

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部