web-dev-qa-db-ja.com

PUTメソッド用のApache HTTP 2.2の構成

Apache 2.2をWebサーバーとして使用して、C#のHttpWebRequest/HttpWebResponseクラスを使用して、ファイルのアップロードとダウンロードのコードを記述しました。コードでは、request.method = "PUT"を使用しています。

PUTメソッドをサポートするようにHTTP構成ファイルを構成します。 PUTメソッドスクリプトを次のように記述します。

<Location "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/output">
<Dav On
<LimitExcept GET HEAD OPTIONS PUT>
Allow from all
</LimitExcept>
</Location>

それは機能していません。プログラム出力でエラーが表示されます:(405)The method not allowed

4
soundar
  1. <Dav Onディレクティブは完全ではありません(<の必要はありません)-これは単なるコピーアンドペーストの問題だと思います。

  2. さらに重要なことは、<Location>ディレクティブを使用していますが、ファイルシステム/ハードドライブ上の物理パスを提供していることです。

    それは間違っています-<Location>は、ディレクトリではなくURLの照合に使用されます;ディレクトリを一致させるには、<Directory>を使用する必要があります。 Apacheのマニュアルを参照してください: http://httpd.Apache.org/docs/current/mod/core.html#location

    ほとんどの場合、代わりに<Location /output>を使用する必要があります(または<Directory>の代わりに<Location>を使用します)-これは、提供した設定データの量に基づいた推測です。

上記を考慮すると、次のようなものが必要になります(申し訳ありませんが、Apacheボックスに接続してテストすることはできません)。

<Location /output>
    Dav On
    <LimitExcept GET HEAD OPTIONS PUT>
        Allow from all
    </LimitExcept>
</Location>
4
LazyOne