在nginx重写中发送额外的标头

前端之家收集整理的这篇文章主要介绍了在nginx重写中发送额外的标头前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

现在,我正在使用以下Nginx配置将我的应用程序域从app.example.com迁移到app.newexample.com:

server {
    server_name app.example.com;
    location /app/ {
        rewrite ^/app/(.*)$http://app.newexample.com/$1;
    }
}

我需要显示一个popup-banner来通知用户域名迁移.
我想基于推荐者或app.newexample.com上的某种其他标题

但是如何在上面的重写中附加一个额外的标题,以便javascript检测到该标题并仅在该标题存在时显示标题因为用户直接在app.newexample.com上看不到该弹出标题

最佳答案
问题是,当你“重写”到具有协议和主机名的URI(在你的情况下是http://app.newexample.com/)时,Nginx会发布公平的HTTP重定向(我猜代码将是301又称“永久”重定向“).这使您只有两种机制将任何信息传输到新URL的处理程序:

>饼干
> URL本身

由于您要将用户重定向到新域,因此cookie不会发生.但即使在通用域的情况下,我也会选择URL来传输这种信息,比如

server_name app.example.com;
location /app/ {
    rewrite ^/app/(.*)$http://app.newexample.com/$1?from_old=yes;
}

这使您可以自由地在Nginx或浏览器中进行处理(使用JavaScript).您甚至可以在新应用服务器Nginx配置中为JavaScript发出特殊的HTTP标头:

server_name app.newexample.com;
location /app {
  if ($arg_from_old) {
    add_header X-From-Old-Site yes;
  }
}

猜你在找的Nginx相关文章