Aide pour la définition d'une règle

WRInaute discret
Hello

Googlebot devient fou : il se met à scanner des url inexistantes et fabriquées, par exemple :

-index.php/audio/toto/titi/truc.html/tutu/etc.swf

je cherche à ajouter au htaccess une règle du style :

page qui contient "/audio/" et ne se termine pas par ".mp3"

afin de l'envoyer en 404

Quelqu'un sait définir ? J'ai beau regarder la doc apache et je vois bien "Vous pouvez faire précéder la chaîne de motif par '!' (point d'exclamation) pour inverser le sens du test (la condition est vraie si le motif n'est pas trouvé)." mais je n'arrive pas à en trouver l'application

Merci
 
WRInaute accro
Hello

pour ton problème je ne sais pas, mais je n'ai jamais vu Google scanner des URL "inexistantes"; le fait que ces URL soient crawlées veut dire qu'il a forcément trouvé un lien menant vers ces URL.
 
WRInaute discret
Oublions le début de mon message, et on reste sur :

je cherche à ajouter au htaccess une règle du style :
page qui contient "/audio/" et ne se termine pas par ".mp3"
afin de l'envoyer en 404

Puisqu'on peut définir un contenu, on doit pouvoir définir son absence ? non ?
 
WRInaute accro
Obligé de faire ça en htaccess ?
En PHP c'est plus simple:
PHP:
<span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'PATH_INFO'</span><span class="syntaxkeyword">],&nbsp;</span><span class="syntaxstring">'/audio/'</span><span class="syntaxkeyword">)&nbsp;!==&nbsp;</span><span class="syntaxdefault">false&nbsp;</span><span class="syntaxkeyword">&&&nbsp;</span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'PATH_INFO'</span><span class="syntaxkeyword">],&nbsp;</span><span class="syntaxstring">'.mp3'</span><span class="syntaxkeyword">)&nbsp;===&nbsp;</span><span class="syntaxdefault">false</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Status:&nbsp;404&nbsp;Not&nbsp;Found"</span><span class="syntaxkeyword">);<br />exit();<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>
(C'est un simple exemple qui recherche dans toute la chaine, pas début ou fin)
 
WRInaute discret
Merci de la réponse

Effectivement c'est plus simple en PHP, juste qu'il faut reprendre pleins de scripts pour include ou intégration, ce qui n'aurait pas été le cas au niveau d'Apache.

Si ya pas mieux je vais le faire.

Merci
 
Discussions similaires
Haut