Utilisation des fichiers .htaccess

Nous avons essayé de mettre les directives de configuration dans un fichier nommé ... /htdocs/.htaccess plutôt que dans httpd.conf. Cela fonctionne, mais comment choisir entre ces deux méthodes ?

L’avantage du mécanisme .htaccess est que vous pouvez modifier les directives de configuration sans devoir relancer le serveur. C’est notamment très intéressant sur un site où un grand nombre de personnes gèrent leurs propres pages mais ne sont pas autorisées à arrêter le serveur ni, bien sûr, à modifier ses fichiers de configuration. L’inconvénient de cette méthode, par contre, est que les fichiers sont lus à chaque accès au serveur et non plus une seule fois au démarrage : il y a donc une perte non négligeable de performances.

Le fichier httpd1.conf (de .site.htaccess ) contient les lignes suivantes :

User webuser

Group webgroup

ServerName www.butterthlies.com

AccessFileName .myaccess

 

ServerAdmin sales@butterthlies.com

DocumentRoot /usr/www/APACHE3/site.htaccess/htdocs/salesmen

ErrorLog /usr/www/APACHE3/site.htaccess/logs/error_log

TransferLog /usr/www/APACHE3/site.htaccess/logs/access_log

 

ServerName sales.butterthlies.com

Le contrôle des accès, comme l’indique AccessFileName, se trouve maintenant dans le fichier ... /htdocs/salesmen/.myaccess :

AuthType Basic

AuthName darkness

AuthUserFile /usr/www/APACHE3/ok_users/sales

AuthGroupFile /usr/www/APACHE3/ok_users/groups

require group cleaners

Si vous lancez ce site avec ./go 1 et que vous tentez d’accéder à http://sales.butterthlies.com/, il vous sera demandé votre identifiant et un mot de passe. Si vous voulez entrer, utilisez l’identité de daphne ou de sonia, car seuls les membres du groupe cleaners sont autorisés.

Vous pouvez ensuite modifier .htdocs/salesmen/.myaccess pour qu’il contienne plutôt une directive require group directors. Sans relancer Apache, vous devez maintenant vous identifier comme bill ou ben.

AccessFileName

La directive AccessFileName donne autorité aux fichiers indiqués. Si on utilise un répertoire, l’autorité est donnée à tous ses fichiers et sous-répertoires.

AccessFileName fichier, fichier|répertoire et sous-répertoires ...

Configuration du serveur, hôte virtuel.

Ajoutez la ligne suivante à httpd1.conf :

AccessFileName .myaccess1, myaccess2 ...

Relancez Apache (car la directive AccessFileName doit être lue au démarrage). Vous pourriez croire que vous pouvez limiter AccessFileName à .myaccess dans un répertoire particulier, mais pas ailleurs. Ce n’est pas le cas -- cette directive est globale (en tous cas, plus globale que lorsqu’elle s’applique à un répertoire). Modifiez .conf/httpd.conf pour qu’il contienne :

<Directory /usr/www/APACHE3/site.htaccess/htdocs/salesmen>

AccessFileName .myaccess

</Directory>

Apache se plaindra :

Syntax error on line 2 of /usr/www/APACHE3/site.htaccess/conf/httpd1.conf: AccessFileName not allowed here

Comme nous l’avons dit, le fichier défini par AccessFileName est recherché et relu à chaque accès, ce qui prend du temps. Lorsqu’un client demande l’accès à un fichier /usr/www/APACHE3/site.htaccess/htdocs/salesmen/index.html, Apache recherche les fichiers suivants :

  • /.myaccess
  • /usr/.myaccess
  • /usr/www/APACHE3/.myaccess
  • /usr/www/APACHE3/site.htaccess/.myaccess
  • /usr/www/APACHE3/site.htaccess/htdocs/.myaccess
  • /usr/www/APACHE3/site.htaccess/htdocs/salesmen/.myaccess

