Page 1 sur 1

[PHP5.2] Sessions & Moteurs de recherche

Posté : 20 mars 2009, 19:04
par ixesss
Bonjour,

Petite problèmatique entre variables de session et moteurs de recherche à laquelle je n'ai pas trouvé de réponse dans le forum (à moins avoir mal cherché).

- Ce que je voudrais faire : Construire une page tunnel qui ne s'affiche qu'une fois à l'arrivée sur le site et qui réapparaitrait à la réouverture du navigateur.

--> J'ai donc en toute logique utilisé les variables de session afin de ne pas faire apparaitre cette pub à chaque changement de page.

Le code :

Code : Tout sélectionner

<?php if (!isset($_SESSION['tun'])) { $_SESSION['tun'] = true; tep_redirect('index.php?turl=' . $_SERVER['REQUEST_URI']); } ?>
Sur index.php, s'affiche la balise META REFRESH qui redirige vers $_GET['turl'] après X secondes.

- Problème :
les moteurs de recherche tournent en boucle et ne sortent pas de la page tunnel.

Il doit y avoir une manip, du genre qui se voit comme un nez au milieu de la figure et que bien entendu je ne vois pas !

Je sollicite donc de l'aide !

Merci beaucoup.

Olivier

Posté : 20 mars 2009, 19:17
par julian
Le mieux sera de créer un fichier robots.txt à la racine de ton site.
Ce fichier permet entre autres de spécifier des pages que les robots ne doivent pas indexer.

Il y a des syntaxes spécifiques mais tu as beaucoup d'infos sur le net la-dessus.

Posté : 20 mars 2009, 21:33
par Aureusms
et une redirection en javascript après xx secondes ?

Posté : 20 mars 2009, 21:48
par julian
Les robots n'interprètent pas le JS. Et en référencement, le principal but c'est de faire tourner le site sans JS pour que les robots puissent accéder à toutes les pages.

Par contre, tu peux mettre un lien, et le robot va suivre le lien comme depuis une page normale.

Sinon pour reprendre l'idée du JS de Aureusms, tu peux aussi faire que la page par défaut soit celle sans la pub et faire une redirection JS (ou en PHP par détection du User Agent) vers la page de pub.

Posté : 21 mars 2009, 10:17
par ixesss
Bonjour,

Merci pour vos réponses.

La solution du robots.txt est je trouve intéressante.
Le User Agent aussi ... Mais dans ce dernier cas, quelle est l'information qui apparait pour les moteurs de recherche et qui me permettrait ainsi d'établir une règle valable pour tous les moteurs ?

Car du coup, je pourrais par exemple faire :

Code : Tout sélectionner

$botk = 'bot'; $bot = stripos($_SERVER['USER_AGENT'],$botk); if (($bot === false) && (!isset($_SESSION['tun']))) { $_SESSION['tun'] = true; REDIRECTION VERS PUB TUNNEL; }
Si par contre l'information donnée par $_SERVER['USER_AGENT'] est toujours différente selon les moteurs ... il faudra que je fasse des règles pour chacun d'eux ?

Merci pour votre aide.

Olivier

Posté : 21 mars 2009, 10:30
par julian
http://fr.wikipedia.org/wiki/User-Agent
Tu as une section avec les chaines User-Agent pour les robots ;)

Pour moi, le plus simple, c'est de faire un tableau avec la liste des User-Agent, et de tester si le user agent est dans le tableau, avec la fonction php in_array()

[RESOLU][PHP5.2] Sessions & Moteurs de recherche

Posté : 21 mars 2009, 18:35
par ixesss
Parfaite cette page Wiki !
Le seul petit hic de cette méthode est que je ne pourrai jamais lister tous les moteurs susceptibles de ratisser mon site. D'ailleurs dans la liste Wiki, il n'y a pas le bot d'Orange.

Cela étant, j'ai changé la politique de notre page tunnel ; elle ne sera affichée que pour les internautes qui arrivent par la page d'accueil. Ma page tunnel est en fait l'index avec un DIV qui s'affiche par dessus la page et grâce à la valeur de session que je stocke à l'arrivée, l'attribut display se met en "none" quand on retourne à la page d'accueil ; je n'ai plus de redirection donc plus de problème avec les moteurs.

Un grand merci pour votre aide si généreuse (et si rapide).

Bon WE.

Olivier