更新時(shí)間:2021-08-27 來(lái)源:黑馬程序員 瀏覽量:
if指令該指令用來(lái)支持條件判斷,并根據(jù)條件判斷結(jié)果選擇不同的Nginx配置。
語(yǔ)法 | if (condition){...} |
默認(rèn)值 | — |
位置 | server、location |
condition為判定條件,可以支持以下寫法:
1. 變量名。如果變量名對(duì)應(yīng)的值為空字符串或"0",if都判斷為false,其他條件為true。
if ($param){ }
2. 使用"="和"!="比較變量和字符串是否相等,滿足條件為true,不滿足為false
if ($request_method = POST){ return 405; }
注意:此處和Java不太一樣的地方是字符串不需要添加引號(hào),并且等號(hào)和不等號(hào)前后到需要加空格。
3. 使用正則表達(dá)式對(duì)變量進(jìn)行匹配,匹配成功返回true,否則返回false。變量與正則表達(dá)式之間使用"~","~*","!~","!~*"來(lái)連接。
"~"代表匹配正則表達(dá)式過(guò)程中區(qū)分大小寫,
"~*"代表匹配正則表達(dá)式過(guò)程中不區(qū)分大小寫
"!~"和"!~*"剛好和上面取相反值,如果匹配上返回false,匹配不上返回true
if ($http_user_agent ~ MSIE){ #$http_user_agent的值中是否包含MSIE字符串,如果包含返回true }
注意:正則表達(dá)式字符串一般不需要加引號(hào),但是如果字符串中包含"}"或者是";"等字符時(shí),就需要把引號(hào)加上。
4. 判斷請(qǐng)求的文件是否存在使用"-f"和"!-f",
if (-f $request_filename){ #判斷請(qǐng)求的文件是否存在 } if (!-f $request_filename){ #判斷請(qǐng)求的文件是否不存在 }
5. 判斷請(qǐng)求的目錄是否存在使用"-d"和"!-d"
6. 判斷請(qǐng)求的目錄或者文件是否存在使用"-e"和"!-e"
7. 判斷請(qǐng)求的文件是否可執(zhí)行使用"-x"和"!-x"
將本頁(yè)面鏈接發(fā)送給QQ:435946716,免費(fèi)獲取上面課程全套視頻、筆記和源碼。
猜你喜歡: