Apache 将POST请求视为由服务器获取
这里有个很奇怪的问题。向我的PHP脚本发送post请求时Apache 将POST请求视为由服务器获取,apache,rest,httpverbs,Apache,Rest,Httpverbs,这里有个很奇怪的问题。向我的PHP脚本发送post请求时 $_SERVER['REQUEST_METHOD'] 返回“GET”而不是“POST” 它适用于所有其他REST方法 这就是我得到的 GET -> GET POST-> GET PUT -> PUT DELETE -> DELETE 它只发生在我的一台服务器上,所以我假设这是apache的问题,我已经设法弄清楚,只有在我的url中添加“www”时才会发生 即 www.something.com 导致问题,但
$_SERVER['REQUEST_METHOD']
返回“GET”而不是“POST”
它适用于所有其他REST方法
这就是我得到的
GET -> GET
POST-> GET
PUT -> PUT
DELETE -> DELETE
它只发生在我的一台服务器上,所以我假设这是apache的问题,我已经设法弄清楚,只有在我的url中添加“www”时才会发生
即
www.something.com
导致问题,但
something.com
不
我在同一台服务器上的不同站点上进行了测试,得到了相同的结果,所以我假设它是全局配置
任何想法如响应代码301和302所述:
注意:由于历史原因,用户代理可能会更改请求方法
从POST到GET,用于后续请求。如果这种行为是
不希望的是,可以使用307(临时重定向)状态代码
反而
第三种可能性(但不太可能)是,您将获得对初始URI的303响应。解决方案有两个方面:
- 将您控制的客户端配置为发送到规范URI,这样它们就不会被重定向
- 在这种情况下,使用307而不是301/302将服务器配置为重定向
- 将您控制的客户端配置为发送到规范URI,这样它们就不会被重定向
- 在这种情况下,使用307而不是301/302将服务器配置为重定向