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


29

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"

変更を保持できますか、または元の状態に戻す必要がありますか?

回答:


41

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

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


私はまだ混乱しています...なぜZendはその両方を使用したのですか?変更を保持できますか、それとも何か問題がありますか?
リカルドアマラル

1
いいえ、設定は元の設定と同じではありません-DirectoryディレクティブからAllowOverrideを削除したため、C:\ Program Files \ Zend \ ZendServer \ GUI \ htmlディレクトリにある.htaccessファイルを使用できなくなります。ディレクトリオプションのセットアップはURLオプションのセットアップとは異なるため、両方を使用しました。
ipozgaj

1
場所対ディレクトリ(その他)に関するApacheのドキュメントでロング過去記事:httpd.apache.org/docs/2.2/sections.html
ダンPritts

2

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.