Différence entre les directives Apache <Location> et <Directory>


29

J'ai installé Zend Server et j'ai remarqué quelque chose comme ce qui suit a été ajouté à mon fichier 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>

Mais je n'arrive pas à comprendre la différence entre l' emplacement et l' annuaire . J'ai changé pour quelque chose comme ce qui suit, ce qui est plus logique pour moi, et cela fonctionne toujours:

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

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

Puis-je conserver mes modifications ou dois-je les remettre telles quelles?

Réponses:


41

DirectoryLa directive ne fonctionne que pour les objets du système de fichiers (par exemple / var / www / mypage, C: \ www \ mypage), tandis que la Locationdirective ne fonctionne que pour les URL (la partie après le nom de domaine de votre site, par exemple www.mypage.com/mylocation).

L'utilisation est simple - vous utiliseriez Locationsi vous devez affiner les droits d'accès par une URL et vous utiliseriez Directorysi vous devez contrôler les droits d'accès à un répertoire (et ses sous-répertoires) dans le système de fichiers.


Je suis toujours confus ... Pourquoi Zend a-t-il utilisé les deux à l'époque? Puis-je conserver mes modifications ou quelque chose ne va pas avec ça?
Ricardo Amaral

1
Non, votre configuration n'est pas la même que celle d'origine - vous avez supprimé AllowOverride de la directive Directory, ce qui signifie que vous ne pourrez pas utiliser le fichier .htaccess dans le répertoire C: \ Program Files \ Zend \ ZendServer \ GUI \ html. La configuration des options d'annuaire est différente de la configuration des options d'URL, c'est pourquoi ils ont utilisé les deux.
ipozgaj

1
Rédaction longue dans les documents apache sur l'annuaire par rapport à l'emplacement (et autres): httpd.apache.org/docs/2.2/sections.html
Dan Pritts

2

L'emplacement peut être utilisé lors de l'utilisation d'une redirection AJP ou proxy. Par exemple, le module PLSQL APEX d'Oracle utilise l'URL suivante: / pls / apex / f? P = 1: 1

Si vous essayez de restreindre ce répertoire à l'aide, il ne fonctionnera jamais car il s'agit d'un répertoire passe-système et non d'un répertoire physique sur le serveur. L'emplacement fonctionne!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.