Nginx 疑惑 Rewrite 和 Redirect 的区别

dizhu · 2014年11月03日 · 9487 次阅读

有一个需求是这样的: 1、访问 www.a.com 的时候跳转到 www.b.com 中去; 2、能够定制 header 中的 referer,也就是从 www.a.com 跳转到 www.b.com,在 www.b.com 中识别到的 referer 就是我们定制的 referer

配置一

server
     {
             listen       80;
             server_name www.a.com;
             location / {
                 proxy_set_header referer 'my referer';
                 proxy_pass http://www.b.com;
                 proxy_redirect http://www.a.com/ http://www.b.com/;
                 #rewrite ^/ http://www.b.com;
             }
     }

上面这个配置,虽然可以成功定制修改 referer 的值,但是浏览器地址栏还是 www.a.com,URL 没有成 www.b.com 的;

然后修改成下面这个配置: 配置二

server
     {
             listen       80;
             server_name www.a.com;
             location / {
                 proxy_set_header referer 'my referer';
                 #proxy_pass http://www.b.com;
                 #proxy_redirect http://www.a.com/ http://www.b.com/;
                 rewrite ^/ http://www.b.com;
             }
     }

这个可以实现跳转,浏览器地址栏成功变成:www.b.com,但是 referer 的值没有变成 my referer

在 Nginx 中怎样配置,才能实现既能跳转又能修改 referer 呢?

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号