Jump to content

[Resolu] 2 chiffres dans le nom d'un produit casse l'url simplifié généré


Jeremy B

Recommended Posts

Bonjour,

 

Je viens d'être alerté par google pour une URL en 404 sur mon site, en allant vérifier, effectivement l’URL est bien en 404. Après quelques heures de tests, voici ce que j'ai pu constaté:

 

Nom du produit : Distributeur plombs stotz tailles 4-11

URL simplifié généré : distributeur-plombs-stotz-tailles-4-11

 

En parcourant mon site dès que je clique pour afficher la page de ce produits je tombe sur erreur 404

 

En modifiant l'url simplifié de la façon suivante le problème disparaît:

URL simplifié modifié manuellement : distributeur-plombs-stotz

URL simplifié modifié manuellement : distributeur-plombs-stotz-tailles-4.11

 

Il semblerait que lorsque le nom du produit comporte 2 chiffres séparé d'un espace ou d'un - l'url simplifié généré ne fonctionne plus en front office. Si ces 2 chiffres sont séparé par un . pas de soucis. (ce sont les seuls caractères que j'ai pu testé). Si il n'y a qu'un seul chiffre/nombre aucun problème.

 

Version de PrestaShop 1.6.1.7

Nom du thème utilisé default-bootstrap

 

Les 2 dernières mises à jour effectué dans les 15 derniers jours : module Paypal et Prestashop en 1.6.1.7.

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

Je m'occupe d'une boutique où la plupart des produits ont une URL simplifiée comportant deux nombres à la fin, séparés par un tiret, et il n'y a aucun problème. Quels sont vos paramètres de route (Paramètres > SEO & URLs) ? Dans mon cas, il s'agit du paramètre par défaut : {id}-{rewrite}{-:ean13}.html

Link to comment
Share on other sites

Le problème vient effectivement de la route. Il n'y a pas de "/" derrière le manufacturer, et donc l'id ne peut pas être identifié.

 

L'expression régulière utilisée sur votre boutique : "#^/(([_a-zA-Z0-9-\pL]*)/)?([_a-zA-Z0-9-\pL]*)\-(?P<id_product>[0-9]+)\-([_a-zA-Z0-9\pL\pS-]*)\.html$#u".

 

La partie du manufacturer, en gras, englobe l'ID du produit (en rouge).

 

Exemple de résultats d'un preg_match avec l'URL "/fruits/andros-1-yaourt-2-3.html" :

 

0 => string '/fruits/andros-1-yaourt-2-3.html' (length=32)

1 => string 'fruits/' (length=7)

2 => string 'fruits' (length=6)

3 => string 'andros-1-yaourt' (length=15)

'id_product' => string '2' (length=1)

4 => string '2' (length=1)

5 => string '3' (length=1)

  • Like 1
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...