Messages: 135

Enregistré le: 19 Oct 2016

Message le Mer Mai 10, 2017 10:30

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: Tout sélectionner
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: Tout sélectionner
RewriteCond %{HTTP_REFERER} !^http://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.
Haut
14 Réponses
Messages: 106

Enregistré le: 28 Nov 2016

Message le Mer Mai 10, 2017 10:49

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.
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Mer Mai 10, 2017 11:43

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.
Haut
Messages: 12203

Enregistré le: 23 Nov 2005

Message le Mer Mai 10, 2017 13:52

C'est du cloaking, tu tends le bâton pour te faire battre.
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Mer Mai 10, 2017 14:31

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.
Haut
Messages: 37898

Enregistré le: 7 Juil 2004

Message le Mer Mai 10, 2017 15:11

Bonjour,
klp a écrit:j'aimerai me tourner vers une redirection vers la page (B) lorsque l'internaute arrive sur la page (A) à partir des moteurs de recherche.

Redirection 301 et adapter la page B pour qu'elle se positionne à la place de la page A.

Cordialement.
Haut
Messages: 3285

Enregistré le: 3 Mai 2004

Message le Mer Mai 10, 2017 21:30

klp a écrit:
Code: Tout sélectionner
RewriteCond %{HTTP_REFERER} !^http://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.

Essaie plutôt quelque chose comme ceci:
Code: Tout sélectionner
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.
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Jeu Mai 11, 2017 12:27

Bonjour,

Merci pour ton explication.
J'ai testé ta solution mais ça ne fonctionne malheureusement pas.
Haut
Messages: 3285

Enregistré le: 3 Mai 2004

Message le Jeu Mai 11, 2017 13:48

klp a écrit:J'ai testé ta solution mais ça ne fonctionne malheureusement pas.

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 ?
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Jeu Mai 11, 2017 14:14

J'ai testé ta solution :

Code: Tout sélectionner
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: Tout sélectionner
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.
Haut
Messages: 3285

Enregistré le: 3 Mai 2004

Message le Jeu Mai 11, 2017 14:32

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: Tout sélectionner
RewriteCond %{HTTP_REFERER} ^https://www\.google\.fr
RewriteRule ^$ http://www.example.com/pageB.html [L,R]
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Jeu Mai 11, 2017 14:54

Toujours sans succès :(

Voici l'intégralité de mon .htaccess
Code: Tout sélectionner
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...
Haut
Messages: 3285

Enregistré le: 3 Mai 2004

Message le Jeu Mai 11, 2017 15:06

Je ferais un essai en remontant les deux dernières lignes juste après la partie "Redirect non-www to www".
Haut
Messages: 135

Enregistré le: 19 Oct 2016

Message le Jeu Mai 11, 2017 15:14

Ça fonctionne !

Voici mon .htaccess si quelqu'un a besoin de la solution :
Code: Tout sélectionner
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
Haut
Messages: 37898

Enregistré le: 7 Juil 2004

Message le Jeu Mai 11, 2017 17:01

Bonjour,
UsagiYojimbo a écrit:C'est du cloaking, tu tends le bâton pour te faire battre.

+1, mais peut-être que le site n'a pas besoin de SEO dans le temps. :)

Cordialement.
Haut