Ajout RW pour sortir une 403 + explications sur la plomberie Require
This commit is contained in:
parent
d83e783d25
commit
b8a8f3fb10
|
@ -801,6 +801,8 @@ Substitute "s/REGEXP/REMPLACEMENT/i"
|
|||
|
||||
## Autorisations
|
||||
|
||||
### Require
|
||||
|
||||
Historiquement Apache, utilisait les directives `Order`, `Allow`, `Deny`, et `Satisfy` pour définir les autorisations des ressources qu'il fournissait. Depuis la version 2.4 ces directives sont dépréciées, il ne faut donc plus les utiliser ; bien qu'elles soient toujours utilisables via le module [`mod_access_compat`](https://httpd.apache.org/docs/2.4/fr/mod/mod_access_compat.html). Ces quatres directives sont remplacées par `Require` fournies par le module [`mod_authz_host`](https://httpd.apache.org/docs/2.4/fr/mod/mod_authz_host.html) ; la migration sommaire d'un module à l'autre est décrit dans la [release note 2.4](https://httpd.apache.org/docs/2.4/fr/upgrading.html#run-time).
|
||||
|
||||
**/!\\ Il ne faut jamais mélanger d'anciennes directives comme Order, Allow ou Deny avec des nouvelles comme Require, car le comportement n'est pas défini ce qui vous emenera dans du deboguage interminable. /!\\**
|
||||
|
@ -845,6 +847,66 @@ AuthUserFile /foo/.htpasswd
|
|||
</RequireAll>
|
||||
~~~
|
||||
|
||||
#### Plomberie Require (à valider)
|
||||
|
||||
<https://httpd.apache.org/docs/current/fr/mod/mod_authz_core.html#require>
|
||||
|
||||
Apache va prendre en compte toutes les sections `<Directory XXX>` (ou `<Files XXX>`) de la plus large à la plus précise :
|
||||
|
||||
* Tout d'abord la (ou les) section(s) `<Directory />`
|
||||
* Ensuite `<Directory /foo>`
|
||||
* Ensuite `<Directory /foo/bar>`
|
||||
* etc.
|
||||
|
||||
Les options explicites de la section la plus précise écraseront les options explicites précédentes.
|
||||
|
||||
Si il y a plusieurs sections `<Directory XXX>` identiques, Apache va les évaluer dans cet ordre :
|
||||
|
||||
* Configuration générale
|
||||
* Dans `<VirtualHost XXX>`
|
||||
* Dans les fichiers `.htaccess`
|
||||
|
||||
Les options explicites dans `<VirtualHost XXX>` écrasent celles de la configuration générale.
|
||||
Les options explicites des fichiers `.htaccess` écrasent celles dans `<VirtualHost XXX>`
|
||||
|
||||
Enfin, si dans un même niveau de section il y a des options identiques, ce sont les dernières qui écrasent les premières.
|
||||
|
||||
Voici un exemple :
|
||||
|
||||
~~~
|
||||
<Directory />
|
||||
Require ip 192.0.2.21
|
||||
</Directory>
|
||||
|
||||
<Directory /home/foo>
|
||||
Require ip 192.0.2.23
|
||||
</Directory>
|
||||
|
||||
<Directory /home/foo>
|
||||
Require ip 192.0.2.24
|
||||
</Directory>
|
||||
|
||||
<VirtualHost *>
|
||||
Servername www.example.com
|
||||
DocumentRoot /home/foo/www
|
||||
|
||||
<Directory />
|
||||
Require ip 192.0.2.22
|
||||
<Directory>
|
||||
|
||||
<Directory /home/foo>
|
||||
Require ip 192.0.2.25
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
||||
~~~
|
||||
|
||||
Les évaluations se font de l'IP la plus petite à la plus grande... eu final, seule l'IP 192.0.2.25 est autorisée !
|
||||
|
||||
Note : les options peuvent aussi être utilisées dans une section `<Location XXX>`, elles vont écraser les options `<Directory XXX>` (ou `<Files XXX>`) mais on préfèrera éviter.
|
||||
|
||||
Note 2 : l'écrasement des options correspond à l'option par défaut `AuthMerging Off` mais cela [peut se changer](https://httpd.apache.org/docs/current/fr/mod/mod_authz_core.html#authmerging)
|
||||
|
||||
### Authentification HTTP
|
||||
|
||||
#### HTTP Basic Authentication (mod_auth_basic)
|
||||
|
@ -995,6 +1057,9 @@ RewriteRule (.*) /page-destination [QSD,R=301,L]
|
|||
RewriteCond %{REQUEST_URI} (.*page.php)\/(key=.*)
|
||||
RewriteRule (.*) /%1?%2 [QSD,R=301,L]
|
||||
|
||||
# Envoyer une erreur 403 en fonction de l'entête User-Agent
|
||||
RewriteCond %{HTTP_USER_AGENT} "FooBot"
|
||||
RewriteRule .* - [F,L]
|
||||
~~~
|
||||
|
||||
Pour supprimer un Query String avec une Rewrite Rule :
|
||||
|
|
Loading…
Reference in a new issue