14

PUTHTTP サーバー上のファイルを必要とするアプリケーションを使用しています。サーバーとして Nginx を使用していますが、405 Not Allowedエラーが返されます。cURL を使用したテストの例を次に示します。

curl -X PUT \
-H 'Content-Type: application/x-mpegurl' \
-d /Volumes/Extra/playlist.m3u8 http://xyz.com

そして、Nginxから返されるもの:

<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.1.19</center>
</body>
</html>

を許可するにはどうすればよいPUTですか?

手がかりは素晴らしいでしょう!

4

3 に答える 3

23

HttpDavModulePUT、DELETE、MKCOL、COPY、MOVE などの HTTP および WebDAV メソッドを追加するには、nginx を( )でコンパイルする必要があります./configure --with-http_dav_modulenginx -V最初に確認してください。すでに持っている可能性がありますHttpDavModule(私は Debian リポジトリから nginx をインストールしましたが、モジュールは既に持っています)。

次に、nginx-config を次のように変更します。

location / {
    root     /var/www;
    dav_methods  PUT;
}

HttpDavModuleの nginx docs エントリで詳細を確認できます。

于 2013-06-04T10:40:39.337 に答える
1

もう 1 つの理由405 Not Allowedは、コピー先にファイルを書き込む権限がないことですPUT。このエラーがまだ発生している場合は、ファイルHttpDavModuleを実行している場所に nginx 書き込み権限を与えていることを確認してくださいPUT

于 2015-11-15T21:34:52.153 に答える
0

このブロックを追加すると、Laravel アプリケーションで問題が解決しました。

location / {
     try_files $uri $uri/ /index.php?$query_string;
}
于 2020-10-05T20:10:43.907 に答える