nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return
set
Syntax:set $variable value;
Default:—
Context:server, location, if
set可以為變量設置值,值可以為字符串/變量以及它們的組合。
例如:
return
Syntax:return code [text]; return code URL; return URL;
Default:—
Context:server, location, if
停止處理并且返回響應碼給客戶端,非標準代碼444會在不發(fā)送響應頭的情況下關閉連接。
從 0.8.42版本開始, 支持為狀態(tài)碼(for codes 301, 302, 303, 307, and 308)跳轉URL為其他的狀態(tài)碼返回返回體數據。返回體或者跳轉的URL支持包含變量。特殊情況,重定向URL可以指定為該服務器的本地URI,在這種情況下,完整的跳轉URL依據請求 scheme ($scheme) 和the server_name_in_redirect and port_in_redirect 指令。
例如:
請求重定向到一個新域名
請求直接返回數據
if
Syntax:if (condition) { … }
Default:—
Context:server, location
對特定的條件進行判斷,如果為true,括號內將會被執(zhí)行。
正則表達式匹配:
=:等值比較;
~:區(qū)分大小寫的正則表達式模式匹配
~*:不區(qū)分大小寫的正則表達式模式匹配
!~:區(qū)分大小寫的正則表達式模式不匹配
!~*:不區(qū)分大小寫的正則表達式模式不匹配
文件及目錄匹配判斷:
-f, !-f:判斷指定的路徑是否為存在且為文件;
-d, !-d:判斷指定的路徑是否為存在且為目錄;
-e, !-e:判斷指定的路徑是否存在,文件或目錄均可;
-x, !-x:判斷指定路徑的文件是否存在且可執(zhí)行;
例如:
AND,OR多重判斷
nginx的配置中不支持if條件的&& ||運算 ,并且不支持if的嵌套語法,但是我們可以用變量的方式來實現:
具體方法為AND 就用變量疊加,OR就用0或1切換。
例如我們的目標(偽代碼):
我們可以這么做
《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的diff_python-
- 下一篇: python 回溯法 01背包问题_Py