1.概述
古语说得好:登顶,登中;走中路,走下坡路。所以,我们不妨设定更高的目标,努力争取更好的回报。
今天言归正传,我们来谈谈使用 Nginx 进行 URL 重定向。
2.使用Nginx实现URL重定向
2.1 使用场景
我们每天分享一个网址的时候,经常会出现这样的效果,同一个网址,在电脑的浏览器中打开,就是一个效果,在手机的浏览器中打开,会显示另一种更适合手机显示的效果。
通常要实现这个效果,有两种方法可以实现:
一、使用自适应H5页面实现,根据窗口宽度的大小,自动调整页面大小布局。
二、使用Nginx,根据终端不同,跳转到不同的页面,打开电脑,跳转到PC端使用的网页,打开手机,跳转到移动端使用的网页。
今天我们将介绍第二种方法,它是如何实现的。
2.2 简单重定向
对于一些URL重定向,新的URL不需要继承原URL的参数,比如网站首页。这种情况下,在 Nginx 中可以使用 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;
}
2.3 根据原网址重定向
另一种情况是新的URL需要继承原URL的参数,这种情况需要重写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;
}
语法
is:正则表达式重写的URL;
表示302临时重定向,也可以使用关键字,代表301永久重定向。
使用重写 URL 需要了解正则表达式。改写后,URL中的$1、$2代表正则表达式中匹配的第一个和第二个字符串,这里可以学习一下正则表达式,我就不赘述了。
例子中的正则表达式(w+-w+)|(?.*)$,可以改写原来的URL:
到
3.概览
今天讲了使用Nginx实现URL重定向,希望对大家的工作有所帮助。下一节我们会继续讲Vue中的高级语法,敬请期待
欢迎点赞、评论、转发、关注:)
跟着追风者聊Java,这里干货满满,都是实用技术文章,通俗易懂,上手容易。
4.个人公众号
追风者聊Java,欢迎大家关注
暂无评论内容