2009-09-09 2 views
16

REST 프로토콜을 구현하려고하는데 내 웹 서버가 PUT 요청을 허용하지 않는다는 것을 디버깅하려고한다는 것을 깨달았습니다.웹 서버 소프트웨어가 PUT 및 DELETE 요청을 허용하지 않는 이유는 무엇입니까?

내가 테스트를 실행하여 추가를 확인했다 : 내 웹 서버에 대한 (403) 다시 제공

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

- 금지 오류
합니다.

POSTGET은 모두 정상입니다. DELETE에 대해서도 마찬가지입니다.

이것이 REST 발생을 사용하는 사람들과 그 해결 방법이 공통적 인 문제인지 궁금합니다.

.htaccess 파일을 간단히 변경할 수 있습니까? 또는 POST 쿼리 문자열에 숨겨진 변수 "_method"를 설정하기 위해 프로토콜을 수정해야합니까?

답변

54

종종 웹 서버가 필요하며, 요청을 가정 응용 프로그램과 과거에 문제가 있었다 모든 사람이 하나 있었다있는 시간 99 % 이후 GET과 POST를 제외하고 무엇이든을 차단하도록 구성됩니다 .

당신은 예를 들어, 당신이 지시어로 허용 할 방법 아파치를 말할 수있는, 그것이 어떤 서버 말을하지 않지만 :

를 예 : :

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

그것은 어쩌면 몇 가지 유용한 같은 소리 시스템 관리자는 가

당신은 .htaccess으로 시도 할 수 /이 아닌 GET을 차단하기 위해 POST

을 사용하고있다

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

(저는 정확하게 아파치 전문가가 아닙니다. 정확하게 맞지 않을 수도 있습니다.)

+0

*이 메소드가 비활성화 된 곳을 찾을 수없는 경우에도 작동합니다. - 에헴, 방금 찾은 데비안에서는 userdir.conf에 있습니다. – bigstones

+0

'.htaccess' 파일은 어디에 두어야합니까? –

관련 문제