web 2.0

Seebz.net

Bannir ou rediriger une IP avec .htaccess

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.

Partager : Share
 

10 Réponses à “Bannir ou rediriger une IP avec .htaccess”

  1. Merci pour l'astuce, ca pourra servir :)

  2. L'ip ne change pas à chaque redémarrage de l'ordinateur?
    Ce qui rendrait le script complétement obsolète...

  3. 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 ;)

  4. 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 ?

  5. 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 ;)

  6. 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?

  7. je confirme, la redirection ne marche pas Seebz, avec ou sans le '$'

    les ip sont bien bloquées avec la fonction "deny from" mais c'est tout ce qui marche, aucune redirection ne fonctionne avec ce script, il doit manquer un parametre, peutêtre dans le code du RewriteRule ^(.*)$ http://www.example.com [L]

  8. Ce code fonctionne chez moi pour peu qu'il soit encodé en ANSI (ISO) :
    RewriteCond %{REMOTE_ADDR} ^123.123.123.123
    RewriteRule .* http://www.perdu.com/ [L]

  9. Bonjour,

    merci pour cet article, j' ai une question s' il vous plait ! J' espère qu' elle vous paraitra pas tros imbécile, mais je la pose quand même !!

    Voilà, je gère un site chez E-monsite, je suppose que je ne peux pas utiliser votre methode, puisque je n' ai pas acces au repertoire du serveur ? c' est ça ?

    Dans ce cas existe t il uhn code html que je pourrai insérer sur mon site ( avec un editeur html ) ?

    Merci encore, vous faites du bon boulot !!

    PS: Perso j' aimerai m' en servir pour certains visiteurs qui viennent écrire n' importe quoi dans les com, non pas une critique, mais bien n' importe quoi !!!

    Je viens d' avoir le cas, un com remplis de lettres, de symboles, etc... qui me gêne car je trouve cela irrespectueux !!

  10. Bonjour,

    J'aimerais savoir une petite chose : il semblerait que cette fonction ne marche pas avec les adresses en IPv6... J'ai essayé de tester avec ma propre IPv6 que FREE fournit ; chez OVH, IPv4 et v6 fonctionnent côte-à-côte, mais je ne parviens pas à bloquer l'accès à mon site avec mon Iv6.

    Quelqu'un a-t-il la solution ?

Poster un commentaire

Remonter