Redirect selon HTTP_REFERER

Discussion dans 'Netlinking, backlinks, liens et redirections' créé par klp, 10 Mai 2017.

  1. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Bonjour,

    J'ai une page (A) de faible qualité (à la place de celle que je voudrais (B)) qui arrive à bien se positionner sur plusieurs mots clé principaux pour mon site.

    J'ai réfléchi aux options possibles (balise no index, dégradation de la qualité de la page (A),etc.) mais j'aimerai me tourner vers une redirection vers la page (B) lorsque l'internaute arrive sur la page (A) à partir des moteurs de recherche.
    Je sais que cette méthode est facilement contournable mais ça ne me dérange pas car la page (A) doit être accessible mais pas quand on arrive des SERP (au moins Google et Bing).

    J'ai commencé à écrire des règles dans mon .htaccess mais je n'y arrive pas du tout.

    Voilà mon .htaccess, fonctionnel.

    Code:
    RewriteEngine ON
    
    # Redirect non-www to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
    RewriteCond %{THE_REQUEST} ^.*/pagequelconque.php
    RewriteRule ^(.*)pagequelconque.php$ /$1 [R=301,L]
    
    RewriteCond %{THE_REQUEST} ^.*/pagequelconque2.html
    RewriteRule ^(.*)pagequelconque2.html$ /$1 [R=301,L] 
    
    Rewritecond    %{REQUEST_FILENAME}  !-d
    RewriteCond    %{REQUEST_FILENAME}  !-f
    RewriteRule .* router.php
    J'aimerai rajouter quelque chose du genre (ça ne fonctionne pas):

    Code:
    RewriteCond %{HTTP_REFERER} !^https://www.google.com [NC]
    RewriteRule ^(.*)$ http://www.example.com/pageB.html [R=301,L]
    Mais la page est redirigée trop de fois et ne s'affiche pas.

    Avez vous des pistes pour que je puisse faire des recherches ?
    Ou directement une solution fonctionnelle ? :)

    Cordialement.
     
  2. AntoineMot
    AntoineMot WRInaute discret
    Inscrit:
    28 Novembre 2016
    Messages:
    101
    J'aime reçus:
    0
    J'ai l'impression que tu prend le problème à l'envers.
    Si ta page A est bien positionner alors tant mieux même si elle n'est pas parfaite.
    Ce qu'il faut c'est que tu améliore la page B, si elle est moins bien positionner c'est que google ne la trouve pas mieux et tu risque de perdre en positionnement.
    Incité les personnes sur la page A à aller sur la page B est plus cohérent que les forcer.
     
  3. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Bonjour, merci pour ta réponse.

    A vrai dire, la page (A) est une page qui ne devrait pas être accessible directement via les SERP, c'est pour ça que j'ai pensé à une balise noindex mais je n'aimerai pas perdre son positionnement.
    Je préférerai que les internautes atterrissent sur la page (B) quand ils cliquent sur cette page dans les SERP.
    Le but est de ne pas toucher à la page (B).
    La méthode que je veux utiliser n'est peut être pas optimale mais je n'en vois pas d'autres.
     
  4. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    C'est du cloaking, tu tends le bâton pour te faire battre.
     
  5. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Ah oui...
    Du coup je vais devoir abandonner cette idée.

    Si quelqu'un a la solution pour le .htaccess, ça m'intéresse quand même pour ma culture personnelle et pour faire des tests perso.

    Merci pour vos retours.
     
  6. Madrileño
    Madrileño Membre Honoré
    Inscrit:
    7 Juillet 2004
    Messages:
    31 738
    J'aime reçus:
    335
    Bonjour,
    Redirection 301 et adapter la page B pour qu'elle se positionne à la place de la page A.

    Cordialement.
     
  7. jeanluc
    jeanluc WRInaute accro
    Inscrit:
    3 Mai 2004
    Messages:
    2 875
    J'aime reçus:
    0
    Essaie plutôt quelque chose comme ceci:
    Code:
    RewriteCond %{HTTP_REFERER} ^https?://www\.google\.
    RewriteRule ^pageA.html$ http://www.example.com/pageB.html [L,R]
    Avec ton code, la redirection s'applique si le referrer n'est pas Google et elle s'applique un nombre infini de fois puisqu'elle s'applique à toutes les adresses, donc aussi à pageB.html.

    Dans mon code, ces problèmes devraient être réglés. De plus, j'utilise une redirection 302 au lieu d'une 301 car, avec une 301, Internet Explorer met la redirection en cache, ce qui rend impossible l'accès à pageA.html dès qu'il y a eu une redirection.
     
  8. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Bonjour,

    Merci pour ton explication.
    J'ai testé ta solution mais ça ne fonctionne malheureusement pas.
     
  9. jeanluc
    jeanluc WRInaute accro
    Inscrit:
    3 Mai 2004
    Messages:
    2 875
    J'aime reçus:
    0
    Si tu souhaites plus d'aide, il faudrait en dire un peu plus :mrgreen:

    1. peux-tu copier ici le code que tu as ajouté dans ton .htaccess, celui qui "ne fonctionne malheureusement pas" ?

    2. que veut dire "ne fonctionne malheureusement pas" : "aucune redirection ? redirection vers une mauvaise adresse ? boucle infinie de redirections ?
     
  10. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    J'ai testé ta solution :

    Code:
    RewriteCond %{HTTP_REFERER} ^https?://www\.google\.
    RewriteRule ^pageA.html$ http://www.example.com/pageB.html [L,R]
    Sans succès, il n'y a pas de redirection.

    Puis j'ai modifié un peu en tâtonnant, comme à chaque fois avec les redirections, avec par exemple :

    Code:
    RewriteCond %{HTTP_REFERER} ^https://www\.google\.fr
    RewriteRule http://www.example.com/pageA.html$ http://www.example.com/pageB.html [L,R]
    J'ai enlevé le "?" de la première ligne et rajouté "fr"
    J'ai rajouté le chemin absolu de la page A

    Toujours sans succès, aucune redirection n'est faite.

    Merci encore.
     
  11. jeanluc
    jeanluc WRInaute accro
    Inscrit:
    3 Mai 2004
    Messages:
    2 875
    J'aime reçus:
    0
    Merci pour la réponse.

    Je confirme qu'il ne faut pas mettre le chemin absolu de la page A, uniquement "pageA.html" (pas de / devant).

    Ta rewritecond avec google.fr me semble correcte (redirection seulement si le referrer est google.fr)

    Il faut évidemment placer ceci avant toute règle qui changerait le nom pageA.html en autre chose.

    Pour info, j'utilise une redirection comme celle-là sur un site et elle fonctionne sans problème. La seule différence est que c'est la page d'accueil que je redirige vers une autre page quand le referrer est un certain site.

    Tu peux peut-être essayer de rediriger la page d'accueil pour voir ce que ça donne:
    Code:
    RewriteCond %{HTTP_REFERER} ^https://www\.google\.fr
    RewriteRule ^$ http://www.example.com/pageB.html [L,R]
     
  12. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Toujours sans succès :(

    Voici l'intégralité de mon .htaccess
    Code:
    RewriteEngine ON
    
    # Redirect non-www to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
    RewriteCond %{THE_REQUEST} ^.*/index.php
    RewriteRule ^(.*)index.php$ /$1 [R=301,L]
    
    #RewriteCond %{THE_REQUEST} ^.*/pageB.html
    #RewriteRule ^(.*)pageB.html$ /$1 [R=301,L] 
    
    RewriteCond    %{REQUEST_FILENAME}  !-d
    RewriteCond    %{REQUEST_FILENAME}  !-f
    RewriteRule .* router.php
    
    RewriteCond %{HTTP_REFERER} ^https://www\.google\.fr
    RewriteRule ^$ http://www.example.com/pageB.html [L,R]
    J'ai une règle qui concerne aussi la page B mais je l'ai temporairement commenté, sans succès. J'ai aussi placé la solution que tu me donnes avant, toujours sans succès.

    Les redirections, plus j'en fais, moins je comprends...
     
  13. jeanluc
    jeanluc WRInaute accro
    Inscrit:
    3 Mai 2004
    Messages:
    2 875
    J'aime reçus:
    0
    Je ferais un essai en remontant les deux dernières lignes juste après la partie "Redirect non-www to www".
     
  14. klp
    klp WRInaute discret
    Inscrit:
    19 Octobre 2016
    Messages:
    154
    J'aime reçus:
    4
    Ça fonctionne !

    Voici mon .htaccess si quelqu'un a besoin de la solution :
    Code:
    RewriteEngine ON
    
    # Redirect non-www to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    
    RewriteCond %{HTTP_REFERER} ^https://www\.google\.fr
    RewriteRule ^pageA.html$ http://www.example.com/pageB.html [L,R]
    ...
    
    Merci à tous pour vos retours et plus particulièrement à toi jeanluc !

    Je vais pouvoir tester l'impact d'une telle technique sur un site.

    Bonne journée
     
  15. Madrileño
    Madrileño Membre Honoré
    Inscrit:
    7 Juillet 2004
    Messages:
    31 738
    J'aime reçus:
    335
    Bonjour,
    +1, mais peut-être que le site n'a pas besoin de SEO dans le temps. :)

    Cordialement.
     
Chargement...
Similar Threads - Redirect HTTP_REFERER Forum Date
Redirection en fonction du HTTP_REFERER et référencement Google URL Rewriting et .htaccess 22 Juillet 2013
URLs indexées malgré redirection Problèmes de référencement spécifiques à vos sites 5 Août 2022
Search Console Erreur liée à des redirections Problèmes de référencement spécifiques à vos sites 5 Juillet 2022
Redirect 410 HTACCESS pour toutes les pages d'un répertoire URL Rewriting et .htaccess 1 Juillet 2022
Erreur liée à des redirections Débuter en référencement 15 Juin 2022
WordPress Redirections pour changement de domaine et structure de langues Référencement international (langues, pays) 12 Juin 2022
redirection plusieurs Url vers une page URL Rewriting et .htaccess 10 Juin 2022
Redirection 301 Débuter en référencement 29 Mai 2022
Redirection pertinente? Problèmes de référencement spécifiques à vos sites 26 Mai 2022
Redirection 404 via le .htaccess / pb avec les liens relatifs Débuter en référencement 5 Mai 2022
WordPress Petit souci de redirection htaccess URL Rewriting et .htaccess 3 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Redirection nom de domaine vers site web principal Référencement Google 28 Avril 2022
Erreur liée à des redirections sur Google Search Console Problèmes de référencement spécifiques à vos sites 23 Mars 2022
Redirection d'un site vers un autre Crawl et indexation Google, sitemaps 25 Février 2022
Redirections à faire suite à suppression du multilingue URL Rewriting et .htaccess 21 Février 2022
WordPress redirection de liens WP qui se font tout seul Demandes d'avis et de conseils sur vos sites 17 Février 2022
Problème url rewriting et redirection URL Rewriting et .htaccess 4 Février 2022
Redirection url htaccess Développement d'un site Web ou d'une appli mobile 14 Janvier 2022
Redirection suite refonte site web URL Rewriting et .htaccess 6 Janvier 2022