初识Nginx重定向_ng 重定向-程序员宅基地

技术标签: 3xx  Linux  nginx  301  linux  重定向  

一、前言

什么是重定向呢?

重定向是一个非常常用的功能,在 web 服务中,通常会通过重定向功能,将一个域名的请求转发到另一个域名上。

什么情况下用到重定向?

举例:假设你有一个域名为 aaa.com 网站, 但后面希望改版到 bbb.com 这个域名上,为了尽可能继承原网站的 SEO ,在新域名上线前期,需要将旧域名的流量全部汇聚到新域名的站点上来,此时就需要用到重定向功能了。

在原服务上设定重定向规则后,当原服务器收到外部的来访请求时,会根据你设定的重定向规则,将请求重定向到新服务器上。

继续上面的例子,当用户访问 http://aaa.com/index.html 时,源服务器会告诉来访用户,你要的资源在 http://bbb.com/index.html 服务器上,你去找它要吧,此时来访用户根据源服务器的通知,重新到新服务器去获取资源,这就完成了请求的重定向。

重定向类型?

常用的重定向类型有 301302 两种,本文主要介绍 301 跳转。

** 哪些服务器可以设置重定向?**

常用的 Web 服务器都提供重定向功能,如 NginxApacheTomcat ,本文主要介绍 Nginx 的重定向配置使用。

二、重定向实例

下面通过 3 个简单的实例,介绍 Nginx 301 重定向的配置方法。

2.1 重定向请求到特定网址

下方示例演示:将域名 mydomain.com 的所有请求,重定向到特定的网址 http://anotherdomain.com/dir1/index.php 上。

server {
    
    listen 80;
    server_name mydomain.com;
    return 301 http://anotherdomain.com/dir1/index.php;
}

2.2 重定向请求其他域名

下方示例演示:将域名 mydomain.com 重定向到 anotherdomain.com 新域名上,但访问的资源路径不变。

具体效果:
源URL:http://mydomain.com/dir/1.jpg
重定向后的URL:http://anotherdomain.com/dir/1.jpg

server {
    listen 80;
    server_name mydomain.com;
    return 301 http://anotherdomain.com$request_uri;
}

2.3 将请求重定向到特定协议

使用 Nginx 的重定向功能时,除了可以重定向到新域名,还可以将请求重定向到特定的协议上。

你可以手动指定重定向到 httphttps 协议,也可通过 $scheme 参数继承用户来访时使用的协议类型。

如:在重定向域名时,继承用户来访时使用的协议类型。

server {
    
    listen 80;
    server_name mydomain.com;
    return 301 $scheme://anotherdomain.com$request_uri;
}

三、总结

  1. 指向的新域名,其后的 / 不需要填写。
  2. 重定向时也可以重定向到新的服务端口,在域名后已 :端口号 的方式添加即可。
  3. 301 & 302 跳转的区别 ?
    • 301 永久跳转,当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息中的状态码的一种,表示本网页永久性转移到另一个地址。
    • 302 临时跳转,也是状态码的一种,意义是暂时转向到另外一个网址。

四、思路拓展

上述实例的跳转影响范畴较大,其实我们还可以引入判断,将跳转控制在一个更灵活的维度上。

如:Nginx 上监听了多个域名的web服务,你可通过条件判断:

  1. 设定某些域名或其二级、三级域名资源跳转;
  2. 设定域名下仅特定的文件跳转(基于文件后缀);
  3. 设定域名下仅特定路径的资源跳转。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qintaiwu/article/details/118276834

智能推荐

CSS进阶(8)—— 内联元素的掌管者line-height和vertical-align(下)_background: rgba(0,0,0,0.1);-程序员宅基地

文章浏览阅读590次。 上一章主要讲了line-height相关的知识,本章就来聊聊同样无处不在的vertical-align。vertical-align和line-height一样,都会影响元素在与水平流垂直方向上的表现,因此了解这两个属性,对于我们控制图文在垂直方向上的表现有很大的帮助。这里我用了"帮助",而不是必要,有人告诉我这本书不用一个字一个字看,现在看来确实如此,《CSS world》在某种程度上已经完..._background: rgba(0,0,0,0.1);

Java线程(七):锁对象Lock-同步问题更完美的处理方式-程序员宅基地

