.htaccess besoin de précisions sur RewriteCond

WRInaute discret
Bonsoir :D

Arf Dan, si tu m' entends... :p

https://www.webrankinfo.com/articles/ree ... rables.php

Tu nous offres là des leçons terriblements instructives !
Je voudrais bien les adapter à çà:
  • Visite le 24/01/2003 18.39:13 par 195.25.76.32 avec WebCopier v3.3 de
qui me fait le coup, ho!, on va dire une bonne cinquantaine de fois. :evil:

Aussi j' envisage d' écrire ceci:
Code:
RewriteCond %{HTTP_USER_AGENT} ^WebCopier.*
RewriteRule ^.*$ - [F]

Est-ce correct ? Ensuite si puis-je le placer après une redirection en cas d' erreur 404, ou cette question est-elle sans objet car l' ordre ou l' on place ce code dans le fichier .htaccess n' a-t' il aucune espèce d' importance ?

J' avoue étant complètement novice avoir encore soif d' exemples concrets qui pourraient illustrer différents cas de figure.

Merci en tout cas pour ces précieux articles :D
 
WRInaute passionné
Salut Bipbip,

Ta règle est correcte, et devrait fonctionner, quoique le .* à la fin soit inutile...
comme tu ne mentionnes pas le signe $ pour la fin de la chaîne (inutile aussi).

Lorsque tu utilises des listes conditionnelles, il faut garder à l'esprit que l'enchaînement des conditions (toutes les lignes RewriteCond consécutives) est interprété comme un ET logique.
Si tu veux tester pour différents robots indésirables, et effectuer la même opération pour chacun (dans ton exemple, un 403 Forbidden sans réécriture) il faut forcer le OU logique avec le flag [OR] à a fin de chaque ligne "RewriteCond" sauf celle qui précède immédiatement la règle.

