Quelle technique adopter pour rediriger les permaliens "sociaux" vers les pages réelles ?

WRInaute discret
Bonjour,

Pour les partages sur les réseaux sociaux, j'utilise des permaliens "sociaux" du type :
Code:
http://domain.com/idArticle_idUser/?ref=nom-du-reseau
Ceci me permet de savoir qui partage quoi et où...

Lorsqu'on arrive sur cette page, je redirige vers :
Code:
http://domain.com/rubrique/categorie/titre-reel-article_idArticle.html

Que me conseillez-vous pour cette redirection au niveau de la page du permalien ?
Actuellement je procède comme suit :
Code:
<title>Titre réel de l'article</title>
<meta name="robots" content="index,follow,all" />
<meta name="canonical" content="http://domain.com/rubrique/categorie/titre-reel-article_idArticle.html" />
<meta http-equiv="refresh" content="0;url=http://domain.com/rubrique/categorie/titre-reel-article_idArticle.html"/>

Est-ce la bonne technique, sachant que je ne pourrai pas le faire via htaccess ?
Pour la meta "robots" le contenu est-il correct ou faut-il juste indiquer "follow" ?
Faut-il d'autres balises meta ?

Merci d'avance pour vos précieux conseils.
 
WRInaute discret
Bon après quelques recherches supplémentaires, il semblerait que la meta "refresh" soit largement déconseillée pour le SEO : https://www.webrankinfo.com/dossiers/conseils/relancer-referencement

J'ai tenté de placer un header en 301, mais comme j'ai déjà des includes etc avant, ça me sortait un
Code:
header already sent

Et puis en lisant http://www.php.net/manual/fr/function.header.php#85254
Je viens d'intégrer le code suivant :
Code:
ob_start();
if($permalien)
{
  // tout mon code de vérification et création du lien $redirection
  header("Status: 301 Moved Permanently", false, 301);
  header("Location: $redirection");
  ob_end_flush();
  exit();
}
else {/*Tout le reste du code*/}
ob_end_flush();

Cela semble bien fonctionner, que pensez-vous de cette technique avec les "ob_" ?
Et est-ce bien une 301 qu'il faut déclarer ?
 
WRInaute discret
Merci pour le lien.

Au delà d'Analytics, je pense me pencher sur les variables passées par #ancres, je ne savais pas que les moteurs ne les considéraient pas comme des liens à part entière et qu'ils ne les sanctionnaient pas en "duplicate".

Donc si j'ai bien compris, je devrais plutôt m'orienter vers un système de permalink du type :
Code:
http://domain.com/idArticle/#idUser_nom-du-reseau

Cela ouvre d'ailleurs d'autres horizons pour les listes de tris :
Code:
http://domain.com/categorie/#date_desc
 
WRInaute accro
Valky a dit:
je pense me pencher sur les variables passées par #ancres

Pourrais tu me dire où l'on trouve des infos concernant cette méthode pour passer des variables? :)

je n'arrive pas à en trouver :?
 
WRInaute discret
Côté serveur cela n'est pas possible, car ces données derrière les ancres sont uniquement utilisées par le navigateur client.
D'où, certainement, le fait que Google ne les apparente (actuellement) pas à du duplicate...
Donc, ni PHP, ni rewriting avec un htaccess etc...

Comme cela fonctionne uniquement côté client, il faudra utiliser un langage qui s’exécute côté client et là javascript fait ça très bien.

Voici un exemple en javascript :
Code:
<a href="/mapage.html#var0_var1_var2">Test avec variables en ancre</a>

<script type="text/javascript">
    var ancre = window.location.hash; // Récupère l'ancre
    ancre = ancre.substring(1,ancre.length); // Supprime le #
    var mesVar = ancre.split('_'); // On affecte les variables à un tableau
    alert(mesVar[0]+', '+mesVar[1]+', '+mesVar[2]); // Affichera : var0, var1, var2
</script>

Après s'il faut les passer à PHP, il faudra utiliser un peu d'AJAX, mais ceci est une autre histoire.
 
Discussions similaires
Haut