2009-09-09 66 views
16

我想实现一个REST协议,并已经意识到在试图调试我的Web服务器不允许PUT请求。为什么我的Web服务器软件不允许PUT和DELETE请求?

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

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

这对我的Web服务器还给一个403 - 禁止错误

DELETE也一样,POSTGET一切都很好。

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

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

回答

54

通常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的专家,这可能不完全正确)

+0

我会补充说,即使你找不到*这些方法被禁用,这个工作。 - 啊,刚刚找到它,在Debian中它在userdir.conf中。 – bigstones

+0

我应该在哪里放置'.htaccess'文件? –

相关问题