nginx重写发布数据

编程入门 行业动态 更新时间:2024-10-27 06:28:37
本文介绍了nginx重写发布数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要将POST数据保存到其他网址

I need to preserve the POST data to a different url

重写有效,但发布数据丢失

The rewrite works but the post data is lost

需要将数据从user_info.php发布到userhistory

need to post data from user_info.php to userhistory

location ~ user_info.php { rewrite ^/.* testing/userhistory permanent; }

数据丢失.如何保存数据?

The data is lost. How can I preserve the data?

推荐答案

基本上,您想使用301移动永久重定向自动重定向POST请求.

Basically, you want to automatically redirect a POST request using a 301 Moved Permanently redirect.

但是. HTTP规范明确禁止此类重定向

However. such redirect are specifically disallowed by the HTTP Specifications which states that:

如果响应GET或HEAD以外的请求而收到301状态码,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会改变请求被请求的条件.发布.

If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.

规范还指出:

在收到301状态代码后自动重定向POST请求时,某些现有的HTTP/1.0用户代理将错误地将其更改为GET请求.

When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request.

我相信第二种情况可能是发生了什么,而目标服务器正在等待POST数据,而接收的却是GET数据.

I believe the second situation may be what is going on and that while the target server is expecting POST data, it is receiving GET data instead.

您的选择是:

A.更改代码以使用GET数据或更好的POST和GET.即,查找POST,如果不存在,请尝试获取GET等效项.

A. Change the code to work with GET data or better still, both POST and GET. I.E., look for POST and if not there, try GET equivalents.

B.尝试通过使用规范来确保代码接收POST数据.

B. Try to ensure the code receives POST data by working with the Spec.

通过使用proxy_pass指令来处理请求,您也许可以实现选择B.

You may be able to achieve Choice B by using the proxy_pass directive to handle the request instead.

诸如:

location ~ user_info.php { proxy_pass testing/userhistory; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

通过这种方式,从技术上讲,不会重定向用户.

In this way, the user is technically not being redirected.

更多推荐

nginx重写发布数据

本文发布于:2023-10-12 00:21:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483256.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重写   数据   nginx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!