web-dev-qa-db-ja.com

<Location>と<Directory> Apacheディレクティブの違い

Zend Serverをインストールしましたが、httpd.confファイルに次のようなものが追加されています。

<Location /ZendServer>
 Order Allow,Deny
 Allow from 127.0.0.1
</Location>

Alias /ZendServer "C:\Program Files\Zend\ZendServer\GUI\html"

<Directory "C:\Program Files\Zend\ZendServer\GUI\html">
 AllowOverride All
</Directory>

しかし、LocationDirectoryの違いを理解できていないようです。私は次のようなものに変更しましたが、それは私にとってより理にかなっていますが、それでも機能します。

<Location /ZendServer>
 AllowOverride All
 Order Allow,Deny
 Allow from 127.0.0.1
</Location>

Alias /ZendServer "C:\Program Files\Zend\ZendServer\GUI\html"

変更を保持できますか、それとも元の状態に戻す必要がありますか?

31
rfgamaral

Directoryディレクティブはファイルシステムオブジェクト(/ var/www/mypage、C:\ www\mypageなど)に対してのみ機能し、LocationディレクティブはURL(サイトドメイン名の後の部分、例:www.mypage.com/mylocation)。

使い方は簡単です。URLでアクセス権を微調整する必要がある場合はLocationを使用し、ディレクトリ(およびそのサブディレクトリ)へのアクセス権を制御する必要がある場合はDirectoryを使用します。 )ファイルシステム内。

43
ipozgaj

ロケーションは、AJPまたはプロキシリダイレクトを使用するときに使用できます。たとえば、OracleのPLSQL APEXモジュールは次のURLを使用します:/ pls/apex/f?p = 1:1

これを使用してディレクトリを制限しようとすると、サーバー上の物理ディレクトリではなくパススルーであるため、機能しません。ロケーションは機能します!

2
Al Garrison