nginx 如何實(shí)現(xiàn)if嵌套的方法示例
nginx 不支持 if 嵌套,也不允許在 if 中使用邏輯判斷,會(huì)報(bào)如下錯(cuò)誤:
nginx: [emerg] "if" directive is not allowed
當(dāng)業(yè)務(wù)需要多個(gè)條件判斷時(shí),可以借助中間變量來(lái)實(shí)現(xiàn)
如:我們的網(wǎng)站在 pc 端有多個(gè)子域名, 而移動(dòng)端只有一個(gè)域名,對(duì)應(yīng)關(guān)系如下:
- www.test.com --> m.test.com
- sub1.test.com --> m.test.com/sub1
- sub2.test.com --> m.test.com/sub2
- sub3.test.com --> m.test.com/sub3
要實(shí)現(xiàn)的效果:在移動(dòng)端訪問(wèn) pc 域名時(shí) 301 跳轉(zhuǎn)到對(duì)應(yīng)的移動(dòng)端域名
nginx 的重寫(xiě)規(guī)則如下:
# 是否為移動(dòng)端 set $mobile 0; if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) { set $mobile 1; } # 獲取子域名 set $prefix 1; if ($host ~* "sub1.test.com") { set $prefix 2; } if ($host ~* "sub2.test.com") { set $prefix 3; } if ($host ~* "sub3.test.com") { set $prefix 4; } set $sign "${mobile}${prefix}"; if ($sign = 11) { rewrite ^(.*) http://m.test.com$1 permanent; } if ($sign = 12) { rewrite ^(.*) http://m.test.com/sub1$1 permanent; } if ($sign = 13) { rewrite ^(.*) http://m.test.com/sub2$1 permanent; } if ($sign = 14) { rewrite ^(.*) http://m.test.com/sub3$1 permanent; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳細(xì)聊聊K8s容器內(nèi)nginx帶變量的域名解析
這篇文章主要給大家介紹了關(guān)于K8s容器內(nèi)nginx帶變量域名的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01nginx做代理時(shí)如何修改querystring方法詳解
這篇文章主要介紹了nginx做代理時(shí)如何修改querystring的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Nginx服務(wù)器高性能優(yōu)化的配置方法小結(jié)
這篇文章主要介紹了Nginx服務(wù)器高性能優(yōu)化的配置方法小結(jié),包括一些內(nèi)核參數(shù)的優(yōu)化介紹,需要的朋友可以參考下2015-12-12前端加載訪問(wèn)速度優(yōu)化詳細(xì)指南(Nginx)
在前端開(kāi)發(fā)中,優(yōu)化頁(yè)面加載速度成為了開(kāi)發(fā)者的一項(xiàng)重要任務(wù),下面這篇文章主要給大家介紹了關(guān)于前端加載訪問(wèn)速度優(yōu)化(Nginx)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06關(guān)于nginx報(bào)錯(cuò)405?not?allowed解決方法總結(jié)
這篇文章主要給大家介紹了關(guān)于nginx報(bào)錯(cuò)405?not?allowed解決方法的相關(guān)資料,nginx遇到post請(qǐng)求靜態(tài)文件會(huì)得到405錯(cuò)誤,文中通過(guò)代碼介紹的非常詳細(xì),也給出了推薦方法,需要的朋友可以參考下2023-10-10部署Nginx+Apache動(dòng)靜分離的實(shí)例詳解
Nginx不僅能作為Web服務(wù)器,還具有反向代理、負(fù)載均衡和緩存的功能,這篇文章主要介紹了部署Nginx+Apache動(dòng)靜分離的實(shí)例代碼,需要的朋友可以參考下2019-12-12FastDFS及Nginx整合實(shí)現(xiàn)代碼解析
這篇文章主要介紹了FastDFS及Nginx整合實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08