首頁 > 運維 > Nginx > 主體

Nginx怎麼實現配置編寫時支援邏輯運算與大小寫字母轉換

WBOY
發布: 2023-05-14 22:10:04
轉載
998 人瀏覽過

邏輯運算
nginx的配置中不支援if條件的邏輯與&& 邏輯或|| 運算,而且不支援if的嵌套語法,否則會報下面的錯誤:nginx: [emerg] invalid condition。
我們可以用變數的方式來間接實作。
要實現的語句:

if ($arg_unitid = 42012 && $uri ~/thumb/){
 echo "www.jb51.net";
}
登入後複製

如果按照這樣來配置,就會報nginx: [emerg] invalid condition錯誤。
可以這麼來實現,如下所示:

set $flag 0;
if ($uri ~ ^/thumb/[0-9]+_160.jpg$){
 set $flag "${flag}1";
}
if ($arg_unitid = 42012){
 set $flag "${flag}1";
}
if ($flag = "011"){
 echo "www.jb51.net";
}
登入後複製

nginx實作大小寫字母轉換(ngx_http_lower_upper_case模組)
各種程式或腳本都有實作大小寫字母互轉的功能,今天講講ngx_http_lower_upper_case,功能很簡單,至於可以用在什麼環境大家可以根據自己的情況.多一種模組多一種解決方案.本模組將字串轉換為大小寫然後賦值為變數.用句俗話來說"存在即合理",軟體存在性總有他存在的道理。
1. 安裝nginx模組

--add-module=path/to/circle_gif/directory
登入後複製

具體方法就不再講述了,可以參考運維生存時間的<如何安裝nginx第三方模組>
#2.upper/lower 指令
upper
語法:upper $var string
設定段: location
小些轉大寫
lower
語法:lower $var string
配置段: location
大寫轉小寫
3. nginx配置

location /ttlsa_upper_lower {
upper $var1 "hello,jb51.net";
lower $var2 "hello,jb51.net";
echo $var1;
echo $var2;
}
登入後複製

4. 測試

# curl http://test.jb51.net/ttlsa_upper_lower/
登入後複製
 hello,jb51.net
 hello,jb51.net
登入後複製

以上是Nginx怎麼實現配置編寫時支援邏輯運算與大小寫字母轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!