2009-09-09 69 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'文件? –

相關問題