# Apache - Multiple AccessFileName .htaccess

**URL:** <https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307>\
**Category:** Support Debian\
**Tags:** apache\
**Created:** [Septembre 7, 2021, 4:52 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307 "2021-09-07T16:52:19Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 7, 2021, 4:52 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/1 "2021-09-07T16:52:19Z")

</div>

Bonjour,

J’aimerais savoir (à priori non - TODO) - Apache → `AccessFileName .htaccess`

Pourrait-on dans la directive `AccessFileName` faire en sorte que si je configure **plusieurs htaccess** qu’ils soient **pris en compte les uns après les autres SANS OUBLIER les configurations des fichiers htaccess précédent**.

Par exemple :

Je configure dans le fichier de configuration d’Apache `/etc/apache2/apache2.conf`:

`AccessFileName .htaccess.default .htaccess.restrict .htaccess`

Puis dans mon répertoire racine d’un VHOST je crée mes 3 fichiers :

Fichier `.htaccess.default`

```
# REWRITE

# On suit les liens symboliques
Options +FollowSymlinks

# Activation du mod rewrite d'Apache
RewriteEngine On

# REWRITE

```

Fichier `.htaccess.restrict`

```
# RESTRICTION IPs

Order deny,allow

Deny from all
# Exemple : votre IP pour le test
Deny from 194.195.91.60

Allow from all

# RESTRICTION IPs

```

Fichier `.htaccess`

```
# REDIRECTION DEFAULT

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(\.(ico|gif|jpe?g|png|bmp|css|js|swf|pdf|class|tpl|asx|flv|ogg|webm|dat|phps))|(ads.txt|robots.txt|sitemap.xml)$ /index.php [L]

# REDIRECTION DEFAULT

```

Résultat : çà prend en compte que le dernier fichier (façon de parler) - Je n’ai pas rewrite ni de restriction d’IP !

Ce serait bien 😛 😉

Cette demande pour la simple raison de pouvoir avoir un fichier pour restreindre les bots, les adresses IPs etc. (qu’on ajouterait à plusieurs vhosts puis avoir son .htaccess selon le site Web avec le redirection d’URL propre au site etc…

En vous remerciant.

Romain ([LAB3W.FR](http://LAB3W.FR)) - Creator [ZW3B.FR](http://ZW3B.FR)

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Septembre 8, 2021, 9:28 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/2 "2021-09-08T09:28:32Z")

</div>

> [@anon36725218](#):
>
> Résultat : çà prend en compte que le dernier fichier (façon de parler) - Je n’ai pas rewrite ni de restriction d’IP !

Perso, je m’y prendrais autrement.

`AccessFileName .htaccess`

Et je ferais des inclusions de fichiers 😉

`Include .htaccess.restrict`

etc…

* * *

_ **PS** : ceci est une idée, non testée, car cela fait vraiment longtemps que je n’administre plus de l’Apache_

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Septembre 9, 2021, 6:52 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/3 "2021-09-09T06:52:34Z")

</div>

Bonjour,

La doc n’est pas très précise là-dessus mais de ce que je comprends seul le premier fichier de configuration (dans l’ordre alphabétique ?) de la liste est traité :  
[https://httpd.apache.org/docs/2.4/mod/core.html#accessfilename](https://httpd.apache.org/docs/2.4/mod/core.html#accessfilename)

Sur le principe, je trouve ton idée de configuration assez tordue.  
Si une configuration doit s’appliquer à plusieurs hôtes virtuels il vaut mieux la mettre dans un fichier sous /etc/apache2/conf-available et l’activer soit pourt tous les hôtes avec _a2enconf_, soit pour certains avec une directive _Include_.  
De manière générale, il vaut mieux si possible éviter l’utilisation de fichiers .htaccess. Lire :  
[https://httpd.apache.org/docs/2.4/howto/htaccess.html#when](https://httpd.apache.org/docs/2.4/howto/htaccess.html#when)

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 14, 2021, 11:12 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/4 "2021-09-14T11:12:23Z")

</div>

> [@PengouinPdt](#):
>
> Perso, je m’y prendrais autrement.
> 
> `AccessFileName .htaccess`
> 
> Et je ferais des inclusions de fichiers 😉
> 
> `Include .htaccess.restrict`

Merci beaucoup @PengouinPdt - Je vais essayer cela, ça doit fonctionner ☺

@anon70622873 certes ce serait plus «&nbsp;obligatoire&nbsp;» -L’utilsateur du VHost ne pourait pas supprimer la configuration.

@anon70622873 En fait le problème était : il prend le 1er, puis le 2eme puis le 3eme - Mais oublie les paramètres des 2 premiers 😕

Merci messieurs.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 22, 2021, 1:03 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/5 "2021-09-22T13:03:18Z")

</div>

@PengouinPdt - @anon70622873 çà ne fonctionne pas 😕 sniff !

Que je fasse un/des` include` via le `.htaccess` :

> **Résumé**
>
> ```
> Include .ht_default-access
> Include .ht_restrict-access
> Include .ht_restrict_bot-access
> 
> ```

ou :

> **Résumé**
>
> ```
> Include /var/pro/web_sites/zw3b_fr/www/web/.ht_default-access
> Include /var/pro/web_sites/zw3b_fr/www/web/.ht_restrict-access
> Include /var/pro/web_sites/zw3b_fr/www/web/.ht_restrict_bot-access
> 
> ```

Qui me ressort une erreur 503 …

Bonne journée 😉

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Septembre 22, 2021, 1:38 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/6 "2021-09-22T13:38:41Z")

</div>

Il me semblait l’avoir dit, mais en fait j’ai oublié 😉  
Les directives [Include](http://httpd.apache.org/docs/current/mod/core.html#include) ne fonctionnent pas dans un .htacess  
Pour le reste, voir ma réponse précédente.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 22, 2021, 1:42 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/7 "2021-09-22T13:42:29Z")

</div>

> [@anon70622873](#):
>
> Si une configuration doit s’appliquer à plusieurs hôtes virtuels il vaut mieux la mettre dans un fichier sous /etc/apache2/conf-available et l’activer soit pourt tous les hôtes avec _a2enconf_ , soit pour certains avec une directive _Include_ .

Merci @anon70622873, j’essaie çà 🙂

1. Dans les fichiers de mon/mes VHosts çà ne fonctionne pas Apache ne redémare pas !  
Du moins ^^ en ajoutant une ligne `Include /var/pro/web_sites/zw3b_fr/www/web/.ht_default-access` ; mais cela ne doit pas être comme çà qu’il faut faire ! Je check 🙂  
 
2. Sinon dans conf-available certes… je vais test 😉

OKay : çà fonctionne bien !

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 22, 2021, 2:51 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/8 "2021-09-22T14:51:30Z")

</div>

Je vous écris ce que j’ai fais.

Il faut faire quelque chose comme cela :

Par exemple, créer un fichier : `conf-available/ht_rewrite-access.conf`

```
# REWRITE

# On suit les liens symboliques
Options +FollowSymlinks

# Activation du mod rewrite d'Apache
RewriteEngine On

# REWRITE

```

Et écrire dans le fichier de mon virtualhost `Include conf-available/ht_rewrite-access.conf`

Par exemple, créer un fichier : `conf-available/ht_restrict_ip-access.conf`

```
# RESTRICTION IPs

Order allow,deny

Allow from all

Deny from 1.2.3.4
Deny from 1234:5678:90:abcd:ef:1234:5eef:1

# RESTRICTION IPs

```

Qu’il faut impérativement mettre dans une/la directory du virtualhost.

Par exemple, créer un fichier : `conf-available/ht_rewrite_bot-access.conf`

```
# RESTRICTION BOTs

RewriteCond %{HTTP_USER_AGENT} ^(.*)Crawler* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)BUbiNG* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)anonymousfox* [NC]

RewriteRule ^(.*) - [F,L]

# RESTRICTION BOTs

```

Et écrire dans le fichier de mon virtualhost `Include conf-available/ht_rewrite_bot-access.conf`

Sinon, après avoir ajouter/supprimer/modifier une configuration dans un de ces fichiers, **pas besoin de reload apache** - en fait. Pour ma pomme çà me permet quand même de pouvoir gérer/proposer les bots et adresses IPs à bloquer plus facilement en modifiant qu’un seul fichier et non pas plusieurs.

Merci @anon70622873

PS : Je vous transmet ce lien avec de bonnes informations : [Stupid .htaccess Tricks](https://perishablepress.com/stupid-htaccess-tricks/)

NdMoi-même 17h20 : Pour la restriction des bots, une bonne idée (AUSSI 😉 ) est le fichier `robots.txt` à la racine de vos sites Web - Par exemple j’ai trouvé ce projet sur GITHub : [https://github.com/jonasjacek/robots.txt](https://github.com/jonasjacek/robots.txt)

Exemple (Hors contexte) fichier `https://www.domain.tld/robots.txt` à la racine des vos sites Web 🙂 :

```
# Les users agents "autorisés" 
User-agent: 360Spider
User-agent: 360Spider-Image
User-agent: 360Spider-Video
User-agent: AdsBot-Google
User-agent: AdsBot-Google-Mobile
User-agent: AdsBot-Google-Mobile-Apps
......
User-agent: YioopBot
User-agent: yoozBot
User-agent: YoudaoBot
# Sauf pour ces URLs
Disallow: /ajax
Disallow: /api
# Puis ==> Tout les autres
User-agent: *
Disallow: /

```

Romain - Créateur [ZW3B.TV](http://ZW3B.TV) 😉

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Septembre 22, 2021, 6:47 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/9 "2021-09-22T18:47:25Z")

</div>

> [@anon36725218](#):
>
> PS : Je vous transmet ce lien avec de bonnes informations : [Stupid .htaccess Tricks](https://perishablepress.com/stupid-htaccess-tricks/)

Il vaut mieux se référer à la documentation officielle d’Apache plutôt qu’à des articles plus ou moins bien faits.  
Cela t’évitera par exemple d’utiliser des directives obsolètes pour [les contrôles d’accès](http://httpd.apache.org/docs/2.4/howto/access.html)  
On peut aussi se demander si l’utilisation de directives [BrowserMatch](http://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#browsermatch) associé aux contrôles d’accès n’est as plus efficace que des règles de réécriture mal foutues ; entre autres [[F,L] avec un L superflu](http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_f)

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Septembre 23, 2021, 12:26 UTC](https://www.debian-fr.org/t/apache-multiple-accessfilename-htaccess/85307/10 "2021-09-23T12:26:08Z")

</div>

> [@anon70622873](#):
>
> Il vaut mieux se référer à la documentation officielle d’Apache plutôt qu’à des articles plus ou moins bien faits.

Cà j’en suis sûr ^^ Tu as bien raison !

> [@anon70622873](#):
>
> On peut aussi se demander si l’utilisation de directives [BrowserMatch](http://httpd.apache.org/docs/2.4/mod/mod_setenvif.html#browsermatch) associé aux contrôles d’accès n’est as plus efficace que des règles de réécriture mal foutues ; entre autres [[F,L] avec un L superflu](http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_f)

Ouais @anon70622873 çà pourrait/semblerait pouvoir être vrai et très faisable 🙂 Merci pour ces informations !
