nginx替换响应头(重点:如何在替换时加上if判断)

本文介绍了如何使用nginx的ngx_headers_more模块来替换响应头,特别是针对302重定向时的Location头。通过more_set_headers指令在特定条件下设置或替换响应头,展示了如何在location的if块中利用正则表达式有选择地替换Location字段。
摘要由CSDN通过智能技术生成

  在实现微信小程序内嵌非业务域名时,通过nginx做镜像网站绕过小程序业务域名检测,但有一些表单页面提交后会返回一个302状态,由响应头Location的值决定提交成功后的跳转地址。那么问题来了,这个地址也是属于非业务域名,这个时候我们就需要将这个响应头也替换掉,那么nginx如何替换响应头呢,请看下面教程:

  一、安装使用ngx_headers_more模块定制响应头:

    ngx_headers_more 用于添加、设置和清除输入和输出的头信息。nginx没有内置该模块,需要另行添加。

    (1)下载地址:https://github.com/openresty/headers-more-nginx-module/tags

    (2)平滑升级nginx(参考上篇为nginx平滑添加SSL模块的文章:http://www.cnblogs.com/kenwar/p/8295907.html 添加参数add-module=/解压缩后文件路径)

    (3)指令说明(我这边只用到设置响应头的指令,所以只介绍一个指令,如有兴趣请自行查找其使用说明):      

        more_set_headers
        语法:more_set_headers [-t <content-type list>]... [-s <status-code list>]... <new-header>...
        默认值:no
        配置段:http, server, location, location if
        阶段:输出报头过滤器
        替换(如有)或增加(如果不是所有)指定的输出头时响应状态代码与-s选项相匹配和响应的内容类型的-t选项指定的类型相匹配的。
        如果没有指定-s或-t,或有一个空表值,无需匹配。因此,对于下面的指定,任何状态码和任何内容类型都讲设置。

        more_set_headers "Server: my_server";
        more_set_headers "Server: my_server
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值