为什么我的Web服务器软件不允许PUT和DELETE请求?

时间:2009-09-09 21:35:36

标签: http rest

我正在尝试实现REST协议,并且在尝试调试我的Web服务器不允许PUT请求时意识到了。

我已经通过运行测试并进一步确认了这一点:

curl -X PUT  http://www.mywebserver.com/testpage

我的网络服务器会返回 403 - 禁止错误

DELETE也是如此,POSTGET一切都很好。

我想知道这是一个常见的问题,那些使用REST的人会遇到什么以及可能会解决这些问题?

我可以对.htaccess文件进行简单的更改吗?或者我是否需要修改协议以在POST查询字符串中设置隐藏变量“_method”?

1 个答案:

答案 0 :(得分:56)

通常,Web服务器将被配置为阻止除GET和POST之外的任何内容 99%的时间他们都是需要的,并且有问题 过去的申请假设请求是这两个中的一个。

你没有说它是哪个服务器,但是,例如,你可以告诉Apache哪个 允许使用指令的方法:

例如:

<Limit POST PUT DELETE>
  Require valid-user
</Limit>

听起来好像有些有用的系统管理员用它来阻止非GET / POST

您可以尝试使用

.htaccess
<Limit GET POST PUT DELETE>
  Allow from all
</Limit>

(我不是apache的专家,这可能不完全正确)