使用 Nginx 实现 URL 的重定向

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,欢迎大家关注

© 版权声明
THE END
喜欢就支持一下吧
点赞173赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容