Nginx -> 重写顺序或嵌套

Nginx -> 重写顺序或嵌套

我正在开发一个新的顶级域名,并将新域名的访问者重定向到旧域名,除了我自己在登台服务器上的工作:

我有一条规则,如果您没有访问暂存服务器,它就会重写主机,这就像一颗炸弹。

if ($host != 'staging.xxx.com') {
  rewrite ^/(.*)$ http://xxx.co.za/$1 permanent;
}

问题是我们正在使用的另一个站点的某些回调正在命中xxx.com/s/callback。目前正在重定向到该.co.za站点,但我真的希望它重定向到暂存服务器。

我在前面的代码上添加了以下内容:

location ~ /s/ {
  rewrite ^/(.*)$ http://staging.xxx.com/$1 permanent;
}

但这似乎没有捕获回调,即如果我访问xxx.com/s/callback它仍然会重定向到.co.za

有人能描述一下如何嵌套这些位置和 if 语句吗?

谢谢你!

答案1

我认为你做得对,并且很可能在处理它时看到缓存问题......

暂时将“permanent”改为“redirect”,并添加一行类似:expires epoch;

当你测试停止浏览器缓存时

最好的,

-埃里克

相关内容