Comme dans (avec Webcopier dans la liste):
Code:
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} Bot\ mailto:craftbot@yahoo.com [OR] 
RewriteCond %{HTTP_USER_AGENT} ChinaClaw [OR] 
RewriteCond %{HTTP_USER_AGENT} DISCo [OR] 
RewriteCond %{HTTP_USER_AGENT} Download\ Demon [OR] 
RewriteCond %{HTTP_USER_AGENT} eCatch [OR] 
RewriteCond %{HTTP_USER_AGENT} EirGrabber [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR] 
RewriteCond %{HTTP_USER_AGENT} Express\ WebPictures [OR] 
RewriteCond %{HTTP_USER_AGENT} ExtractorPro [OR] 
RewriteCond %{HTTP_USER_AGENT} EyeNetIE [OR] 
RewriteCond %{HTTP_USER_AGENT} FlashGet [OR] 
RewriteCond %{HTTP_USER_AGENT} GetRight [OR] 
RewriteCond %{HTTP_USER_AGENT} Go!Zilla [OR] 
RewriteCond %{HTTP_USER_AGENT} Go-Ahead-Got-It [OR] 
RewriteCond %{HTTP_USER_AGENT} GrabNet [OR] 
RewriteCond %{HTTP_USER_AGENT} Grafula [OR] 
RewriteCond %{HTTP_USER_AGENT} HMView [OR] 
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR] 
RewriteCond %{HTTP_USER_AGENT} Image\ Stripper [OR] 
RewriteCond %{HTTP_USER_AGENT} Image\ Sucker [OR] 
RewriteCond %{HTTP_USER_AGENT} InterGET [OR] 
RewriteCond %{HTTP_USER_AGENT} Internet\ Ninja [OR] 
RewriteCond %{HTTP_USER_AGENT} JetCar [OR] 
RewriteCond %{HTTP_USER_AGENT} JOC\ Web\ Spider [OR] 
RewriteCond %{HTTP_USER_AGENT} larbin [OR] 
RewriteCond %{HTTP_USER_AGENT} LeechFTP [OR] 
RewriteCond %{HTTP_USER_AGENT} Mass\ Downloader [OR] 
RewriteCond %{HTTP_USER_AGENT} MIDown\ tool [OR] 
RewriteCond %{HTTP_USER_AGENT} Mister\ PiX [OR] 
RewriteCond %{HTTP_USER_AGENT} Navroad [OR] 
RewriteCond %{HTTP_USER_AGENT} NearSite [OR] 
RewriteCond %{HTTP_USER_AGENT} NetAnts [OR] 
RewriteCond %{HTTP_USER_AGENT} NetSpider [OR] 
RewriteCond %{HTTP_USER_AGENT} Net\ Vampire [OR] 
RewriteCond %{HTTP_USER_AGENT} NetZIP [OR] 
RewriteCond %{HTTP_USER_AGENT} Octopus [OR] 
RewriteCond %{HTTP_USER_AGENT} Offline\ Explorer [OR] 
RewriteCond %{HTTP_USER_AGENT} Offline\ Navigator [OR] 
RewriteCond %{HTTP_USER_AGENT} PageGrabber [OR] 
RewriteCond %{HTTP_USER_AGENT} Papa\ Foto [OR] 
RewriteCond %{HTTP_USER_AGENT} pcBrowser [OR] 
RewriteCond %{HTTP_USER_AGENT} RealDownload [OR] 
RewriteCond %{HTTP_USER_AGENT} ReGet [OR] 
RewriteCond %{HTTP_USER_AGENT} Siphon [OR] 
RewriteCond %{HTTP_USER_AGENT} SiteSnagger [OR] 
RewriteCond %{HTTP_USER_AGENT} SmartDownload [OR] 
RewriteCond %{HTTP_USER_AGENT} SuperBot [OR] 
RewriteCond %{HTTP_USER_AGENT} SuperHTTP [OR] 
RewriteCond %{HTTP_USER_AGENT} Surfbot [OR] 
RewriteCond %{HTTP_USER_AGENT} tAkeOut [OR] 
RewriteCond %{HTTP_USER_AGENT} Teleport\ Pro [OR] 
RewriteCond %{HTTP_USER_AGENT} VoidEYE [OR] 
RewriteCond %{HTTP_USER_AGENT} Web\ Image\ Collector [OR] 
RewriteCond %{HTTP_USER_AGENT} Web\ Sucker [OR] 
RewriteCond %{HTTP_USER_AGENT} WebAuto [OR] 
RewriteCond %{HTTP_USER_AGENT} WebCopier [OR] 
RewriteCond %{HTTP_USER_AGENT} WebFetch [OR] 
RewriteCond %{HTTP_USER_AGENT} WebReaper [OR] 
RewriteCond %{HTTP_USER_AGENT} WebSauger [OR] 
RewriteCond %{HTTP_USER_AGENT} Website\ eXtractor [OR] 
RewriteCond %{HTTP_USER_AGENT} WebStripper [OR] 
RewriteCond %{HTTP_USER_AGENT} WebWhacker [OR] 
RewriteCond %{HTTP_USER_AGENT} WebZIP [OR] 
RewriteCond %{HTTP_USER_AGENT} Wget [OR] 
RewriteCond %{HTTP_USER_AGENT} Widow [OR] 
RewriteCond %{HTTP_USER_AGENT} Xaldon\ WebSpider [OR] 
RewriteCond %{HTTP_USER_AGENT} Zeus 
RewriteRule .* - [F,L]

:lol: Cette liste est opérationnelle !
Garde à l'esprit que dans les noms de robots, tout espace doit être précédé d'un signe "backslash" sinon tu risques une Erreur 500 :wink:

Dan

PS: Inutile de mettre toute la liste, il sufit de voir ceux qui apparaissent dans les logs et d'enlever les autres.
 
WRInaute discret
:lol:

merci :wink:

Alors toute cette liste que j' adapte à mes fâcheux, je dois donc la placer après un
Code:
RewriteEngine On
et avant un
Code:
RewriteRule .* - [F,L]
et non
Code:
RewriteRule ^.*$ - [F]
comme j' avais mis ? :p
C' est bien çà ?
Et peut-on placer toutes ces ligne sans souci juste après un :
Code:
ErrorDocument 404 /mapageerreur.html
?

Merci beaucoup pour toutes ces altruistes précisions :)
 
WRInaute passionné
Bipbip,

Tout à fait !
Le RewriteRule ^.*$ est équivalent au RewriteRule .*
L'un veut dire "Toute chaîne de caractères entre le début et la fin de la ligne" et l'autre "Toute chaîne de caractères" , ce qui est fonctionnellement équivalent :wink:
Le tout est d'utiliser une syntaxe et de s'y tenir autant que faire se peut, question de pouvoir se relire facilement.

