现在,我正在使用以下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;
}
}