Jump to content

[RESOLU]Google index ?


topus

Recommended Posts

Bonjour voila une semaine j ai envoyer mon sitemap et quand je fais sur google :


site:www.topus-brands.com

il me sort juste : www.topus-brands.com/search.php?tag=slip+on

est ce normal qu il me sorte pas en premier ?

www.topus-brands.com

bien que j ai dans le sitemap :

Nombre total d'URL dans le sitemap 97
URL indexées dans le sitemap 31

Link to comment
Share on other sites

Salut ton sitemap est pas bon au niveaux des liens, je veux dire que tout est mélanger là dedans, tes premiers liens que Google voit son ceux qu'il te donne sur le moteur de recherche.
Moi je viens de le faire ton sitemap et tu verra que ça n'à vraiment plus rien à voir, et là tu as un bon fichier bien construit et propre de surcroit.
Je te le met en pièce jointe, donc remplace ton sitemap par le mien et tu verra que d'ici quelques jours tu aura de bien meilleurs résultat.

PS: Ca ne veux pas passer en pièce jointe, donc je le met sur mon serveur en.rar, dès que tu l'à pris fais le moi savoir que je le supprime merci.

http://dreams-pc.fr/sitemap.rar

Link to comment
Share on other sites

Te liens sont en désordre tu référence en premier lieu les liens 1,2,3,4,5,6 ect, mais tes liens ne ramène pas sur les pages principales mais sur des produits ou autres en premier ce qui fais que ta précense sur google est pas nombreuse voir limitée.
De plus tu dis que Google te référence 84 liens, moi j'en compte plus de 150 sur le sitemap que je t'ai fais.
Je fais les fichiers avec des logiciels de ma fabrications car je travaille également dans le domaine du référencement.

Link to comment
Share on other sites

Hum en fait la j ai mis ton fichier j ai update le sitemap et il me trouve plus que 72 url

Dernier téléchargement par Google il y a 7 minutes
État OK
Nombre total d'URL dans le sitemap 72

je comprends plus rien

En fait je vient de voir que toutes mes pages US n etaient plus dans le sitemap maintenant

Link to comment
Share on other sites

Bonjour,

Quelques remarques :

1)
http://www.topus-brands.com/
http://www.topus-brands.com/index.php
http://www.topus-brands.com/index.php?id_lang=1
=> problème de duplicate content sur la homepage, il ne faut laisser que le 1er

2)
http://www.topus-brands.com/cart.php?*
http://www.topus-brands.com/order.php?*
=> supprimer toutes ces URLs qui n'ont rien à faire dans le sitemap
(/cart.php et /order.php doivent en principe être dans le robots.txt)

3)
http://www.topus-brands.com/product.php?*
http://www.topus-brands.com/cms.php?
...
=> ne pas mettre d'URL non rewritées, en plus ça fait du duplicate content

4)
Virer tous les id_lang=1 à la fin des URL

5)
Pourquoi mettre un changefreq à never ?

6)
http://www.topus-brands.com/search.php?tag=*
=> Ne pas mettre ça dans la sitemap, les résultats de recherche et les tags ne doivent
pas être indexés, comme le demande google (/search.php à bannir dans robots.txt)

7)
http://www.topus-brands.com/authentication.php
http://www.topus-brands.com/contact-form.php
=> Aucun intérêt d'indexer ça, à bannir dans le robots.txt

Dans un premier temps je te conseille d'utiliser le logiciel Xenu : http://home.snafu.de/tilman/xenulink.html
Cela va te permettre d'éliminer les problèmes sur ton site et dans un 2e temps de
générer une sitemap plus propre.

Je crois qu'il y a un post avec le module de sitemap mis à jour, il vaudrait mieux utiliser ça.

Link to comment
Share on other sites

Si ton site n'est pas indexé sur les moteurs de recherche c'est à cause de ça sur chaque page :
<meta name="robots" content="noindex,follow" />

:P

Mais au final ça te sauve un peu, au moins il n'y aura pas de pagaille à régler, mais assure toi
que la sitemap est impeccable avant de changer en :
<meta name="robots" content="index,follow" />

Link to comment
Share on other sites