Comme "tous les chemins mènent à Rome", il existe une grande variété dans l'écriture des "Regular expressions", pour des résultats similaires.

A+

Dan

PS: n'oublie pas, la dernière condition ne doit pas avoir le flag [OR] :wink:
 
WRInaute passionné
bipbip a dit:
Et peut-on placer toutes ces ligne sans souci juste après un :
Code:
ErrorDocument 404 /mapageerreur.html
?
J'oubliais de répondre...
Pour moi, c'est une simple question de logique. Le fichier .htaccess est lu séquentiellement du début à la fin.
J'ai coutume de mettre les lignes ErrorDocument tout en bas car un document non trouvé au début du fichier .htaccess peut être trouvé après application des règles de réécriture.

Je mets en général:
1. Les restrictions d'accès éventuelles
2. Les réécritures
3. Les directives telles que "ErrorDocument"

Question de goût personnel... et de logique de raisonnement. Mais je pense que le moteur Apache est suffisamment bien écrit pour se souvenir d'un ErrorDocument qui se trouve au début du fichier. :wink:

Une chose est sûre, il faut faire attention à l'ordre des règles de réécriture et de la nécessité ou non de poursuivre le traitement (le flag [L])
Il faut mettre les règles les plus sélectives dans le haut de la liste et les plus généralistes dans le bas...

Dan
 
WRInaute passionné
Un .htaccess avec toutes ces lignes plus d'autres encore avec l'UR, le controle des bas bot ... peut avoir quelle taille maxi en octets pour ne pas non plus trop ralentir le serveur.

Il est peut être lu très rapidement

Quel est le bon compromis ?
 
WRInaute discret
Il m' est arrivé ceci:

J' avais tenté la totalité de ta liste, hetzeld, pour vérifier le bon déroulement des connections... et des interdictions.

Et bien, à chaques fois que je tentais d' uploader (ou de télécharger) quoique ce soit du serveur avec le logiciel de ftp, l' application plantait.

J' essaie alors directement avec le browser: idem.

Obligé de ruser en renommant le .htaccess pour pouvoir toucher au serveur.
Curieux, n' est-ce pas :?:

Par ailleurs il me semble que certainement du fait de l' interprétation du fichier (qui dans ce cas pesait un peu plus de 3 Ko), le serveur était quelque peu ralenti, mais peut-être n' était-ce là qu' une impression toute subjective.

Voilà...

Précision: j' avais tout bêtement fait un copié/collé.
Maintenant je n' ai laissé, en attendant de remettre des restrictions d'accès, que les ErrorDocument .
 
WRInaute passionné
Bipbip,

J'avais précisé d'éditer la liste en fonction des hits trouvés dans les logs. Il est inutile de laisser la totalité car beaucoup d'entre nous ne verront jamais passer la plupart des HTTP_USER_AGENT qui sont dans la liste , et c'est heureux :wink:

Quant au plantage auquel tu fais allusion, il me surprend... 8O
Est-ce que tu fais de l'upload en HTTP ? Quel est le USER_AGENT de ton logiciel dans ce cas.
S'il est dans la liste... pas étonnant qu'il bloque, c'est le but. Ces logiciels ne savent pas tous gérer un "Forbiddent" comme il faut.
Il me faudrait plus d'info pour voir ce qui cloche ?

Tu n'utilises pas FrontPage, par hasard ?? Il y a quelques limitations décrites dans l'article pour ceux qui utilisent ce logiciel, comme il a besoin d'un .htaccess avec des infos spécifiques.

Dan
 
WRInaute discret
Oui je sais bien Dan :oops: mais je me suis tout bonnement empressé de remplir le fichier .htaccess avec un maximum de restrictions afin de voir si celles-ci fonctionnaient.
Ainsi je pouvais analyser mes logs pour étudier si un poisson passait entre les mailles.

Et puis souvent quand j' essaie un truc j' ai tendance à vouloir le pousser à son maximum pour voir (ma copine me le reproche assez souvent :lol: ).

Je suis sous Mac, le logiciel ftp est Fetch et le browser était là en l' occurence M.S.I.E. :?:

De toutes les façons, là j' essaie les restrictions pour mes fâcheux et puis je verrais bien si il y a un problème.

:D
 
