Jump to content

Bug de "URL rewrite" avec les images "défaut"


Recommended Posts

Bonjour

 

j'ai remarqué des erreurs Apache sur mon serveur dédié, pour des tentatives d'accès à des images "défaut". Par exemple dans le log Apache j'ai des choses comme suite:

 

File does not exist: /var/www/fr-default-home
File does not exist: /var/www/fr-default-medium

 

Et j'ai effectivement du coup un beau "point d'interrogation" sur mes produits sans image par défaut... et pour cause, le chemin HTTP d'accès à l'image est mauvais

 

Dans le code source des pages, j'ai (à noter que j'ai enlevé le "http://" qui précède ces adresses sur mon copier/coller ci dessous) :

Il est évident que le premier chemin n'est pas le bon pour trouver les images par défaut (qui sont bien dans img/p/)... ces erreurs n'apparaissent que lorsque j'active la fonction "URL simplifiée" (je suis sous Prestashop 1.4.5.1).

 

 

 

 

Le fait de cocher/décocher dans Préférence/Générateur l'option "URLs simplifiées" fait apparaitre/disparaitre le problème.

 

Quelqu'un sait-il où est le bug ? :)

 

Voila ce qui est ajouté dans le .htaccess par le back office de prestashop - je ne sais pas si l'URL rewrite a un impact quelque part ailleurs dans le coeur de prestashop:

 

RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$1$2.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$ /img/c/$1.jpg [L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 [QSA,L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L]
RewriteRule ^content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L]
RewriteRule ^page-non-trouvee$ /404.php [QSA,L]
RewriteRule ^adresse$ /address.php [QSA,L]
RewriteRule ^adresses$ /addresses.php [QSA,L]
RewriteRule ^authentification$ /authentication.php [QSA,L]
RewriteRule ^meilleures-ventes$ /best-sales.php [QSA,L]
RewriteRule ^panier$ /cart.php [QSA,L]
RewriteRule ^contactez-nous$ /contact-form.php [QSA,L]
RewriteRule ^bons-de-reduction$ /discount.php [QSA,L]
RewriteRule ^suivi-commande-invite$ /guest-tracking.php [QSA,L]
RewriteRule ^historique-des-commandes$ /history.php [QSA,L]
RewriteRule ^identite$ /identity.php [QSA,L]
RewriteRule ^fabricants$ /manufacturer.php [QSA,L]
RewriteRule ^mon-compte$ /my-account.php [QSA,L]
RewriteRule ^nouveaux-produits$ /new-products.php [QSA,L]
RewriteRule ^commande$ /order.php [QSA,L]
RewriteRule ^details-de-la-commande$ /order-follow.php [QSA,L]
RewriteRule ^commande-rapide$ /order-opc.php [QSA,L]
RewriteRule ^avoirs$ /order-slip.php [QSA,L]
RewriteRule ^mot-de-passe-oublie$ /password.php [QSA,L]
RewriteRule ^promotions$ /prices-drop.php [QSA,L]
RewriteRule ^recherche$ /search.php [QSA,L]
RewriteRule ^plan-du-site$ /sitemap.php [QSA,L]
RewriteRule ^magasins$ /stores.php [QSA,L]
RewriteRule ^fournisseurs$ /supplier.php [QSA,L]

 

Merci pour tout coup de main !

Link to comment
Share on other sites

Bonjour

 

je précise mon soucis : les points d'interrogation apparaissent avec les produits qui n'ont pas d'image définie:

- le point d'interrogation (mauvais chemin) est affiché dans le product-list (chemin image : http://mondomaine.fr...able-17patc.jpg - en fait si je met ce chemin direct dans mon explorateur je suis redirigé vers http://mondomaine.fr/img/404.gif, qui n'existe pas => Firefow affiche un "?")

- par contre la fiche produit affiche bien elle l'image par défaut (http://mondomaine.fr/img/p/fr-default-large.jpg)

 

Une piste ??

 

Merci

Matt

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Ça semble être un bug dans classes/Link.php et je suppose que c'est un bug connu.

 

La manière la plus simple de réparer ce problème a été de rajouter la ligne suivante dans la boite "configuration spécifique" dans l'onglet de génération du .htaccess.

 

RewriteRule ^([a-z]{2}-default-[a-z]+)/.*\.jpg$ /img/p/$1.jpg [L]

 

--

 

Seems to be a bug in classes/Link.php, most likely they already know about this too.

 

The easiest way I found to fix it is to add this line into the "specific configuration" .htaccess entries that are automatically added to the file..

 

 

RewriteRule ^([a-z]{2}-default-[a-z]+)/.*\.jpg$ /img/p/$1.jpg [L]

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...
  • 2 years later...
  • 6 months later...

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