CentOSボックス上のApacheで動作するPHPを使用してAPIを構築しました。 v1/object/{objectID}/subobject/{subobjectID}
へのPUTリクエストを作成しようとしていますが、405エラーが発生しています。私は同じエンドポイントにGET要求をすると動作します。私がv1/object/{objectID}
へのPUT要求をするときに動作します。簡単にするために、私はapi.phpのすべてのコードを単純なecho文で置き換えました。 api.phpの405 PUTリクエストでのPHPのmod-rewriteによるリクエスト
内容:.htaccessファイルの
<?php
echo "got here";
?>
内容:以下
<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要求である:
curl -i -X PUT -d '{"var1":"val1","var2":"val2"}' "http://x.x.x.x/api/v1/object/1/subobject/1?apiKey=somekey&secretToken=secret"
結果は次のようになります。
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