Jump to content

[Résolu] Problème URL rewriting CMS et doublement terme /content


Recommended Posts

Lorsque je suis sur ma page d'acceuil et que je clique vers une page cms de mon footer cela fonctionne.


Mais quand je suis sur une page cms et que je clique vers une autre page CMS de mon footer, j'ai content/ qui ce rajoute dans l'URL et cela me donne monsite/content/content/1-qui-sommes-nous par exemple au lieu de monsite/content/1-qui-sommes-nous, monsite/content/4-mentions-legales


J'ai lu beaucoup de solutions concernant les problèmes de rewriting d'URL au niveau des CMS dans le footer mais rien n'a marché dans mon cas.


Est-ce que cela vient de mon fichier .htaccess ?? 


En voici une copie.


 


Merci pour votre aide.


 


# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution


 

<IfModule mod_rewrite.c>

<IfModule mod_env.c>

SetEnv HTTP_MOD_REWRITE On

</IfModule>

 

RewriteEngine on

RewriteRule . - [E=REWRITEBASE:/bg_photodart/]

RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

 

# Images

RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]

RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]

RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]

RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]

RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]

RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$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])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]

RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]

RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]

RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]

# AlphaImageLoader for IE and fancybox

RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

 

# Dispatcher

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]

</IfModule>

 

AddType application/vnd.ms-fontobject .eot

AddType font/ttf .ttf

AddType font/otf .otf

AddType application/x-font-woff .woff

 

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

ExpiresByType image/svg+xml "access plus 1 year"

ExpiresByType image/vnd.microsoft.icon "access plus 1 year"

ExpiresByType application/font-woff "access plus 1 year"

ExpiresByType application/x-font-woff "access plus 1 year"

ExpiresByType application/vnd.ms-fontobject "access plus 1 year"

ExpiresByType font/opentype "access plus 1 year"

ExpiresByType font/ttf "access plus 1 year"

ExpiresByType font/otf "access plus 1 year"

ExpiresByType application/x-font-ttf "access plus 1 year"

ExpiresByType application/x-font-otf "access plus 1 year"

</IfModule>

 

FileETag INode MTime Size

<IfModule mod_deflate.c>

<IfModule mod_filter.c>

AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript

</IfModule>

</IfModule>

 

#If rewrite mod isn't enabled

ErrorDocument 404 /bg_photodart/index.php?controller=404

 

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

 

# start ~ module watermark section

Options +FollowSymLinks

RewriteEngine On

 

RewriteRule [0-9/]+/[0-9]+\.jpg$ - [F]

# end ~ module watermark section

 


 


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

J'ai essayé votre solution Mathieu mais rien n'y fait. J'ai désactivé l'url rewriting et réactivé, vidé le cache. 

Du coup, pour que ça marche j'ai repassé toutes les url de mon footer sous la forme (je suis en local) http://localhost/monsite/index.php?id_cms=6&controller=cms&live_configurator........

Mais ce n'est pas une solution durable, je voudrais que mes url soient "propres".

J'utilise le module de footer Prestacrea - Footer Custom v3.3

 
Link to comment
Share on other sites

J'ai trouvé la solution à mon problème grâce au forum !

Petit récap : je suis sur Prestashop 1.6.0.5 et j'ai le module Prestacrea - Footer Custom pour mon footer.

Lorsque je paramétrais les url des liens de mon footer avec l'URL rewriting et les URL simplifiées, les liens de mon footer ne marchaient pas entre eux : 

"Lorsque je suis sur ma page d'acceuil et que je clique vers une page cms de mon footer cela fonctionne.

Mais quand je suis sur une page cms et que je clique vers une autre page CMS de mon footer, j'ai content/ qui ce rajoute dans l'URL et cela me donne monsite/content/content/1-qui-sommes-nous par exemple au lieu de monsite/content/1-qui-sommes-nous, monsite/content/4-mentions-legales".

Grâce à Floody, membre du forum, j'ai modifié, d'un côté, dans SEO&URL > Format des URL > Route vers les pages CMS le modèle de route, à savoir : content/{id}-{rewrite} en {rewrite}-{id}.

D'un autre côté, dans le module Prestacrea - Footer Custom, les URL de mes liens suivent le modèle index.php?id_cms="numéro de votre CMS"&controller=cms.

Ainsi, plus de problème de "content" qui vient se rajouter dans l'URL lorsque je clique d'une page CMS vers une autre page CMS de mon footer.

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Avez vous essayé d'accéder au lien CMS depuis l'index ? Car sans le "content/" vous risquez d'être redirigé vers une catégorie qui porte le même ID.

 

Un exemple :

- J'ai une catégorie "T-shirt" qui a pour URL simplifié "tshirt" et l'ID numéro 5.

- J'ai une page CMS "Livraison" qui a pour URL simplifié "livraison" et l'ID numéro 5.

 

Ce qui donne dans l'URL

5-tshirt

et 5-livraison

 

La catégorie étant prioritaire, c'est elle qui s'affichera et non la page CMS.

 

La bonne solution, comme vous le dites, est uniquement de mettre les liens CMS sous cette forme :

index.php?id_cms=5&controller=cms

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