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

我试图实现一个REST协议,并已经意识到在尝试debugging我的Web服务器不允许PUT请求。

我已经testing并通过运行进一步证实了这一点:

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

哪些为我的networking服务器提供403 – 禁止的错误

对于DELETE ,同样的情况发生在POSTGET一切都很好。

我想知道这是一个常见的问题,那些使用REST的人遇到了什么问题?

我可以对.htaccess文件进行简单的更改吗? 或者我需要修改协议来设置POST查询string中的隐藏variables“_method”?

通常情况下,Web服务器将被configuration为阻止除GET和POST之外的任何内容,因为99%的时间都是需要的,并且过去应用程序出现了问题,假定请求是这两个请求中的一个。

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

例如:

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

这听起来像也许一些有用的系统pipe理员已经使用这个来阻止非GET / POST

你可以试试.htaccess

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

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