Il peut arriver à un webmaster doit bannir une adresse IP précise ou une plage d'adresse.
Que se soit à cause de spam ou d'un robot non désiré, ce visiteur n'est plus le bienvenue sur le site.
Nous allons voir ici comment bannir ce visiteur non désiré à l'aide d'un .htaccess.
C'est bien beau tout ça mais c'est quoi un .htaccess ?
Il s'agit d'un fichier qui permet de configurer Apache, le serveur web utilisé en général sous Linux.
Placé dans un dossier, il appliquera nos règles dans ce dossier et les sous-dossiers qu'il contient.
Deny from
Order Allow,Deny Allow from all Deny from 123.123.123.123
| Order Allow,Deny | On applique les règles dans l'ordre Allow et ensuite Deny |
| Allow from all | Tout le monde est autorisé |
| Deny from 123.123.123.123 | 123.123.123.123 n'est pas autorisé |
Notre visiteur indésirable ayant l'IP 123.123.123.123 aura une erreur 403 (forbidden) lorsqu'il essayera de se connecter sur le site.
Notez qu'il est aussi possible de bloquer un réseau complet (Deny from 123.123.123) ou un nom de domaine (Deny from example.com)
RewriteRule
La différence avec cette méthode est que le visiteur n'aura plus l'erreur 403 mais sera redirigé vers un autre site.
# On active le rewriting
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^123.123.123.123$
RewriteRule ^(.*)$ http://www.example.com [L]
Vous l'aurez compris, le visiteur indésirable sera redirigé vers www.example.com.

Merci pour l'astuce, ca pourra servir
L'ip ne change pas à chaque redémarrage de l'ordinateur?
Ce qui rendrait le script complétement obsolète...
Oui selon le FAI, l'ip change au redémarrage du routeur (ou du PC si tu te connecte en PPP).
L'ip peut aussi changer automatiquement toutes les X heures (par exemple 24) même si tu ne redémarre pas le routeur.
Comme tu l'as indiqué, cette astuce n'est pas toujours adaptée mais quand un site/robot te spamme, il ne change pas d'ip donc cette méthode est adaptée
Bonjour,
très bonne astuce, elle pourra servir mais est-ce qu'il est possible de bannir une plage d'ip avec ce système ?
Tout à fait dexinou, il suffit d'indiquer la plage à la place de l'ip
Deny from 123.456.789
RewriteCond %{REMOTE_ADDR} ^123.456.789
Remarque que pour le RewriteCond, il ne faut plus indiquer le '$' fianl
Malheureusement, l'URL Rewriting ne semble pas fonctionner pour les pages perso de FREE... Je n'arrive plus du tout à accéder au site lorsque je mets ce code dans .htaccess... J'ai une erreur 500 ! Comment faire pour rediriger une certaine adresse IP vers une page spécifique?