在nginx重写中发送额外的头文件

在nginx重写中发送额外的头文件,第1张

概述在nginx重写发送额外的头文件

现在,我正在使用以下Nginxconfiguration将app的域名从app.example.com到app.newexample.com :

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

我需要显示一个popup式标语来通知用户域名迁移。 而且我想根据referrer或app.newexample.com的某种其他头app.newexample.com

但是,如何在上面的rewrite附加一个额外的头文件,以便JavaScript能够检测到这个头文件,并且只有当这个头文件存在的时候才显示这个横幅文件呢?直接在app.newexample.com的用户不应该看到这个popup横幅文件?

从zip压缩解压缩图像

用Nginx和meteor分开服务静态资产和媒体?

如何设置橡胶+ resque_web + Nginx

上游超时错误在Nginx + socket.io +代理+ ssl

反向代理http / 2从h2到h2c

无法访问本地windows机器上的Nginx容器

Nginx的代理传递configurationdocker

运行Nginx加jar的Docker

我可以用独angular兽SPDY吗?

如何使用位置正则Expression式通过Nginxredirect/处理来自search引擎的请求

问题是,当你“重写”到具有协议和主机名的URI(在你的情况下是http://app.newexample.com/ )时,Nginx发布了公平的http重定向(我猜这个代码将会是301重定向“)。 这使您只有两种机制将任何信息传输到新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; } }

这里讨论了类似的问题。 你可以尝试使用第三方模块httpheadersMore (我自己没有尝试过)。 但是,即使这个模块不起作用,在这个模块的帮助下,你完全可以做到。 例子就在这里 。

你的重定向缺少一件事,重定向类型/代码,你应该在你的重写行结尾添加permanent ,我不知道什么是默认的重定向代码,如果没有明确提到。

rewrite ^/app/(.*)$ http://app.newexample.com/$1 permanent;

更好的方法是使用回报

location /app { return 301 $scheme://app.newexample.com$request_uri; }

如上所述添加一个get参数也是一个可靠的方法来做到这一点,你可以轻松地设置一个会话(flash)并重新定向到它自己的页面,但删除附加的get参数后。

编辑:重定向不发送引用标头,如果旧域仍在工作,你可以把一个简单的PHP文件,重定向与标题调用。

header("Location: http://app.newexample.com")

没有任何头文件的一个可能的解决方案是检查document.referrer属性:

if (document.referrer.indexOf("http://app.example.com") === 0) { alert("We moved!"); }

使用301会将引用者设置为旧页面。 如果引荐来源不以旧网页网址开头,则不是由该网页引导的。 也许有点快肮脏,但应该工作。

总结

以上是内存溢出为你收集整理的在nginx重写中发送额外的头文件全部内容,希望文章能够帮你解决在nginx重写中发送额外的头文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1285633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存