用301重定向给网站更换新域名get有效,但是post会失效变成get怎么办?
针对301的response,浏览器的行为就是发送GET请求Location中的URL。
如果需要保持原来的POST方法不变去重新请求,需要使用307,但这未必是你想要的,因为根据标准浏览器针对307的POST请求需要用户明确确认(比如会弹一个alert)。
具体详细的解释可以参考下面两篇文章:
server {
server_name gaogd.com;
location / {
if ($request_method ~ ^(POST)$) {
proxy_pass http://www.gaogd.com;
break ;
}
rewrite ^/(.*)$ http://www.gaogd.com/$1 permanent;
}
上面是把gaogd.com 这个域名跳转到 www.gaogd.com ,但是如果进行post操作gaogd.com 这个时候,如果直接使用rewrite 规则进行301 跳转的时候。
那么post请求就会变成get请求。
解决,在做跳转之前,想判断这个请求的到底是get 还是post 请求,如果是post请求,那就使用 proxy_pass 方法,反之使用rewrite方法
15 回答7.4k 阅读
5 回答8.2k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答826 阅读✓ 已解决
1 回答1.3k 阅读
850 阅读
谢邀。
目前我能想到的方法是在DNS
新域名 cname 老域名
老域名 A记录 服务器IP
可能不是很妥,希望对你有帮助。