文章浏览阅读151次。上一篇:Java线程(六) Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下:public class LockTest { p..._线程同步 lock对象

Java动态编译JavaCompiler_java 动态编译导入包-程序员宅基地

文章浏览阅读3.9k次。一、tools.jar问题:Java在进行动态编译的时候需要用到tools.jar资源包,此包在jdk\lib目录中。若tools.jar不存在则会出现进行编译时提示空指针异常:对于缺少jar包,首先想到的解决办法是找到需要的jar包并且将其加入到buildpath,但是我们发现只是将tools.jar加入到java buildpath中仍然会出现空指针异常。后来经过查询相关资料,java..._java 动态编译导入包

openwrt安装aliddns使用阿里云ddns_aliddns ipk-程序员宅基地

文章浏览阅读2.9w次,点赞2次,收藏11次。openwrt安装aliddns使用阿里云ddns一些小伙伴安装了openwrt之后发现没法使用阿里云的ddns解析这里告诉你怎么添加aliddns插件需要会一些linux基础命令和ssh分四步安装依赖下载插件上传插件安装插件安装ddns-scripts、luci-app-ddns、openssl-util、wget 依赖包使用luci web界面里面的软件包管理,或者ssh使用opkg安装都一样有的openwrt自带的源地址可能下载很慢或根本无法下载,得换源下载alid_aliddns ipk

【最全笔记】基础Python爬虫入门,看完包你会写爬虫_python爬虫知识笔记集合-程序员宅基地

文章浏览阅读856次,点赞3次,收藏24次。第一章 网络爬虫之规则一、Requests库入门request库:http://www.python-requests.org安装方法:pip install requests抓取百度import requestsr=requests.get("http://www.baidu.com")r.status_coder.encoding='utf-8'r.textre..._python爬虫知识笔记集合

[cdq分治] bzoj3262: 陌上花开_cdq分治bzoj-程序员宅基地

文章浏览阅读179次。bzoj 3262: 陌上花开:http://www.lydsy.com/JudgeOnline/problem.php?id=3262三维偏序(向我一样不懂啥偏序的先戳这里:http://www.cnblogs.com/AKCqhzdy/p/8017372.html) 第一个维度直接排序解决 第二个维度的话cdq搞一搞 符合条件就直接丢到树状数组里去 sum=树状数组的getsum..._cdq分治bzoj

随便推点

1261:【例9.5】城市交通路网 《信息学奥赛一本通:动态规划基础》_t1261:城市交通路网 逆推法 l f[i]=1000000;-程序员宅基地

文章浏览阅读527次。http://ybt.ssoier.cn:8088/problem_show.php?pid=1261图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。试用动态规划的最优化原理求出A->E的最省费用。【算法分析】逆推法设f[i]表示点i到v10的最短路径长度,则 f[10]=0f[i]=min{ a[i][x]+f[x] 当a[i][x]>0 ..._t1261:城市交通路网 逆推法 l f[i]=1000000;

leetcode:516. 最长回文子序列_leetcode 516. 最长回文子序列-程序员宅基地

文章浏览阅读272次。题目来源leetcode题目描述题目解析动态规划(1)确定状态最后一步:最优策略产生最长的回文子串T,长度是M情况一:回文串长度是1,即一个字母情况二:回文串长度大于1,那么必须有T[0] = T[M-1]设T[0]为S[i],T[M-1]是S[j],则T剩下的部分T[1…M-2]仍然是一个回文串,而且是S[i+1…j-1]的最长回文串子问题:要求S[i...j]的最长回文子串如果S[i] = S[j],需要知道S[i+1…j-1]的最长回文子串如果S[_leetcode 516. 最长回文子序列

DBCP连接池配置详解,参数列表-程序员宅基地

文章浏览阅读9.5k次。Spring DBCP配置<bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource” destroy-method=“close”> <property name=“driverClassNa..._dbcp连接池配置详解

log 的抓取与分析_什么问题需要抓modem log-程序员宅基地

文章浏览阅读3.2k次。http://blog.csdn.net/yaoming168/article/details/38777727 log 的抓取与分析一、Android log框架简介二、log获取方式1、Eclipse 抓取1)根据信息类型过滤log那个显示框上面还有个下拉列表选项可以选择过滤哪些信息。a、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verb_什么问题需要抓modem log

com.qq.ac.android,腾讯动漫(com.qq.ac.android) - 9.2.5 - 应用 - 酷安-程序员宅基地

文章浏览阅读240次。权限信息· 修改或删除您的USB存储设备中的内容· 读取您的USB存储设备中的内容· 读取手机状态和身份· 在其他应用之上显示内容· 修改系统设置· com.android.launcher.permission.READ_SETTINGS· com.android.launcher.permission.INSTALL_SHORTCUT· com.android.launcher.permiss..._qq tmf_shark

python3超简代码爬取桌面壁纸_四象限电脑壁纸-程序员宅基地

文章浏览阅读720次。 我们要爬取的是彼岸壁纸,官网是http://www.netbian.com/,不说了,上代码: for j in range(100, 120):#想爬取更多修改100 和 120数值 url = "http://www.netbian.com/desk/20" + str(j) + "-1920x1080.htm" response = requests.get(u..._四象限电脑壁纸