Jump to content

[Resolu] Catégorie inaccessible, l'url renvoie sur une page 404


Recommended Posts

Bonjour,

 

Je possède un Prestashop version 1.5.2 qui tournait sans problème, jusqu'à aujourd'hui.

J'ai ajouté plusieurs sous-catégories à ma boutique puis je me suis rendu compte que certaines renvoyaient la "page non trouvée".

 

J'utilise le module PM Advanced Top Menu, ce qui a peu d'importance en soit pour mon problème je pense mais je préfere préciser.

 

Voici deux URL de mon site présentes dans le menu : la première fonctionne, la seconde renvoie une page non trouvée.

  • www.accessoires-vintage.fr/93-lunettes-soleil-vintage
  • www.accessoires-vintage.fr/100-lunettes-formes-divers

La seule différence que je vois entre ces deux URL et la taille de l'ID de la catégorie qui est de 3 caractères pour la seconde URL qui ne fonctionne pas.

Comme par hasard, pour toutes les URL inaccessibles, j'ai un ID de 3 chiffres et pour toutes celles qui fonctionnent, il n'y a que deux chiffres.

 

Je doute que le fichier .htaccess soit problématique, puisque j'ai l'erreur uniquement avec ces catégories dont l'ID est supérieur à 100, et de plus les URL des produits marchent très bien.

 

Toutefois, il n'y a peut-être pas de rapport entre le nombre de caractère de l'ID et le bon fonctionnement de la réecriture d'URL, j'en ai pas trouvé dans le code en tout cas...

 

Quelqu'un à une idée ?

 

Par avance merci :D

Edited by cail-tech (see edit history)
Link to comment
Share on other sites

Il semble que personne n'ait d'idée.

Je continue donc de chercher d'où vient le problème qui est vraiment flagrant en désactivant l'url rewriting, ce qui me prouve également que le .htaccess n'est pas en cause.

 

J'ai aussi tester de remettre le thème par défaut, ce qui n'a pas changé grand chose au problème.

 

Exemple :

URL fonctionnelle

www.accessoires-vintage.fr/index.php?id_category=93&controller=category

www.accessoires-vintage.fr/index.php?id_category=94&controller=category

 

URL non fonctionnelle

www.accessoires-vintage.fr/index.php?id_category=101&controller=category

www.accessoires-vintage.fr/index.php?id_category=102&controller=category

 

Les 2 derniers liens me renvoie la page :

www.accessoires-vintage.fr/index.php?controller=404

 

En creusant, je suis tomber dans la classe Dispatcher.php avec un tableau contenant ces valeurs pour la category :

 

'category_rule' => array(
		'controller' =>	'category',
		'rule' =>		'{id}-{rewrite}',
		'keywords' => array(
			'id' =>				array('regexp' => '[0-9]+', 'param' => 'id_category'),
			'rewrite' =>		array('regexp' => '[_a-zA-Z0-9-\pL]*'),
			'meta_keywords' =>	array('regexp' => '[_a-zA-Z0-9-\pL]*'),
			'meta_title' =>		array('regexp' => '[_a-zA-Z0-9-\pL]*'),
		),
	)

 

On peut noter les regles Regex [0-9]+ et [_a-zA-Z0-9-\pL] et en testant via le site regextester.com, l'url 101-lunettes-de-vue est bien "matché" ....

 

Si on suit le raisonnement, l'url est bien écrite, elle est bien récupérée, les règles de redirections semblent fonctionner aussi mais le résultat retourné est une page non trouvée.

 

Je n'y comprends rien ...

Edited by cail-tech (see edit history)
Link to comment
Share on other sites

Bonjour,

 

tout remarche enfin !

 

Pour information, mon problème était bien lié au nleft et nright des catégories, dont l'ID est supérieur à 99 (bien que ce dernier point ne semble qu'une coincidence)

 

Effectivement, en cherchant à nouveau je suis tombé sur le topic ci-dessous avec un problème très semblable :

http://www.prestasho...16#entry1288116

 

puis en creusant voici la solution :

http://www.prestasho...-et-nright-for/

 

Un petit module, fonctionnant aussi sur 1.5.4, permet la regénération du nleft et nright avec les bonnes valeurs.

 

Cordialement.

 

Sinon, comment mettre en [résolu] ?

Edited by cail-tech (see edit history)
  • Like 2
Link to comment
Share on other sites

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

Bonjour

 

Je suis dans le même cas je crois.

