nginx 重定向url跳转与不跳转

背景:在日常运维中经常会碰到需要从一个链接跳转到另一个链接的情况,此类需求分为两种情况,一种是浏览器url变,一种是浏览器url不变。

一、Url变,使用nginx rewirte模块

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。

flag标记分为下面4仲:

last #本条规则匹配完成后,继续向下匹配新的location URI规则

break #本条规则匹配完成即终止,不再匹配后面的任何规则

redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址

permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

常使用301 来实现url地址跳转功能。

二、URL,地址不变,使用location 和rewrite模块均可

lcaotion 的proxy_pass模块
或者使用rewrite的last和break均可以上线此功能。

例子:
www.baidu.com/topic/test ===> www.weimob.com/website/topic/test

nginx配置

location = /topic/test {
    rewrite /topic/test /website/topic/test last;
}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一个开源的高性能Web服务器,它可以用来处理静态内容和动态请求。在使用Nginx的过程中,有时我们需要将客户端请求的URL重定向到其他的URL,实现URL跳转。以下是Nginx重定向到其他URL的方法: 使用rewrite指令进行URL重定向nginx.conf配置文件中,可以使用rewrite指令对URL进行重写或重定向,例如: location /oldurl { rewrite ^/oldurl(.*) https://newurl.com/newurl permanent; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。其中,permanent表示使用301重定向方式。 使用return指令进行URL重定向 除了rewrite指令,Nginx还提供了return指令,也可以用来实现URL重定向。例如: location /oldurl { return 301 https://newurl.com/newurl; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。其中,301表示使用永久重定向方式。 使用proxy_pass指令进行URL重定向 proxy_pass指令是Nginx中用来进行反向代理的指令,但是它也可以用来实现URL重定向。例如: location /oldurl { proxy_pass https://newurl.com/newurl; } 上述代码表示,当客户端访问/oldurl时,将它重定向到https://newurl.com/newurl。但是,这种方式的重定向需要后端服务器返回301或302状态码才能生效。 综上所述,Nginx提供了多种方式实现URL重定向,开发者可以根据具体需求自行选择。而且Nginx的性能和功能十分强大,深受广大开发者的青睐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值