WRInaute discret
hetzeld a dit:
bipbip a dit:
Et peut-on placer toutes ces ligne sans souci juste après un :
Code:
ErrorDocument 404 /mapageerreur.html
?
J'oubliais de répondre...
Pour moi, c'est une simple question de logique. Le fichier .htaccess est lu séquentiellement du début à la fin.
J'ai coutume de mettre les lignes ErrorDocument tout en bas car un document non trouvé au début du fichier .htaccess peut être trouvé après application des règles de réécriture.

Je mets en général:
1. Les restrictions d'accès éventuelles
2. Les réécritures
3. Les directives telles que "ErrorDocument"

Question de goût personnel... et de logique de raisonnement. Mais je pense que le moteur Apache est suffisamment bien écrit pour se souvenir d'un ErrorDocument qui se trouve au début du fichier. :wink:

Une chose est sûre, il faut faire attention à l'ordre des règles de réécriture et de la nécessité ou non de poursuivre le traitement (le flag [L])
Il faut mettre les règles les plus sélectives dans le haut de la liste et les plus généralistes dans le bas...

Dan

Merci pour ces infos ça va me servir.

Je venais de télécharger un scipt en Php pour bloquer les aspirateurs de site mais étant donné que c'est possible avec un .htaccess je préfère la 2ème solution.

A bientôt.
 
WRInaute discret
Bonjour, ce code :

Code:
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} Bot\ mailto:craftbot@yahoo.com [OR] 
RewriteCond %{HTTP_USER_AGENT} ChinaClaw [OR] 
RewriteCond %{HTTP_USER_AGENT} DISCo [OR] 
RewriteCond %{HTTP_USER_AGENT} Download\ Demon [OR] 
RewriteCond %{HTTP_USER_AGENT} eCatch [OR] 
RewriteCond %{HTTP_USER_AGENT} EirGrabber [OR] 
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR] 
RewriteCond %{HTTP_USER_AGENT} Express\ WebPictures [OR] 
RewriteCond %{HTTP_USER_AGENT} ExtractorPro [OR] 
RewriteCond %{HTTP_USER_AGENT} EyeNetIE [OR] 
RewriteCond %{HTTP_USER_AGENT} FlashGet [OR] 
RewriteCond %{HTTP_USER_AGENT} GetRight [OR] 
RewriteCond %{HTTP_USER_AGENT} Go!Zilla [OR] 
RewriteCond %{HTTP_USER_AGENT} Go-Ahead-Got-It [OR] 
RewriteCond %{HTTP_USER_AGENT} GrabNet [OR] 
RewriteCond %{HTTP_USER_AGENT} Grafula [OR] 
RewriteCond %{HTTP_USER_AGENT} HMView [OR] 
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR] 
RewriteCond %{HTTP_USER_AGENT} Image\ Stripper [OR] 
RewriteCond %{HTTP_USER_AGENT} Image\ Sucker [OR] 
RewriteCond %{HTTP_USER_AGENT} InterGET [OR] 
RewriteCond %{HTTP_USER_AGENT} Internet\ Ninja [OR] 
RewriteCond %{HTTP_USER_AGENT} JetCar [OR] 
RewriteCond %{HTTP_USER_AGENT} JOC\ Web\ Spider [OR] 
RewriteCond %{HTTP_USER_AGENT} larbin [OR] 
RewriteCond %{HTTP_USER_AGENT} LeechFTP [OR] 
RewriteCond %{HTTP_USER_AGENT} Mass\ Downloader [OR] 
RewriteCond %{HTTP_USER_AGENT} MIDown\ tool [OR] 
RewriteCond %{HTTP_USER_AGENT} Mister\ PiX [OR] 
RewriteCond %{HTTP_USER_AGENT} Navroad [OR] 
RewriteCond %{HTTP_USER_AGENT} NearSite [OR] 
RewriteCond %{HTTP_USER_AGENT} NetAnts [OR] 
RewriteCond %{HTTP_USER_AGENT} NetSpider [OR] 
RewriteCond %{HTTP_USER_AGENT} Net\ Vampire [OR] 
RewriteCond %{HTTP_USER_AGENT} NetZIP [OR] 
RewriteCond %{HTTP_USER_AGENT} Octopus [OR] 
RewriteCond %{HTTP_USER_AGENT} Offline\ Explorer [OR] 
RewriteCond %{HTTP_USER_AGENT} Offline\ Navigator [OR] 
RewriteCond %{HTTP_USER_AGENT} PageGrabber [OR] 
RewriteCond %{HTTP_USER_AGENT} Papa\ Foto [OR] 
RewriteCond %{HTTP_USER_AGENT} pcBrowser [OR] 
RewriteCond %{HTTP_USER_AGENT} RealDownload [OR] 
RewriteCond %{HTTP_USER_AGENT} ReGet [OR] 
RewriteCond %{HTTP_USER_AGENT} Siphon [OR] 
RewriteCond %{HTTP_USER_AGENT} SiteSnagger [OR] 
RewriteCond %{HTTP_USER_AGENT} SmartDownload [OR] 
RewriteCond %{HTTP_USER_AGENT} SuperBot [OR] 
RewriteCond %{HTTP_USER_AGENT} SuperHTTP [OR] 
RewriteCond %{HTTP_USER_AGENT} Surfbot [OR] 
RewriteCond %{HTTP_USER_AGENT} tAkeOut [OR] 
RewriteCond %{HTTP_USER_AGENT} Teleport\ Pro [OR] 
RewriteCond %{HTTP_USER_AGENT} VoidEYE [OR] 
RewriteCond %{HTTP_USER_AGENT} Web\ Image\ Collector [OR] 
RewriteCond %{HTTP_USER_AGENT} Web\ Sucker [OR] 
RewriteCond %{HTTP_USER_AGENT} WebAuto [OR] 
RewriteCond %{HTTP_USER_AGENT} WebCopier [OR] 
RewriteCond %{HTTP_USER_AGENT} WebFetch [OR] 
RewriteCond %{HTTP_USER_AGENT} WebReaper [OR] 
RewriteCond %{HTTP_USER_AGENT} WebSauger [OR] 
RewriteCond %{HTTP_USER_AGENT} Website\ eXtractor [OR] 
RewriteCond %{HTTP_USER_AGENT} WebStripper [OR] 
RewriteCond %{HTTP_USER_AGENT} WebWhacker [OR] 
RewriteCond %{HTTP_USER_AGENT} WebZIP [OR] 
RewriteCond %{HTTP_USER_AGENT} Wget [OR] 
RewriteCond %{HTTP_USER_AGENT} Widow [OR] 
RewriteCond %{HTTP_USER_AGENT} Xaldon\ WebSpider [OR] 
RewriteCond %{HTTP_USER_AGENT} Zeus 
RewriteRule .* - [F,L]

