用301重定向给网站更换新域名get有效,但是post会失效变成get怎么办?
谢邀。目前我能想到的方法是在DNS
新域名 cname 老域名老域名 A记录 服务器IP
可能不是很妥,希望对你有帮助。
Post 改成相对域名不就 ok 了。
针对301的response,浏览器的行为就是发送GET请求Location中的URL。如果需要保持原来的POST方法不变去重新请求,需要使用307,但这未必是你想要的,因为根据标准浏览器针对307的POST请求需要用户明确确认(比如会弹一个alert)。具体详细的解释可以参考下面两篇文章:
http://www.alanflavell.org.uk...
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; }
上面是把gaogd.com 这个域名跳转到 www.gaogd.com ,但是如果进行post操作gaogd.com 这个时候,如果直接使用rewrite 规则进行301 跳转的时候。那么post请求就会变成get请求。解决,在做跳转之前,想判断这个请求的到底是get 还是post 请求,如果是post请求,那就使用 proxy_pass 方法,反之使用rewrite方法
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(4)
谢邀。
目前我能想到的方法是在DNS
新域名 cname 老域名
老域名 A记录 服务器IP
可能不是很妥,希望对你有帮助。
Post 改成相对域名不就 ok 了。
针对301的response,浏览器的行为就是发送GET请求Location中的URL。
如果需要保持原来的POST方法不变去重新请求,需要使用307,但这未必是你想要的,因为根据标准浏览器针对307的POST请求需要用户明确确认(比如会弹一个alert)。
具体详细的解释可以参考下面两篇文章:
http://www.alanflavell.org.uk...
http://programmers.stackexcha...
server {
301 跳转问题解决
上面是把gaogd.com 这个域名跳转到 www.gaogd.com ,但是如果进行post操作gaogd.com 这个时候,如果直接使用rewrite 规则进行301 跳转的时候。
那么post请求就会变成get请求。
解决,在做跳转之前,想判断这个请求的到底是get 还是post 请求,如果是post请求,那就使用 proxy_pass 方法,反之使用rewrite方法