2011-03-21 3 views
0

Hey, J'ai besoin de filtrer les demandes avec une certaine valeur PHP dans HTACCESS et je ne trouve pas comment faire cela. Le problème, c'est qu'il y a quelqu'un qui spamme mon site avec une valeur PHP spéciale et qui maintient mon serveur surchargé.HTACCESS avec la valeur PHP

L'adresse URL est www.site.com/?q=XXXXX. J'ai besoin de filtrer toutes les demandes de ce genre (avec? Q = XXXX) et de les rediriger vers la page d'accueil à la place.

J'ai essayé mais ça ne marche pas correctement (il y a une boucle).

RewriteCond %{QUERY_STRING} q=(.*) 
RewriteRule ^(.*) http://www.site.com 

Merci

Répondre

1

pourquoi ne pas u nettoyer tout ce qui est mis dans la valeur _GET? (En utilisant php)

en haut du fichier php mis quelque chose comme:

if(isset($_GET['q'])){ 
    header('Location: homepage.php'); 
} 
+0

parce que j'ai besoin de cette valeur. c'est une valeur de recherche et j'ai une autre réécriture de site.com/search/XXXX à index.php? q =. Quelqu'un a probablement inclus la requête dans une recherche à distance et je ne veux tout simplement pas y accéder directement. – Tom

+0

je ne sais toujours pas ce que vous voulez faire, je cite 'L'URL est www.site.com/?q=XXXXX. J'ai besoin de filtrer toutes les demandes de ce genre (avec? Q = XXXX) et les rediriger vers la page d'accueil à la place. »Ce qui signifie que vous ne voulez pas la valeur get de q = – Neal

+0

Je veux filtrer toutes les demandes directes à www. site.com/?q=XXXX mais en même temps j'ai besoin de cette valeur pour www.site.com/search/XXXX. et je ne veux pas le faire en PHP, mais directement dans HTACCESS, donc je n'ai pas besoin de frapper PHP parce que j'ai la mise en cache statique là-bas. – Tom

0

Si quelqu'un spamming vous assez fort pour surcharger votre serveur, vous devriez regarder bloquer leur adresse IP/adresses ou quelque chose ces lignes si possible.

Aussi, je suggère de laisser ces demandes mourir() plutôt que de les faire vous envoyer une autre demande quand ils chargent votre page d'accueil. Ou peut-être les garder occupés en les redirigeant vers un domaine qui n'existe pas ou quelque chose mais qui pourrait ou non avoir un impact sur eux.

+0

Il n'est pas possible de les bloquer car pour une raison quelconque les demandes proviennent d'adresses IP différentes. Ce n'est pas comme DDOS ou quelque chose ... – Tom

+0

Les demandes venant de différentes adresses IP pour surcharger un serveur sont exactement ce que DDOS signifie. –

+0

mais ce n'est pas DDOS c'est juste un site différent qui accède à mon serveur à distance et utilise ma base de données pour la recherche – Tom

0

avez-vous pensé à compter "X"? si le? Q = X == vrai, continuez, sinon si q> 9 alors vous savez que quelqu'un est en train de jouer avec et de les limiter