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
を追加する方法はありますか?
<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/html
はDocumentRoot
特定の仮想ホストの。