<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
老話說的好:取乎上,得其中;取乎中,得其下。因此我們不妨把目標定的高一些,去努力,才能得到更好回報。
言歸正傳,今天我們來聊聊 使用 Nginx 實現 URL 的重定向。
我們日常分享一個網站地址時,常常會有這樣的效果,同樣一個網址,在電腦的瀏覽器開啟,是一種效果,而在手機的瀏覽器開啟,就會展現出另一種更適合手機顯示的效果。
通常要達到這樣的效果,有兩種方式實現:
一、使用自適應的 H5 頁面實現,根據視窗寬度的大小,自動調整頁面的佈局。
二、使用Nginx,依據終端的不同,跳轉到不同的頁面,電腦開啟,跳轉到 PC端 使用的網頁,手機開啟,跳轉到 手機端 使用的網頁。
今天我們介紹一下第二種方式,是如何實現的。
有些 URL 的重定向,新 URL 不需要繼承原 URL 的引數,例如 網站首頁,這種情況,在 Nginx 組態檔的 location 中使用 return 302 的方式進行跳轉即可。
location / { # 判斷是否是行動端 if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ) { return 302 https://www.zhuifengren.com/h5/index.html; } proxy_pass http://myUpstream; }
另一種情況就是 新 URL 需要繼承原 URL 的引數,這種情況就需要使用 rewrite 對 URL 進行改寫。
location / { # 判斷是否是行動端 if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ) { rewrite (w+-w+)|(?.*)$ https://www.zhuifengren.com/h5-$1-0.html$2 redirect; } proxy_pass http://myUpstream; }
rewrite 的語法是: rewrite 正規表示式 改寫後的URL redirect;
其中 redirect 是 302 臨時重定向的意思,也可以使用 permanent 關鍵字,代表 301 永久重定向。
使用 rewrite 對 URL 進行改寫,需要用到 正規表示式 的知識,改寫後 URL 中的 $1、$2 代表正規表示式中匹配的第一個字串和第二個字串,這裡大家可以去了解一下正規表示式,就不細說了。
例子中的正規表示式 (w+-w+)|(?.*)$,可以將原 URL:
https://www.zhuifengren.com/1001-1223.jsp?v=123456
改寫為
https://www.zhuifengren.com/h5-1001-1223-0.html?v=123456
location / { if ($args ~* "/product-list?param1=val1&param2=val2") { rewrite ^ http://www.mysite.com/product-list/$arg_param1/$arg_param2? last; } }
if ($arg_path = 'abc'){ proxy_pass http://127.0.0.1/abc/$arg_path; }
特別注意if is evil,nginx不提供多if判斷,沒有or這樣的判斷,所以只能用下文這種方式。
location /api/ { if ($arg_token = '') { proxy_pass http://127.0.0.1/abc } if ($http_token = '') { proxy_pass http://127.0.0.2/abc } if ($token = paraheader) { proxy_pass http://127.0.0.3/abc } proxy_pass http://127.0.0.1:8080/app/; proxy_redirect off; }
到此這篇關於利用Nginx實現URL重定向的文章就介紹到這了,更多相關Nginx URL重定向內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45