Jump to content

url rewritting stores - mauvais affichage dans la barre d'adresse


Recommended Posts

Bonjour à tous,

 

Je travaille actuellement sur prestashop 1.4.8.2.

 

Mon objectif est d'utiliser l'url rewritting afin d'avoir un meilleur référencement au niveau des différentes boutiques que nous possédons.

 

Pour cela, j'ai donc ajouté quelques lignes de le fichier .htaccess.

 

A priori, la redirection fonctionne bien mais il y a un petit problème au niveau de la barre d'adresse : en effet, quand je tape l'url monsite.fr/fr/magasins/8/France je suis bien redirigé vers la bonne page mais l'url affiché dans la barre d'adresse est : monsite.fr/fr/magasins?id_pays=8&name_country=France

 

En cherchant sur le net, les seuls cas similaires au miens étaient dus au fait que l'adresse était donné en chemin absolu, ce qui n'est pas mon cas.

 

J'ai noté également un autre comportement étrange, en commentant la ligne :

RewriteRule ^fr/magasins$ /stores.php?isolang=fr [QSA,L]

qui existe de base, ma règle de réécriture ne fonctionne plus.

 

Voici le contenu de mon fichier .htacces :

 

<IfModule mod_rewrite.c>
# URL rewriting module activation
RewriteEngine on

# URL rewriting rules
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 ^([a-z]{2})/[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$2&isolang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$2&isolang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$2&isolang=$1&noredirect=1 [QSA,L]
RewriteRule ^([a-z]{2})/([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$2&isolang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/content/([0-9]+)\-[a-zA-Z0-9-]* /cms.php?isolang=$1&id_cms=$2 [QSA,L]
RewriteRule ^([a-z]{2})/content/category/([0-9]+)\-[a-zA-Z0-9-]* /cms.php?isolang=$1&id_cms_category=$2 [QSA,L]
RewriteRule ^([a-z]{2})/([0-9]+)__[a-zA-Z0-9-]* /supplier.php?isolang=$1&id_supplier=$2 [QSA,L]
RewriteRule ^([a-z]{2})/([0-9]+)_[a-zA-Z0-9-]* /manufacturer.php?isolang=$1&id_manufacturer=$2 [QSA,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 ^en/address$ /address.php?isolang=en [QSA,L]
RewriteRule ^en/addresses$ /addresses.php?isolang=en [QSA,L]
RewriteRule ^en/authentication$ /authentication.php?isolang=en [QSA,L]
RewriteRule ^en/the-brand$ /brand.php?isolang=en [QSA,L]
RewriteRule ^en/cart$ /cart.php?isolang=en [QSA,L]
RewriteRule ^en/contact-us$ /contact-form.php?isolang=en [QSA,L]
RewriteRule ^en/discount$ /discount.php?isolang=en [QSA,L]
RewriteRule ^en/guest-tracking$ /guest-tracking.php?isolang=en [QSA,L]
RewriteRule ^en/order-history$ /history.php?isolang=en [QSA,L]
RewriteRule ^en/identity$ /identity.php?isolang=en [QSA,L]
RewriteRule ^en/my-account$ /my-account.php?isolang=en [QSA,L]
RewriteRule ^en/bobbiesorder$ /order.php?isolang=en [QSA,L]
RewriteRule ^en/order-follow$ /order-follow.php?isolang=en [QSA,L]
RewriteRule ^en/quick-order$ /order-opc.php?isolang=en [QSA,L]
RewriteRule ^en/order-slip$ /order-slip.php?isolang=en [QSA,L]
RewriteRule ^en/forgot-password$ /password.php?isolang=en [QSA,L]
RewriteRule ^en/search$ /search.php?isolang=en [QSA,L]
RewriteRule ^en/stores$ /stores.php?isolang=en [QSA,L]
RewriteRule ^en$ /en/ [QSA,L]
RewriteRule ^en/([^?&]*)$ /$1?isolang=en [QSA,L]
RewriteRule ^fr/adresse$ /address.php?isolang=fr [QSA,L]
RewriteRule ^fr/adresses$ /addresses.php?isolang=fr [QSA,L]
RewriteRule ^fr/authentication$ /authentication.php?isolang=fr [QSA,L]
RewriteRule ^fr/la-marque$ /brand.php?isolang=fr [QSA,L]
RewriteRule ^fr/panier$ /cart.php?isolang=fr [QSA,L]
RewriteRule ^fr/contactez-nous$ /contact-form.php?isolang=fr [QSA,L]
RewriteRule ^fr/bons-de-reduction$ /discount.php?isolang=fr [QSA,L]
RewriteRule ^fr/suivi-commande-invite$ /guest-tracking.php?isolang=fr [QSA,L]
RewriteRule ^fr/historique-des-commandes$ /history.php?isolang=fr [QSA,L]
RewriteRule ^fr/identite$ /identity.php?isolang=fr [QSA,L]
RewriteRule ^fr/mon-compte$ /my-account.php?isolang=fr [QSA,L]
RewriteRule ^fr/bobbiesorder$ /order.php?isolang=fr [QSA,L]
RewriteRule ^fr/details-de-la-commande$ /order-follow.php?isolang=fr [QSA,L]
RewriteRule ^fr/commande-rapide$ /order-opc.php?isolang=fr [QSA,L]
RewriteRule ^fr/avoirs$ /order-slip.php?isolang=fr [QSA,L]
RewriteRule ^fr/mot-de-passe-oublie$ /password.php?isolang=fr [QSA,L]
RewriteRule ^fr/recherche$ /search.php?isolang=fr [QSA,L]

RewriteRule ^fr/magasins/([0-9]+)/(.*)$ /stores.php?isolang=fr&id_pays=$1&name_country=$2 [QSA,L]
RewriteRule ^fr/magasins$ /stores.php?isolang=fr [QSA,L]

RewriteRule ^fr$ /fr/ [QSA,L]
RewriteRule ^fr/([^?&]*)$ /$1?isolang=fr [QSA,L]

</IfModule>

# Catch 404 errors
ErrorDocument 404 /404.php

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
</IfModule>

FileETag INode MTime Size
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

 

Les lignes concernant les règles posant problèmes se situent quelques lignes au-dessus du "# catch 404 errors".

 

Merci à tous pour votre aide

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

Mon problème est en fait lié à la gestion des url canoniques. Quand je désactive la redirection vers l'url canonique, je n'ai plus de problème, la barre d'adresse m'indique bien l'url renseignée dans le fichier .htaccess

 

Cependant, je trouve cela plutôt gênant de devoir décoché cette option, quelqu'un aurait-il une idée ? Je pense qu'il doit y avoir une classe ou un controller à surcharger, mais je ne sais pas vraiment où chercher...

Link to comment
Share on other sites

[MODERATION] Sujet déplacé

 

motif : cela concerne plus la configuration de la boutique que plutôt une problématique dans le domaine du positionnement de votre boutique. Je déplace donc le sujet sur "Configuration et Installation de Prestashop". Vous aurez plus de chance d'avoir des réponses.

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