Quel sont tes compétence en matière de référencement pour pouvoir parler ainsi, tout les sites que j'ai référencer ce sont retrouver en tête de google avec n'importe quel mot clef, alors je ne pense pas avoir besoin de tes conseils sur ce sujet et essaye tant que possible de mesurer un peux tes mots.
Quand est t'il de tes sites si tu en possède et quels sont leurs classement? horrible? je me permet de reprendre tes termes.

Link to comment
Share on other sites

Nico46, tu as du duplicate content sur ton site :
www.dreams-pc.fr
www.dreams-pc.fr/index.php
dreams-pc.fr
dreams-pc.fr/index.php

Quant à être numéro 1 sur google ça ne veut rien dire, et pour les mots clés il faudra me dire lesquels, si je prends le début de ton méta keywords : boitier pc, pc portable, processeur, carte son, carte graphique, carte mere => je ne vois pas ton site sur la 1ère page de google.

Si je peux paraître dur dans certains termes, c'est que certaines choses me choquent.
Alors au lieu de me critiquer pourquoi tu ne critiques pas mes arguments ??

Je ne suis pas un pro du référencement, mais je connais plein d'erreurs à ne pas faire.

Alors OK tu n'as pas besoin de mes conseils mais si tu avais donné à topus la raison de la non indexation de son site :
<meta name=“robots” content=“noindex,follow” />
je pense que ça lui aurait été plus utile dans un premier temps.

Link to comment
Share on other sites

Je reviens quand même sur mon point 4, avec les id_lang. C'est assez compliqué et je crois qu'il faut bien regarder dans le forum sur la notion de multilangue, je ne sais pas si une solution idéale existe, en tout cas même l'équipe Prestashop en interne réfléchit à une meilleure solution à ce niveau que la solution actuelle. L'idéal ça serait de pouvoir jouer sur le TLD ou un sous-domaine, ou à défaut un sous répertoire. Mais je vous avouerai que ma boutique n'étant pas multiligue je ne me suis pas encore penché vraiment sur la question, alors je ne me prononcerai pas plus sur ce sujet :)

Link to comment
Share on other sites

Au fait nico46, juste une info (désolé si je peux paraître désagréable mais ce n'est pas du tout mon but) :
site:dreams-pc.fr/&

Ton site n'a que 11 pages indexées dans l'index principal de google, il doit y avoir un problème quelque part ?
La plupart des URL sont en erreur 404.

Voilà c'est juste pour te prévenir, et surtout n'y vois pas de remarque désagréable de ma part (bon j'ai peut-être bu un peu trop de café aujourd'hui ? :P:) ).

PS: j'ai édité mes messages et j'ai enlevé les remarques qui pouvaient paraître désagréables (rhaaaa ce que les gens peuvent être susceptibles ! :P:) ).

Link to comment
Share on other sites

Merci pour vos reponses, nice ton lien marche plus :(

Sinon misty peux tu m expliquer comment tu vois les erreurs de duplicate content plz , car j ai fais fais comme dit dans ce site : http://www.effi10.com/technique-web-css/prestashop-corriger-le-duplicate-content/ pour corriger l erreur de duplicate justement.

Ensuite tu parles de id_lang=1 ou autre, je ne comprends pas ou tu trouves ça car toutes mes urls sont rewrites justement
Prenons l exemple d un produit au hasard :
en fr l url est :
http://topus-brands.com/home/24-vans-old-skool-lo-pro.html
et en us :
http://topus-brands.com/home/24-vans-old-skool-lo-pro-en.html

donc peux tu me dire ou tu vois les

3)
http://www.topus-brands.com/product.php?*
http://www.topus-brands.com/cms.php?

4)
Virer tous les id_lang=1 à la fin des URL


Merci d avance car la je vois pas du tout :/

Link to comment
Share on other sites

Bonjour

