现在,我正在将我的应用程序的域从app.example.com
to app.newexample.com
使用以下内容nginx
config:
server {
server_name app.example.com;
location /app/ {
rewrite ^/app/(.*)$ http://app.newexample.com/$1;
}
}
我需要显示一个弹出横幅来通知用户域名迁移。
我想以此为基础referrer
或某种其他标头app.newexample.com
但是我如何在上面附加一个额外的标题rewrite
这样 javascript 就会检测到该标头并仅在该标头存在时才显示横幅,因为用户直接访问app.newexample.com
不应该看到那个弹出横幅吗?
问题是,当您“重写”为具有协议和主机名的 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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)