Ces recherches multiples ralentissent également le serveur. Vous pouvez les empêcher avec la directive AllowOverride, afin d’améliorer significativement les performances d’Apache :

<Directory />

AllowOverride none

</Directory>

Il est important de comprendre qu’ici / indique le vrai répertoire racine (car c’est là qu’Apache commence ses recherches) et non la racine de l’arborescence des documents du serveur.

Apache La référence
titlepage.xhtml
APACHE-la-REF_split_000.htm
APACHE-la-REF_split_001.htm
APACHE-la-REF_split_002.htm
APACHE-la-REF_split_003.htm
APACHE-la-REF_split_004.htm
APACHE-la-REF_split_005.htm
APACHE-la-REF_split_006.htm
APACHE-la-REF_split_007.htm
APACHE-la-REF_split_008.htm
APACHE-la-REF_split_009.htm
APACHE-la-REF_split_010.htm
APACHE-la-REF_split_011.htm
APACHE-la-REF_split_012.htm
APACHE-la-REF_split_013.htm
APACHE-la-REF_split_014.htm
APACHE-la-REF_split_015.htm
APACHE-la-REF_split_016.htm
APACHE-la-REF_split_017.htm
APACHE-la-REF_split_018.htm
APACHE-la-REF_split_019.htm
APACHE-la-REF_split_020.htm
APACHE-la-REF_split_021.htm
APACHE-la-REF_split_022.htm
APACHE-la-REF_split_023.htm
APACHE-la-REF_split_024.htm
APACHE-la-REF_split_025.htm
APACHE-la-REF_split_026.htm
APACHE-la-REF_split_027.htm
APACHE-la-REF_split_028.htm
APACHE-la-REF_split_029.htm
APACHE-la-REF_split_030.htm
APACHE-la-REF_split_031.htm
APACHE-la-REF_split_032.htm
APACHE-la-REF_split_033.htm
APACHE-la-REF_split_034.htm
APACHE-la-REF_split_035.htm
APACHE-la-REF_split_036.htm
APACHE-la-REF_split_037.htm
APACHE-la-REF_split_038.htm
APACHE-la-REF_split_039.htm
APACHE-la-REF_split_040.htm
APACHE-la-REF_split_041.htm
APACHE-la-REF_split_042.htm
APACHE-la-REF_split_043.htm
APACHE-la-REF_split_044.htm
APACHE-la-REF_split_045.htm
APACHE-la-REF_split_046.htm
APACHE-la-REF_split_047.htm
APACHE-la-REF_split_048.htm
APACHE-la-REF_split_049.htm
APACHE-la-REF_split_050.htm
APACHE-la-REF_split_051.htm
APACHE-la-REF_split_052.htm
APACHE-la-REF_split_053.htm
APACHE-la-REF_split_054.htm
APACHE-la-REF_split_055.htm
APACHE-la-REF_split_056.htm
APACHE-la-REF_split_057.htm
APACHE-la-REF_split_058.htm
APACHE-la-REF_split_059.htm
APACHE-la-REF_split_060.htm
APACHE-la-REF_split_061.htm
APACHE-la-REF_split_062.htm
APACHE-la-REF_split_063.htm
APACHE-la-REF_split_064.htm
APACHE-la-REF_split_065.htm
APACHE-la-REF_split_066.htm
APACHE-la-REF_split_067.htm
APACHE-la-REF_split_068.htm
APACHE-la-REF_split_069.htm
APACHE-la-REF_split_070.htm
APACHE-la-REF_split_071.htm
APACHE-la-REF_split_072.htm
APACHE-la-REF_split_073.htm
APACHE-la-REF_split_074.htm
APACHE-la-REF_split_075.htm
APACHE-la-REF_split_076.htm
APACHE-la-REF_split_077.htm
APACHE-la-REF_split_078.htm
APACHE-la-REF_split_079.htm
APACHE-la-REF_split_080.htm
APACHE-la-REF_split_081.htm
APACHE-la-REF_split_082.htm
APACHE-la-REF_split_083.htm
APACHE-la-REF_split_084.htm
APACHE-la-REF_split_085.htm
APACHE-la-REF_split_086.htm
APACHE-la-REF_split_087.htm
APACHE-la-REF_split_088.htm
APACHE-la-REF_split_089.htm
APACHE-la-REF_split_090.htm
APACHE-la-REF_split_091.htm
APACHE-la-REF_split_092.htm
APACHE-la-REF_split_093.htm
APACHE-la-REF_split_094.htm
APACHE-la-REF_split_095.htm
APACHE-la-REF_split_096.htm
APACHE-la-REF_split_097.htm
APACHE-la-REF_split_098.htm
APACHE-la-REF_split_099.htm
APACHE-la-REF_split_100.htm
APACHE-la-REF_split_101.htm
APACHE-la-REF_split_102.htm
APACHE-la-REF_split_103.htm
APACHE-la-REF_split_104.htm
APACHE-la-REF_split_105.htm
APACHE-la-REF_split_106.htm
APACHE-la-REF_split_107.htm
APACHE-la-REF_split_108.htm
APACHE-la-REF_split_109.htm
APACHE-la-REF_split_110.htm
APACHE-la-REF_split_111.htm
APACHE-la-REF_split_112.htm
APACHE-la-REF_split_113.htm
APACHE-la-REF_split_114.htm
APACHE-la-REF_split_115.htm
APACHE-la-REF_split_116.htm
APACHE-la-REF_split_117.htm
APACHE-la-REF_split_118.htm
APACHE-la-REF_split_119.htm
APACHE-la-REF_split_120.htm
APACHE-la-REF_split_121.htm
APACHE-la-REF_split_122.htm
APACHE-la-REF_split_123.htm
APACHE-la-REF_split_124.htm
APACHE-la-REF_split_125.htm
APACHE-la-REF_split_126.htm
APACHE-la-REF_split_127.htm
APACHE-la-REF_split_128.htm
APACHE-la-REF_split_129.htm
APACHE-la-REF_split_130.htm
APACHE-la-REF_split_131.htm
APACHE-la-REF_split_132.htm
APACHE-la-REF_split_133.htm
APACHE-la-REF_split_134.htm
APACHE-la-REF_split_135.htm
APACHE-la-REF_split_136.htm
APACHE-la-REF_split_137.htm
APACHE-la-REF_split_138.htm
APACHE-la-REF_split_139.htm
APACHE-la-REF_split_140.htm
APACHE-la-REF_split_141.htm
APACHE-la-REF_split_142.htm
APACHE-la-REF_split_143.htm
APACHE-la-REF_split_144.htm
APACHE-la-REF_split_145.htm
APACHE-la-REF_split_146.htm
APACHE-la-REF_split_147.htm
APACHE-la-REF_split_148.htm
APACHE-la-REF_split_149.htm
APACHE-la-REF_split_150.htm
APACHE-la-REF_split_151.htm
APACHE-la-REF_split_152.htm
APACHE-la-REF_split_153.htm
APACHE-la-REF_split_154.htm
APACHE-la-REF_split_155.htm
APACHE-la-REF_split_156.htm
APACHE-la-REF_split_157.htm
APACHE-la-REF_split_158.htm
APACHE-la-REF_split_159.htm
APACHE-la-REF_split_160.htm
APACHE-la-REF_split_161.htm
APACHE-la-REF_split_162.htm
APACHE-la-REF_split_163.htm
APACHE-la-REF_split_164.htm
APACHE-la-REF_split_165.htm
APACHE-la-REF_split_166.htm
APACHE-la-REF_split_167.htm
APACHE-la-REF_split_168.htm
APACHE-la-REF_split_169.htm
APACHE-la-REF_split_170.htm
APACHE-la-REF_split_171.htm
APACHE-la-REF_split_172.htm
APACHE-la-REF_split_173.htm
APACHE-la-REF_split_174.htm