Tout ce qu'a écrit Misty est parfaitement exact... Au passage, la présence de la balise "noindex,follow" sur toutes les pages explique la non indexation de beaucoup de pages. Mais Google étant ce qu'il est, il pèche par excès (en d'autres termes, si vous avez une page par ex. interdite dans le robots.txt mais qu'elle figure dans le sitemap, il va l'indexer tout de même puisqu'on lui aura demandé de l'indexer au moins une fois !)

Concernant le contenu "idéal" du sitemap, pour une boutique en ligne Prestashop il ne devrait contenir que les catégories, les produits, les pages CMS "utiles" (les mentions légales n'ont rien à faire dans un sitemap) et le cas échéant, les pages de tags si leur gestion est légèrement modifiée et optimisée (par défaut ces pages sont non indexées, dixit le robots.txt). Et la page d'accueil bien sûr ;-)

Bref.

Le fait est que certaines choses sont (très) perfectibles en matière de duplicate content dans Prestashop, mais aussi au niveau du module gsitemap (j'avais proposé une modification de ce dernier dans le forum ; attention, petite modif à faire pour les sites multilingues avec une contrainte : les pages de mêmes articles/catégories doivent être rewritées avec des noms différents dans chaque langue, obligatoirement ! Y'a néanmoins toujours moyen de feinter ou de faire des compromis à ce niveau)

Link to comment
Share on other sites

Topus,

Mes remarques ne portaient pas sur ta sitemap mais sur celle mise en attachement en fichier .rar de nico46.

Concernant ta sitemap actuelle, il suffit de virer les search.php, cart.php, order.php ainsi que quelques pages de CMS (à mettre dans le robots.txt) et ce sera bon normalement. Mais même en l'état actuel ta sitemap n'aurait pas causé de problèmes particuliers car search.php, cart.php, order.php sont déjà dans le robots.txt, c'est juste pour avoir un fichier plus propre, ça ne changera pas grand chose.

Le seul point qui empêche ton site d'être indexé c'est que, comme on l'a dit, tu demandes explicitement aux moteurs de recherche de ne pas l'indexer via la directive noindex. (ça avait peut-être été mis quand le site était en développement pour éviter l'indexation pendant cette phase).

Link to comment
Share on other sites

ah merci j ai eu peur ;)

Donc juste a enlever le noindex de mon header.tpl et tout sera regler ?


Merci beaucoup, cedric oui je sais c est justement ce sitemap avec la correctif duplicate content que j ai pris

donc j ai virer le :

<meta name="robots" content="{if isset($nobots)}no{/if}index,follow" />

tout est bon maintenant normalement non ?

Link to comment
Share on other sites

Euh... il ne faut pas virer cette ligne !!!

Il doit y avoir autre chose ! Tu utilises quelque part les modifs du header.php dont je parle sur mon blog ? Car normalement la balise Smarty "nobots" ne doit pas être définie la plupart du temps. Il est possible que ton serveur ait une spécificité à ce niveau et que le code soit incorrectement interprété (je sais pour l'avoir installé sur plusieurs boutiques, qu'il faut généralement une petite adaptation d'un hébergeur à l'autre)

Link to comment
Share on other sites

ah d accord euh oui j utilise tes modifications de duplicate content comme dit ici :

<?php

require_once(dirname(__FILE__).'/init.php');

/* CODE A INSERER A PARTIR D'ICI */

/***** Test et correction des URL non valides *****/
if (isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product']))
{
   // Nous sommes sur une page produit
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $product = new Product(intval($_GET['id_product']), true, intval($cookie->id_lang));
   if (Validate::isLoadedObject($product) AND $product->active)
   {
       $goodurl=$_GET['id_product']."-".$product->link_rewrite.".html";    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante

       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }  
   };
}

if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
   // Nous sommes sur une page Categorie
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang));
   if (Validate::isLoadedObject($category) AND $category->active)
   {
       $paramurl="";

       // Detection d'un eventuel numero de page
       if (isset($_GET['p'])) {
           $varpagenumber=$_GET['p'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };
       };

       // Detection des variables eventuelles de tri de produits
       if (isset($_GET['orderby'])) {
           $varorderby=$_GET['orderby'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderby=$varorderby";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };
       if (isset($_GET['orderway'])) {
           $varorderway=$_GET['orderway'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderway=$varorderway";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };

       $goodurl=$_GET['id_category']."-".$category->link_rewrite.$paramurl;    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante
       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }
   };
}

// FIN DU CODE A INSERER



Que dois je faire alors pour le noindex nofollow ?


merci

Link to comment
Share on other sites

La variable "nobots" ne doit pas être renseignée. Si elle a une valeur => on passe en "noindex,follow"

Donc cette variable ne doit être renseignée QUE si la page ne doit pas être indexée (par soucis de clarté, je mets 1 dans cette variable quand je lui attribue une valeur, c'est vrai...)

Link to comment
Share on other sites

parfait - merci pour cette réponse rapide donc j'ai mis :

   $smarty->assign('nobots', );        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots



mais j'ai une page blanche

Link to comment
Share on other sites

Non non, si la page ne DOIT PAS être indexée, tu mets
$smarty->assign('nobots', 1);



Sinon tu ne mets RIEN. Tu as une page blanche car il y a une erreur de syntaxe et de ce fait, l'exécution de la page s'interrompt ;-)



en effet ma boutique est dans le répertoire "boutik" donc j'ai du changer un peu la syntaxe mais n'étant pas un as du PHP je ne sais pas ou est l'erreur. En attendant d'avoir la soluce j'ai viré la ligne en question.

1 Quelqu'un peut il m'aider ?
2 Cedric est ce génant d'enlever cette ligne "nobots"
3- J'oubliai qd je met "0" au lieu de "1" je n'ai pas de page blanche.

merci d'avance
Link to comment
Share on other sites

  • 5 months later...
  • 6 months later...

Bonjour à tous .

je viens par ici pour faire profiter dans le cas ou le code est correct ...

Pour prestashop 1.2.5 avec url canonique et réecriture d'url ce code est il correct ???

/* CODE A INSERER A PARTIR D'ICI */

/***** Test et correction des URL non valides *****/




if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))

   {
       $paramurl="";

       // Detection d'un eventuel numero de page
       if (isset($_GET['p'])) {
           $varpagenumber=$_GET['p'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };
       };

       // Detection des variables eventuelles de tri de produits
       if (isset($_GET['orderby'])) {
           $varorderby=$_GET['orderby'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderby=$varorderby";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };
       if (isset($_GET['orderway'])) {
           $varorderway=$_GET['orderway'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderway=$varorderway";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };




}

// FIN DU CODE A INSERER



J'ai ajouter aussi pour l'affichage des produits de 10 / 20 ou +

if (isset($_GET['n'])) {
           $varpagenumber=$_GET['n'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };



Au départ j'avais mis le code en entier mais j'avais une page blanche sur les catégories .
Maintenant , les catégories s'affichent avec "index; follow" et les declinaisons (normalement toute... ??? ) en Noindex; follow .

Quoi qu'il arrive ce code est il correct ? N'y a t'il aucun danger pour le referencement ?
Ce serai quand meme dommage de perdre le benefice d'heure de travail et recherche sur le forum pour un code erroné ...

J'ai fait d'autre modif qui sont plus spécifique à ma boutique , mais je voudrais faire de meme avec les nouveaux produits et les reductions et les meilleurs ventes ... Si une bonne ame peu m'aiguiller ce serais vraiment sympa !
Mon probleme se pose sur le "id_ " y en as pas pour eux ...

Merci de vos réponse !

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

Juste pour info, le code de Eddt45 pour le nombre de produits par page ne fonctionne pas (erreur de variable(p au lieu de n) oubli de fermer avec}; et ne s'ajoute pas aux autres variables (order,n° de page,...)).
A priori celui-ci fonctionne:

        if (isset($_GET['n'])) {
           $varpagenumber=$_GET['n'];
           if($varpagenumber>1) {
               $paramurl.=(empty($paramurl)?"?":"&")."n=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           }; 
        };



Par contre en ce qui me concerne j'ai du mettre en commentaire la partie qui corrige les url produits car ce code "corrige" aussi les 2 modules "envoyer à un ami " et "poser une question", ce qui rend ces 2 fonctions inutilisables!
Y aurait il un moyen pour que ces 2 modules restent opérationnels?

Link to comment
Share on other sites

bizarre que ca ne fonctionne pas ... .

Effectivement j'avais fait une faute dans le code et je l'avais modifier sans le faire sur le forum ... desoler ...

apres ce qui concerne le fonctionnement , chez ca fonctionne nikel !!!

et pour les autre variable il faut mettre le code en entier ...

Link to comment
Share on other sites

Avec votre code j"avais soit p soit n qui était pris en compte mais pas les 2 (ex: en étant sur la page 4 si je mettais 20 produits au lieu de 10 cela me ramenait à la 1 ère page sans pouvoir les suivantes!)
Bref c'est pas grave si ça fonctionne chez vous et chez moi d'une autre façon; par contre je voulais savoir si vous utilisez les modules que j'ai cité?

Link to comment
Share on other sites

oui je les utilises mais je les ai bloquer dans le robot texte, envoyer a un ami n'as rien a faire sur les pages de recherche ... Enfin c'est mon point de vu .
Il est evident que ce code est adapter selon la boutique , je l'ai moi meme modifier pour d'autre module en fonction de mes besoins .
Mais l'idée est là ...
Il suffit de reprendre le code et l'adapter aux modules qu'on veux prendre en compte ...

Voila ...

Link to comment
Share on other sites

Est ce que vous pourriez me dire quelle est la modification qu'il faut apporter à ce code pour qu'il laisse fonctionner les modules "envoyer à un ami" et "poser une question sur le produit" .
Actuellement, avec ce code, ils sont considérés comme des mauvaises url et sont donc redirigés vers la page produit!!!
Merci d'avance.

Link to comment
Share on other sites

le code en question ne sert pas a rediriger les pages ... Il sert uniquement a indiquer aux robots d'indexer ou non les pages ...
S'il y a redirection sur les pages , ca viens d'ailleurs ...

Link to comment
Share on other sites

Je parle du code de Cedric Girard qui est super pour éviter le duplicate content mais qui du coup bloque les 2 modules "envoyer à un ami" et "poser une question".
Le code dont je parle est le suivant:

<?php

require_once(dirname(__FILE__).'/init.php');

/* CODE A INSERER A PARTIR D'ICI */

/***** Test et correction des URL non valides *****/
if (isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product']))
{
   // Nous sommes sur une page produit
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $product = new Product(intval($_GET['id_product']), true, intval($cookie->id_lang));
   if (Validate::isLoadedObject($product) AND $product->active)
   {
       $goodurl=$_GET['id_product']."-".$product->link_rewrite.".html";    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante

       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }  
   };
}

if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
   // Nous sommes sur une page Categorie
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang));
   if (Validate::isLoadedObject($category) AND $category->active)
   {
       $paramurl="";

       // Detection d'un eventuel numero de page
       if (isset($_GET['p'])) {
           $varpagenumber=$_GET['p'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };
       };

       // Detection des variables eventuelles de tri de produits
       if (isset($_GET['orderby'])) {
           $varorderby=$_GET['orderby'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderby=$varorderby";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };
       if (isset($_GET['orderway'])) {
           $varorderway=$_GET['orderway'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderway=$varorderway";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };

       $goodurl=$_GET['id_category']."-".$category->link_rewrite.$paramurl;    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante
       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }
   };
}

// FIN DU CODE A INSERER 

Link to comment
Share on other sites

ha ok ...

Ben c'est bien ce que je dit alors ... ca viens d'un probleme de redirection ...

Supprime les lignes de redirections , et garde seulement celles que j'ai mis moi ... Y aura plus de probleme avec les modules .
Pour la redirection utilise l'url caninocal ...


EN plus y a un post recent sur le sujet avec les modifs a faire pour qu'il fonctionne ...
Voila , je n'ai psa d'autre reponse a te donner...
bon courage ;)

Link to comment
Share on other sites

Bonsoir

Il faut faire un test de présence de chaîne de caractère dans l'URL en début de code.

if((!(isset($_GET['nomdechampsdivers'])))&&(strpos($_SERVER["REQUEST_URI"],"/productquestion/")===false)&&(strpos($_SERVER["REQUEST_URI"],"/sendtoafriend/")===false))

{

// ici le code

}




"nomdechampsdivers" sert (ici mis à titre d'exemple, mais il faut évidemment le remplacer) à détecter la présence de champs spécifiques dans l'URL, c'est par exemple utile pour certains modules AJAX. Pour les deux autres exemples, j'ai mis ici "REQUEST_URI", qui fonctionnera la plupart du temps, mais c'est à tester quand même car ça dépend des hébergeurs ;-)

Link to comment
Share on other sites

Bonsoir,

Merci pour la réponse mais j'ai essayé :

if (isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product']))&&(strpos($_SERVER["REQUEST_URI"],"/productquestion/")===false)&&(strpos($_SERVER["REQUEST_URI"],"/sendtoafriend/")===false))

{
//code précédent ici
}




et je me retrouve avec une page blanche!!

Où est l'erreur?

Oups!!
J'ai fais une erreur de syntaxe et le code ci- dessous ne me donne plus de page blanche:

if((!(isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product'])))&&(strpos($_SERVER["REQUEST_URI"],"/productquestion/")===false)&&(strpos($_SERVER["REQUEST_URI"],"/sendtoafriend/")===false))


Je test pour voir s'il fait bien les redirections et vous tiens au courant

Link to comment
Share on other sites

Voila le code complet (ci-dessous) que j'ai mis dans header.php
IL fonctionne pour les redirections de catégories mais pour les pages produits la redirection ne se fait pas et par conséquent les modules fonctionnent!!
Ça doit être une petite erreur de syntaxe mais le php est quasiment du chinois pour moi :)

/* CODE A INSERER A PARTIR D'ICI */

/***** Test et correction des URL non valides *****/
if((!(isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product'])))&&(strpos($_SERVER["REQUEST_URI"],"/productquestion/")===false)&&(strpos($_SERVER["REQUEST_URI"],"/sendtoafriend/")===false))
{
   // Nous sommes sur une page produit
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $product = new Product(intval($_GET['id_product']), true, intval($cookie->id_lang));
   if (Validate::isLoadedObject($product) AND $product->active)
    {
       $goodurl=$_GET['id_product']."-".$product->link_rewrite.".html";    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante

       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       } 
   };
}

if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
   // Nous sommes sur une page Categorie
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang));
   if (Validate::isLoadedObject($category) AND $category->active)
   {
       $paramurl="";

       // Detection d'un eventuel numero de page
       if (isset($_GET['p'])) {
           $varpagenumber=$_GET['p'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };
       };
       if (isset($_GET['n'])) {
           $varpagenumber=$_GET['n'];
           if($varpagenumber>1) {
               $paramurl.=(empty($paramurl)?"?":"&")."n=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           }; 
        };   

       // Detection des variables eventuelles de tri de produits
       if (isset($_GET['orderby'])) {
           $varorderby=$_GET['orderby'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderby=$varorderby";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };
       if (isset($_GET['orderway'])) {
           $varorderway=$_GET['orderway'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderway=$varorderway";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };

       $goodurl=$_GET['id_category']."-".$category->link_rewrite.$paramurl;    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante
       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }
   };
}

// FIN DU CODE A INSERER

Link to comment
Share on other sites

Après quelques essais voila le début du code qui fonctionne parfaitement:

if(((isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product'])))&&(strpos($_SERVER["REQUEST_URI"],"/productquestion/")===false)&&(strpos($_SERVER["REQUEST_URI"],"/sendtomyfriend/")===false))


Attention si quelqu'un d'autre est intéressé mon module pour envoyer à un ami est sedtomyfreind au lieu de sendtoafreind (donc à changer dans le code en fonction de ses propres modules)

Un grand merci Cédric!!

Link to comment
Share on other sites

  • 1 year later...
  • 2 months later...

Je me permets de remonter ce topique, n'ayant pas trouvé de solution équivalente pour la 1.4.X.X

Y a-il une solution pour avoir NOINDEX / FOLLOW sur les pages contenant les variables : 'orderby''orderway''p''n'

Pour les versions 1.4.x.x.

Module, code, bref une solution autre que le robot.txt et autre manipulation google webmatertool.

Merci pour vos propositions.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...