mar*_*igo 1 rewrite http nginx
每当我收到关于 的请求时mydomain.com,我都会www使用以下重写规则将其重定向到子域:
server_name mydomain.com;
rewrite ^(.*)$ $scheme://www.mydomain.com$1 permanent;
Run Code Online (Sandbox Code Playgroud)
但是如果收到一个 POST 请求,它会被重定向为 GET。
为什么?重定向此内容的正确方法是什么?
这是因为 Web 浏览器正在将 POST 请求更改为 GET 请求。
根据 RFC 2616,当收到 301 时,浏览器不应更改请求方法,而是警告用户并要求确认重新提交请求到新 URL。不幸的是,我从未见过网络浏览器真正做到这一点。但这样做的原因是为了保护用户免受各种劫持场景的影响。
如果收到 301 状态代码以响应 GET 或 HEAD 以外的请求,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会更改发出请求的条件。
注意:在收到 301 状态码后自动重定向 POST 请求时,一些现有的 HTTP/1.0 用户代理会错误地将其更改为 GET 请求。
快速简便的修复方法是修复您的 Web 应用程序,使其停止提供需要重定向的 URL。这也将提高您网站的整体性能和 SEO 排名。例如,如果您重定向example.com到www.example.com,然后所有的通过Web应用程序服务的URL应以开始www.example.com。
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |