web-dev-qa-db-ja.com

Apache2-構成ファイルの<location />はどこにありますか?

Apache2構成ファイルに<location>がないのはなぜですか?

$ Sudo nano /etc/Apache2/Apache2.conf

次のように<Directory />を見つけることができます。

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
</Directory>

しかし、私はまったく見つけることができません。次のようにOPTIONS DELETE PUTメソッドを許可しようとしています。

<Location "/">
    AllowMethods GET POST OPTIONS DELETE PUT
    Require all granted
</Location>

私のApacheバージョン:

$ Apache2 -v
Server version: Apache/2.4.38 (Ubuntu)
Server built:   2019-08-26T13:31:40

AllowMethods GET POST OPTIONS DELETE PUTを追加する方法はありますか?

1
laukok

<Location>ディレクティブは特定のニーズ(ルール)に適しており、そのようなルールはデフォルトの構成には適していません。

<Location>ディレクティブは、囲まれたディレクティブのスコープをURLで制限します。これは<Directory>ディレクティブに似ており、</Location>ディレクティブで終了するサブセクションを開始します。 <Location>セクションは、<Directory>セクションと.htaccessファイルが読み取られた後、および<Files>セクションの後に、構成ファイルに表示される順序で処理されます。

<Location>セクションは、完全にファイルシステムの外部で動作します。これにはいくつかの影響があります。最も重要なのは、<Location>ディレクティブをファイルシステムの場所へのアクセスを制御するために使用しないことです。いくつかの異なるURLが同じファイルシステムの場所にマッピングされる場合があるため、このようなアクセス制御は回避される場合があります。

<Directory />ディレクティブは、ファイルシステムのルート/を参照します。一方、<Location />はベースURIを指します-http://example.com/ここで、example.comは仮想ホストのServerNameです。したがって、<Location />用に記述されたルールは、<Directory /var/www/html>用に記述されたルールをオーバーライドします。ここで、/var/www/htmlDocumentRoot特定の仮想ホストの。

1
pa4080