2022-03-26

前端代理怎么设置之rewrite设置方法

以下部分内容由 小红书www.xiaohongshutuiguang.cn)转载提供 欢迎在评论区留言

rewrite

  可以实现URI的重写和重定向,它的用处有很多,常用于URL页面的跳转,兼容旧版本,SEO优化(伪静态),维护(后台维护、流量转发),安全(伪静态)等,它的语法是这样的:

syntax: rewrite regex replacement [flag]

Default: —

Context: server, location, if

如果正则表达式(regex)匹配到了请求的URI(request URI),这个URI会被后面的replacement替换

rewrite的定向会根据他们在配置文件中出现的顺序依次执行

通过使用flag可以终止定向后进一步的处理

  一个例子:

rewrite ^/users/(.*)$ /show?user=$1?last;=

  flag,标志位是标识规则对应的类型。

flag含义

last先匹配自己的location,然后通过rewrite规则新建一个请求再次请求服务端

break先匹配自己的location,然后生命周期会在当前的location结束,不再进行后续的匹配

redirect返回302昨时重定向,以后还会请求这个服务器

permanent返回301永久重定向,以后会直接请求永久重定向后的域名

1)last

结束当前的请求处理,用替换后的URI重新匹配location

可理解为重写(rewrite)后,发起了一个新请求,进入server模块,匹配location

如果重新匹配循环的次数超过10次,nginx会返回500错误

返回302 http状态码

浏览器地址栏显示重定向后的url

2)break

结束当前的请求处理,使用当前资源,不再执行location里余下的语句

返回302 http状态码

浏览器地址栏显示重定向后的url

3)redirect

临时跳转,返回302 http状态码

0浏览器地址栏显示重地向后的url

4)permanent

永久跳转,返回301 http状态码;

浏览器地址栏显示重定向后的url

  例子如下:

location ~ ^/break {

    rewrite ^/break /test break;

    root /data/html;

}

location ~ ^/last {

    rewrite ^/last/testlast;

}

location /test {

      default_type application/json;

      return 200'{"code":0,"msg":"success"}';

}

location ~ ^/redirect {

rewrite ^/redirect http://www.baidu.com redirect;}

location ~ ^/permanent {

rewrite ^/permanent http://www.baidu.com permanent;}

  可以通过curl来测试一下:

curl http://115.29.148.6/breaktest

curl http://115.29.148.6/last{"code":0,"msg":"success"}

curl -vL http://115.29.148.6/redirectcurl -vL http://115.29.148.6/permanent

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题记 前段时间把网站迁移到腾讯云,之前是lamp,现在改为lnmp,自以为nginx功底还可以,开发这么多年,平常...
    zhoulujun阅读 950评论 0 4
  • Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。...
    我的宠物阅读 1,858评论 0 1
  • Nginx安装 安装 tar zxvf nginx-1.2.9.tar.gz#解压nginxcdnginx-1.2...
    Java机械师阅读 478评论 0 14
  • NGINX中的proxy_pass和rewrite 文章作者:luxianghao 文章来源:http://www...
    SkTj阅读 491评论 0 0
  • Nginx进阶   Nginx主要作用:隐藏真实服务器信息内容,用户在请求的永远是nginx监听的端口,不会访问到...
    hang1720阅读 523评论 0 0