Jump to content

PS1.6.0.9 : Un lien dans le sitemap est en erreur 404


Recommended Posts

Bonjour,

Le sitemap généré par le module Sitemap de prestashop me génère dans le sitemap un lien qui n'existe pas.
Tous les autres liens sont bons.

 

Extrait du sitemap...

<url>
<loc>
<![CDATA[ http://www.ctechnik.com/2-home ]]>
</loc>
<priority>0.8</priority>
<lastmod>2014-06-05T10:49:17+02:00</lastmod>
<changefreq>daily</changefreq>
</url>
<url>

Et cette ligne "http://www.ctechnik.com/2-home" arrive sur une erreur 404.

 

Auriez-vous une explication ?

 

 

 

 

Link to comment
Share on other sites

et le drapeaux is_root_category pour les entrées 1 et 2 de la table catégory?

et table ps_category_shop contient elle aussi les 2 categories

le drapeaux is_root_category pour les entrées 1 et 2 de la table catégory

Entrée 1 --> 0

Entrée 2 --> 1

 

table ps_category_shop contient elle aussi les 2 categories

id_category 1 --> id-shop=1 --> Position=1

 

id_category 2 --> id-shop=1 --> Position=1

 

Link to comment
Share on other sites

et un doute m'assaille quelle est la version de ton module gsitemap?

Salut.

 

Et bien merci pour ce don généreux. Appliqué sur mes 2 boutiques, les mauvais liens générés ont disparu !

Et pour info, je viens de passer en https sur une des boutiques. Wait-and-see !

 

Merci encore.

Edited by Autourdupc (see edit history)
Link to comment
Share on other sites

  • 1 year later...

J'ouvre de nouveau ce topic car j'ai de nouveau ma page /2-home qui revient en erreur 404 sur Google.

J'ai 2 boutiques, l'une en Prestashop V1.6.1.17, l'autre en V1.6.1.18 avec le même problème.
 

En définitive, le gsitemap 3.2.1 ne résout pas forcément le problème...
J'ai donc cherché un peu dans la génération du sitemap et il s'avère que la requête de génération des liens de catégories ne tient pas compte de la "root_category".

 

Il faut donc modifier la requête SQL de manière très simple afin de ne pas générer l'd de catégorie pour le catégorie root.

 

Aller dans le chemin /home/NOMDUSITE/public_html/modules/gsitemap

Ouvrir le fichier gsitemap.php

A la ligne 431 nous trouvons la requête générant les catégories...

$categories_id = Db::getInstance()->ExecuteS(
	'SELECT c.id_category FROM `'._DB_PREFIX_.'category` c
	INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON c.`id_category` = cs.`id_category`
	WHERE c.`id_category` >= '.intval($id_category).' AND c.`active` = 1 AND c.`id_category` != 1 AND c.id_parent > 0 AND c.`id_category` > 0 AND cs.`id_shop` = '.(int)$this->context->shop->id.' ORDER BY c.`id_category` ASC'


Il faut juste rajouter "AND c.`is_root_category` = 0" (sans les guillemets) dans la claude WHERE ce qui permet de ne sélectionner que les catégories qui ne sont pas "root"

 

La requête devient alors :

$categories_id = Db::getInstance()->ExecuteS(
	'SELECT c.id_category FROM `'._DB_PREFIX_.'category` c
	INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON c.`id_category` = cs.`id_category`
	WHERE c.`id_category` >= '.intval($id_category).' AND c.`active` = 1 AND c.`is_root_category` = 0 AND c.`id_category` != 1 AND c.id_parent > 0 AND c.`id_category` > 0 AND cs.`id_shop` = '.(int)$this->context->shop->id.' ORDER BY c.`id_category` ASC'

 

Et voilà... Il suffit de sauver le fichier ainsi modifié pour que la correction soit prise en compte.

 

Il faut maintenant aller dans le BO, module Sitemap, et cliquer en bas de la page de paramétrages sur le bouton "Créer votre sitemap".

 

Pour être sûr du résultat, il suffit d'ouvrir le fichier sitemap à la racine du site (en général 1_fr_0_sitemap.xml) et faire une recherche de "2-home".
--> Il ne devrait plus y avoir d’occurrence.

 

Bonne journée à toutes et tous.

Edited by Autourdupc (see edit history)
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...