Après avoir migré de 1.4 à 1.6.0.13, je viens de m'apercevoir que je ne peux pas utiliser mes nouvelles catégories, tout juste créées.

Impossible de les associer à un article et j'ai une page 404 qui s'affiche sur ma boutique. En plus mon fils d'ariane est complètement erroné

 

C'est ce module que je dois prendre non? Il existe une version de ce module pour ma version prestashop? ou le fait qu'il y ait une version pour 1.6 marche aussi bien pour 1.6.0.9 que pour 1.6.0.11 ou 13? (désolée pour la question, je débute...)

 

Merci pour votre aide

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

 

Après un import de catégories, j'ai eu le même soucis : redirection vers des 404 alors que l'url des catégories étaient correctes.

 

Pour le corriger, il faut en effet mettre à jour les nleft et nright de chaque catégorie, et il y a une fonction prévue pour ça dans la classe Category.php : regenerateEntireNtree()

 

 

Voici comment procéder pour appeller cette fonction, pour les utilisateurs ne connaissant pas bien le PHP :

- éditez le fichier /controllers/front/IndexController.php (ou son override si celui-ci existe)

 

- juste avant la ligne "$this->setTemplate(_PS_THEME_DIR_.'index.tpl');", ajoutez ces 2 lignes :

 

    $category_home = new Category(2); // 2 correspondant à la catégorie "Accueil" de votre site, changez cette valeur si votre catégorie "Accueil" a un id différent

    $category_home->regenerateEntireNtree();
 
Ensuite enregistrez le fichier, puis il vous suffit d'aller sur la page d'accueil de votre site une fois pour appeller ce code. Une fois que cela est fait, testez d'aller sur une de vos catégories et cela devrait fonctionner.
 
 
IMPORTANT :
N'oubliez pas d'enlever les 2 lignes que vous venez d'ajouter au fichier IndexController.php, car sinon la fonction regenerateEntireNtree() sera appellée à chaque fois que quelqu'un est sur votre page d'accueil, donc cela ne fera que ralentir le site.
Link to comment
Share on other sites

  • 8 months later...

Bonjour,

 

tout remarche enfin !

 

Pour information, mon problème était bien lié au nleft et nright des catégories, dont l'ID est supérieur à 99 (bien que ce dernier point ne semble qu'une coincidence)

 

Effectivement, en cherchant à nouveau je suis tombé sur le topic ci-dessous avec un problème très semblable :

http://www.prestasho...16#entry1288116

 

puis en creusant voici la solution :

http://www.prestasho...-et-nright-for/

 

Un petit module, fonctionnant aussi sur 1.5.4, permet la regénération du nleft et nright avec les bonnes valeurs.

 

Cordialement.

 

Sinon, comment mettre en [résolu] ?

 

 

Fonctionne nickel avec PS 1.6.1.4

 

Merci beaucoup pour la solution.

Link to comment
Share on other sites

  • 8 months later...
  • 7 months later...

 

Bonjour,

 

 

Après un import de catégories, j'ai eu le même soucis : redirection vers des 404 alors que l'url des catégories étaient correctes.

 

Pour le corriger, il faut en effet mettre à jour les nleft et nright de chaque catégorie, et il y a une fonction prévue pour ça dans la classe Category.php : regenerateEntireNtree()

 

 

Voici comment procéder pour appeller cette fonction, pour les utilisateurs ne connaissant pas bien le PHP :

- éditez le fichier /controllers/front/IndexController.php (ou son override si celui-ci existe)

 

- juste avant la ligne "$this->setTemplate(_PS_THEME_DIR_.'index.tpl');", ajoutez ces 2 lignes :

 

    $category_home = new Category(2); // 2 correspondant à la catégorie "Accueil" de votre site, changez cette valeur si votre catégorie "Accueil" a un id différent

    $category_home->regenerateEntireNtree();
 
Ensuite enregistrez le fichier, puis il vous suffit d'aller sur la page d'accueil de votre site une fois pour appeller ce code. Une fois que cela est fait, testez d'aller sur une de vos catégories et cela devrait fonctionner.
 
 
IMPORTANT :
N'oubliez pas d'enlever les 2 lignes que vous venez d'ajouter au fichier IndexController.php, car sinon la fonction regenerateEntireNtree() sera appellée à chaque fois que quelqu'un est sur votre page d'accueil, donc cela ne fera que ralentir le site.

 

 

Merci pour cette astuce qui fonctionne sur 1.6.1.12 :wub:

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...