用301重定向给网站更换新域名POST丢失

用301重定向给网站更换新域名get有效,但是post会失效变成get怎么办?

阅读 13.6k
4 个回答

谢邀。
目前我能想到的方法是在DNS

新域名 cname 老域名
老域名 A记录 服务器IP

可能不是很妥,希望对你有帮助。

Post 改成相对域名不就 ok 了。

针对301的response,浏览器的行为就是发送GET请求Location中的URL。
如果需要保持原来的POST方法不变去重新请求,需要使用307,但这未必是你想要的,因为根据标准浏览器针对307的POST请求需要用户明确确认(比如会弹一个alert)。
具体详细的解释可以参考下面两篇文章:

  1. http://www.alanflavell.org.uk...

  2. http://programmers.stackexcha...

新手上路,请多包涵

server {

     server_name  gaogd.com;
    location / {
    if ($request_method ~ ^(POST)$) {
        proxy_pass http://www.gaogd.com;
        break ;
    }
    rewrite ^/(.*)$   http://www.gaogd.com/$1 permanent;
}

301 跳转问题解决

上面是把gaogd.com 这个域名跳转到 www.gaogd.com ,但是如果进行post操作gaogd.com 这个时候,如果直接使用rewrite 规则进行301 跳转的时候。
那么post请求就会变成get请求。
解决,在做跳转之前,想判断这个请求的到底是get 还是post 请求,如果是post请求,那就使用 proxy_pass 方法,反之使用rewrite方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