CentOS 상자의 Apache에서 실행되는 PHP를 사용하여 API를 작성했습니다. v1/object/{objectID}/subobject/{subobjectID}
에 PUT 요청을하려고하는데 405 오류가 발생합니다. 같은 끝점에 GET 요청을하면 작동합니다. v1/object/{objectID}
으로 PUT 요청을하면 작동합니다. 사물을 단순화하기 위해 나는 api.php의 모든 코드를 간단한 echo 문으로 대체했습니다. api.php의405 PUT에 대한 수정 요청 (mod-rewrite 포함)
내용 : htaccess로의
<?php
echo "got here";
?>
내용 :
curl -i -X PUT -d '{"var1":"val1","var2":"val2"}' "http://x.x.x.x/api/v1/object/1/subobject/1?apiKey=somekey&secretToken=secret"
결과는 다음과 같습니다 아래
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule v1/(.*)$ v1/api.php?request=$1 [QSA,NC,L]
</IfModule>
내가 곱슬 곱슬와 함께 제작하고있는 PUT 요청입니다 다음과 같이 :
HTTP/1.1 405 Method Not Allowed
Date: Fri, 15 Dec 2017 03:31:21 GMT
Server: Apache/2.2.15 (CentOS)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 359
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
<p>The requested method PUT is not allowed for the URL /api/v1/object/1/subobject/1.</p>
<hr>
<address>Apache/2.2.15 (CentOS) Server at x.x.x.x Port 80</address>
</body></html>
나는이 코드를 섹션을 실행하고 httpd를 다시 시작했지만 작동하지 않습니다. 그것을 넣을 수있는 더 좋은 곳이 있습니까? –
user2395126