网站首页 > 精选教程 正文
1. 概述
老话说的好:取乎上,得其中;取乎中,得其下。因此我们不妨把目标定的高一些,去努力,才能得到更好回报。
言归正传,今天我们来聊聊 使用 Nginx 实现 URL 的重定向。
2. 使用 Nginx 实现 URL 的重定向
2.1 使用场景
我们日常分享一个网站地址时,常常会有这样的效果,同样一个网址,在电脑的浏览器打开,是一种效果,而在手机的浏览器打开,就会展现出另一种更适合手机显示的效果。
通常要达到这样的效果,有两种方式实现:
一、使用自适应的 H5 页面实现,根据窗口宽度的大小,自动调整页面的布局。
二、使用Nginx,依据终端的不同,跳转到不同的页面,电脑打开,跳转到 PC端 使用的网页,手机打开,跳转到 手机端 使用的网页。
今天我们介绍一下第二种方式,是如何实现的。
2.2 单纯的重定向
有些 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;
}
2.3 依据原 URL 重定向
另一种情况就是 新 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
3. 综述
今天聊了一下 使用 Nginx 实现 URL 的重定向,希望可以对大家的工作有所帮助
作者:追风人聊Java
原文链接:https://www.cnblogs.com/w84422/p/16127552.html
猜你喜欢
- 2024-09-27 http 自动跳转 https 火狐浏览器http跳转https原因
- 2024-09-27 Nginx: 最常见的 2 种 http to https 跳转场景
- 2024-09-27 http请求域名强制跳转https 短域名伪装的特征地址栏地址会不会进行二次跳转吗
- 2024-09-27 Nginx 面试通关秘籍-20.Nginx 如何处理 HTTP 请求处理过程有哪些阶段
- 2024-09-27 nginx 记录一下配置域名跳转的首页
- 2024-09-27 nginx使用geoIP模块实现不同国别后缀域名的跳转
- 2024-09-27 Nginx实现301跳转至https的根域名展示
- 2024-09-27 Nginx环境强制http 301跳转https nginx http如何不自动跳转到https
- 2024-09-27 使用Nginx实现301跳转至https的根域名
- 2024-09-27 Nginx的Rewrite规则与实例 nginx中的rewrite
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)