on le met dans le fichier .htaccess seulement à la racine du site ?
 
WRInaute discret
c'est un peu peine perdue cepedant je pense, car ces logiciels aspirateurs de site savent se faire passer pour internet explorer ou ce qu'on veut non ??
 
WRInaute discret
smrhp a dit:
c'est un peu peine perdue cepedant je pense, car ces logiciels aspirateurs de site savent se faire passer pour internet explorer ou ce qu'on veut non ??

Exact, la solution est de limiter le nombre de pages vues par minutes, mais là aussi il risque d'y avoir un problème car les aspirateurs de sites proposent de limiter de l'aspiration !

- soit tu fais rien
- soit tu fais les 2
- soit tu fais l'une des 2 méthodes.

Perso moi j'ai abandonné, car mon plus gros soucis était le trafic autorisé par mois (je n'avais que 1 Go) maintenant j'ai 120 Go de traffic mensuel donc s'ils veulent aspirer, qu'ils le fasse !

Par contre le .htaccess est très utile pour protéger des répertoires !
 
WRInaute discret
et ça marche comment ça la limitation du nombres de pages par minutes ?? (bon pour l'instant j'ai pas trop de soucis au niveau bande passante, mais la question risque de se poser un jour, car ça augmente assez rapidement ;) )
 
WRInaute discret
Tiens je viens de retrouver ce script là, ça peut t'intéresser : https://www.webrankinfo.com/forum/viewt ... c&start=90

Edit : mais faut savoir qu'un fichier .htaccess trop grand (comme certains scripts) peuvent ralentir le serveur et donc l'acccès au site !

Il faut trouver le juste minimum, à un moment j'était un peu trop paranoïac tu vois.

Enfin bon voilà @+
 
Discussions similaires
Haut