Jump to content

[Tools] URL Rewriting + (MAJ 1.2)


Recommended Posts

Oups j'ai été un peu vite, j'ai installé le module.. j'ai généré le htaccess.. j'ai remplacé le link.php

Depuis... erreur 500

--> je remet mon ancien htaccess

Site page blanche / admin erreur 500

euh je dois faire quoi ... ???

Share this post


Link to post
Share on other sites
  • 2 weeks later...
  • 4 weeks later...

Iam also interested in this.
Got it to work, partially, on 1.2.5 and 1.3 alpha, some more functions in link.php need to be updated. Also, category images were broken.

Share this post


Link to post
Share on other sites
  • 2 weeks later...
Bonjour,

Voici une nouvelle version comprenant la gestion pour les cms, fournisseurs et fabricants.
Compatibilité : 1.2.5

Fichiers joints
Link.php (Taille du fichier : 17KB - Téléchargements : 18)
urlrewritingplus-1.2.5.zip (Taille du fichier : 13KB - Téléchargements : 35)


Bonjour,

tout d'abord merci à Pierre-Yves pour ce module, qui je pense sera incontournable pour un bon référencement, et à Fugu Design pour l'adjonction de fonctionnalités ainsi qu'aux autres membres ayant participé à l'évolution de celui-ci.

Pour ma part j'utilise le module " urlrewritingplus-1.2.zip " mais il m'est impossible d'utiliser la dernière version " urlrewritingplus-1.2.5.zip "

voila l'erreur qui m'est reportée:
error: syntax error, unexpected T_DNUMBER in C:\xampp\htdocs\prestashop\classes\Module.php(323) : eval()'d code on line 13
Erreur(s) de parsing dans le(s) module(s)
urlrewritingplus.

Comment arriver à l'intaller sans obtenir ce type d'erreur ?

merci pour votre aide

Pascal

Share this post


Link to post
Share on other sites

Ca y est j'ai trouvé l'erreur.
J'ai mis à jour le zip en page 7.

Il te suffit de changer la ligne 13 du fichier urlrewritingplus.php

$this->version = 1.2.5;


en

$this->version = '1.2.5';



Après ça, ça devrait fonctionner normalement.

Share this post


Link to post
Share on other sites

Merci pour ta recherche et pour ta rapidité, çà fonctionne maintenant ! ;-)

Néanmoins j'ai un petit soucis avec le menu Mega Drown Edition Deluxe v1.2, mes catégories et sous catégories sont toujours précédées de leur ID respectif dans la barre d'adresse du navigateur, de quoi cela pourrait il provenir ?

Share this post


Link to post
Share on other sites

Désolé, mais je n'ai pas ce module, et étant donné qu'il est payant.... je ne peux pas trop t'aider.
Regarde du côté de la génération des urls des liens. Normalement ça doit donner un truc comme ça :

$link = new Link();
$url = $link->getCategoryLink($id_category, $link_rewrite);


En gros il faut s'assurer qu'il fait bien appelle à la fonction "getCategoryLink" de la classe "Link".

Désolé de na pas pouvoir plus t'aider.

Share this post


Link to post
Share on other sites

Bonjour,

j'ai les mêmes problèmes qu'avec la version 1.2 : l'url n'inclus pas le répertoire de base.
Lorsque j'efface les règles, la page ne se réaffiche pas tant que je n'ai pas désinstaller et réinstallé le module.

Share this post


Link to post
Share on other sites

Bonjour,
Je ne suis pas sur de bien comprendre le problème, mais pour moi la démarche est celle-ci :
- copier le répertoire du module dans le répertoire "modules"
- remplacer le fichier "Link.php" dans le répertoire "classes"
- installer le module
- générer le htaccess de base (onglet : "outils" > "générateurs")
- copier le contenu du htaccess
- aller dans les les préférences du module
- coller ce contenu dans "Fichier .htaccess par défaut"
- enregistrer
- "Génerer toutes les règles automatiquement"

Normalement ça doit fonctionner.

Share this post


Link to post
Share on other sites

Bonjour,
merci pour les instructions. J'ai bien respecté toute la procédure.

Cependant j'ai ce message d'erreur avec le front office : HTTP - 503 Service Unavailable
Par ailleurs, dans le back office, depuis la page module, si je clique pour configurer le module, le formulaire ne se charge pas.

Quand je disais que l’url n’inclus pas le répertoire de base, si on considère le site http://www.site.com/prestashop/,'>http://www.site.com/prestashop/, le répertoire prestashop n'est pas inclus sur le formulaire du module dans les règles. Dans mon cas, toutes les catégories pointent sur http://www.site.com/ lorsque les règles sont réécrites.
Pour info, je teste ce module sur la version 1.3.0.2 de prestashop hébergée chez siteground.
J'espère avoir été plus clair!

Share this post


Link to post
Share on other sites

Ah j'avais pas lu non plus que c'était la version 1.3 qui était utilisée.
Je n'ai pas testé ce module sur cette version, comme c'était précisé : compatibilité 1.2.5
Désolé, cela viendra probablement avec le temps...

Share this post


Link to post
Share on other sites

J'ai retenté sur une version propre et neuve de prestashop 1.3.0.2, le site marche. Par contre je ne peux toujours pas accéder à la page de conf du module après l'avoir quitté. Sauf si je réinstalle le module.

Et si je désactive la boutique, au lieu d'avoir le message expliquant que le site est fermé à la navigation, j'ai une erreur 503

Share this post


Link to post
Share on other sites

Bonjour,

Meme soucis sur la 1.2.5 si l'on supprimer certaines règles d'écritures, une fois enregistre, le paramétrage du module disparait dans la BO, seul moyen d'y reaccéder est de désinstaller et réinstaller.
En ce qui me concerne, j'ai les images des catégories qui disparaissent a l'exception de la catégorie 1.

problème image résolu en utilisant le fichier link.php original, donc ti soucis dans ton link.php
toujours pas regle le probleme avec la BO

Share this post


Link to post
Share on other sites
  • 5 weeks later...

Salut à tous,

Je teste en ce moment sur 1.2.5:

téléchargement dans classes de Link.php
téléchargement dans /modules de /modules/urlrewritingplus

Dans le BO lorsque je vais cliquer sur "Modules" ,j'arrive à installer et configurer apparemment, mais j'ai trois lignes de message en entête de mon écran module :

Warning: Call-time pass-by-reference has been deprecated in C:\wamp\www\tableaux-provence\classes\Module.php(325) : eval()'d code
sur les lignes ci-dessous:
on line 314
on line 338
on line 382

Lesdites lignes contenant getUrlForPathCategory

Est ce un problème lié à ma config ou pas???

---------------
RECTIFICATION : ceci venait du fait que mon test était effectué en local

Cependant en ligne j'ai également de nombreux problèmes: J'arrive à générer en automatique, cependant mes anciennes url déjà indexé par GG comporte un n° de catégorie. Et dès que j'essaye de créer des règles ça plante.
Je suis donc à l'écoute de l'évolution du module et je félicites son auteur pour le travail déjà accompli.

Cordialement

Share this post


Link to post
Share on other sites
  • 2 weeks later...

Bonjour à tous,

Tout d'abord merci beaucoup pour ce module et tout le travail qu'il a du vous demandé.

Je me permet de solliciter votre aide car je n'arrive pas à le faire fonctionner (je dois être un peu blonde désolé).

J'ai pourtant suivi la procédure:
1) J'ai installé et activé le module (dans le repertoire module et le fichier link.php dans le repertoire class)
2) J'ai copié mon htaccess dans le champs prévu à cet effet dans le module.
3) J'ai cliqué sur "générer toutes les règles automatiquement".

Tout a bien fonctionné jusqu'ici, ma boutique marche encore mais cependant cela n'a rien changé à mon site (les liens sont toujours les même). Et quand j'essaie de tapper une URL d'une rubrique (monsite.com/stylos/ qui est censé pointer vers monsite.com/category.php?id_category=5) j'ai la page d'erreur suivante:

Not Found
The requested URL /kunden/homepages/34/d322431737/htdocs/category.php was not found on this server.

Additionally, a 301 Moved Permanently error was encountered while trying to use an ErrorDocument to handle the request.


Ce serait adorable si quelqu'un pouvait me venir en aide...

A bientôt et merci encore!

Pour info le site est hébérgé chez 1and1 et j'utilise Prestashop 1.2.5 (et c'est ma première boutique prestashop donc je suis un peu nullos ;) )

Share this post


Link to post
Share on other sites
  • 1 month later...

La structure des URLs est magnifique, en revanche il y a deux bémols.

Le premier, c'est que les urls générées sont générées pour une seule langue, si vous avez votre site en anglais, vous aurez les urls réécrites en français (ou inversement).

Deuxième point, la méthode de réécriture consiste a réécrire chaque URL une à une, cela permet certes d'avoir de belles URLs en revanche, le .htaccess risque de sérieusement s'alourdir.

Conclusion, j'adopte ce module sans hésitation dans le cadre d'un petit site de vente en ligne et en une seule langue.

Si le concepteur trouve le moyen de corriger ces deux points, il aura vraiment réalisé un module incontournable.

Share this post


Link to post
Share on other sites
  • 2 weeks later...

Bonjour,

Mêmes constatations que celles faites ces dernières semaines:
Sur la version 1.3, une fois enregistrées les règles d‘écritures des urls, le module disparait dans le BO, et le seul moyen d’y reaccéder est de désinstaller et réinstaller et de recommencer tout le processus. C'est un problème car il faut rerentrer le .htaccess

Une idée pour éviter de devoir réinstaller le module à chaque fois ?

Share this post


Link to post
Share on other sites

Coucou !

Je débute sur Prestashop et tout d'abord, merci pour ce module génialissime.

Je rencontre le même problème sur PS 1.3.1 : je ne peux pas accéder au module après avoir enregistré.

J'ai désinstallé puis réinstallé le module, puis j'ai rewrité mes catégories.

Après cela, j'ai rewrité mes pages CMS... et au moment de valider la réécriture de l'URL ma première page CMS, c'est là que j'ai eu le "module blanc".

Donc je pense que le souci pourrait peut-être venir de là.

Merci à tous !

Share this post


Link to post
Share on other sites
  • 1 month later...
  • 2 weeks later...
  • 2 months later...

Bonjour

Merci pour à Pierre-Yves pour son Module et à Fugu Design pour son add on

Pour les produit pas de problème ça fonctionne très bien !

Ceci dit j'ai un problème mes liens dans la partie bloc "informations" qui ne fonctionne plus quand je clique dessus ! j'ai un
beau

"Not Found The requested URL /content/16-lexique-detecteur-de-metaux was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

impossible de trouver la page des liens

comment arranger ça ? j'ai cliquer sur le bouton générer toutes les règles automatiquement comment proceder pour les liens cms du bloc "informations" ?

Share this post


Link to post
Share on other sites
  • 3 months later...
  • 2 weeks later...

Bonjour

je suis très contente de ce module, mais là depuis hier, une erreur 500 apparaît dans l'admin lorsque je souhaite créer les règles pour tous les produits...

pour les catégories pas de soucis, pour générer le .htaccess, pas de soucis,
c'est vraiment la fonctionnalité "Créer les règles pour tous les produits"

j'arrive à 230 produits
et pour info j'ai augmenté les valeurs

max_upload_file_size passé de 2 à 8
max_execution_time passé de 30 à 180 sec

Merci pour vos lumières !

Share this post


Link to post
Share on other sites
  • 1 month later...

Is possible to use it with PS 1.4? I tried, link is generated without ID category..but i got Error 404 if i try display this page.

.Htacces looks



# URL rewriting module activation
RewriteEngine on

# URL rewriting rules
RewriteRule ^cs/([^?&]*) /$1?isolang=cs [QSA,L]
RewriteRule ^cs/horrory$ category.php?id_category=6 [QSA,L,E]


# Catch 404 errors
ErrorDocument 404 /404.php


   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"


FileETag INode MTime Size

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

Share this post


Link to post
Share on other sites
  • 1 month later...

Bonsoir,

je viens de découvrir cette discussion !
je viens de m'apercevoir que mes urls ont la meme adresse ! en fait j'ai crée un produit que j'ai dupliquer afin de remplir mon site de mes produits sauf qu'ils ont la meme url mais avec l'id qui change !

Ce module va t il marcher pour moi ? ne vais je pas avoir des erreurs ?

tout mes titre sont faite de cette manière exemple

timbre poste saint exupéry - enveloppe
timbre poste la joconde - enveloppe

cela peut il etre nefaste pour mon réferencement ?

j'ai besoin de votre aide svp

ùerci

Share this post


Link to post
Share on other sites
  • 1 month later...

Bonjour,

Mes réécritures d'url marchent bien avec ce module urlrewritingplus. J'ai modifié le code dans Link.php comme indiqué par Pierre-Yves dans le post #6 mais depuis, il y a un bug que je n'arrive pas à régler : pour changer le statut d'une commande dans le BO, ça me met "objet impossible à charger".
J'ai une solution provisoire mais fastidieuse... il faut à chaque fois que j'uploade un htaccess en enlevant "RewriteEngine on" et re-uploader le bon ensuite juste après avoir changé le statut de la commande...
Je tourne sur prestashop 1.3.7.

Quelqu'un aurait t'il une solution ?
Merci !

Share this post


Link to post
Share on other sites
  • 2 months later...

Bonjour,

 

----@Pierre Yves......

A vous qui maitrisez url rewriting, je fais appel à vos lumières...

Dans "Sites affluents", j'ai ajouté un compte "Pierre-Yves" à qui j'attribut une commission de 10% et à qui j'ai fourni l'url http://www.monsite.com/prestashop/index.php?ref=pierreyves

Dans HTTP referer Inclure, je met %monsite.com%

Dans REQUEST URI Inclue, je met %ref=pierreyves%

D'abord, est-ce que l'url donnée à Pierre Yves est bonne ? J'ai lu par rapport à Google analytics qu'on pouvait monter une URL bien plus précise du genre http://www.monsite.com/prestashop/index.php?utm_source=pierreyves&utm_medium=link&utm_campaign=friend. Laquelle choisir ?

Ensuite, j'aimerai pouvoir avoir une url du style http://www.monsite.com/pierreyves mais j'ai beau le tester dans tous les sens, je n'arrive pas à trouver la bonne combinaison pour l'inclure dans mon htaccess.

Auriez-vous l'extrême gentillesse de m'éclairer ?????

Share this post


Link to post
Share on other sites

Hello,

 

Concernant mon précédent post, pour ceux qui auraient le même problème que moi, j'ai trouvé une solution: remplacer dans la partie du code modifiée (voir post#7) _PS_USE_SSL_ par _PS_BASE_URL_

Je n'ai depuis plus jamais eu de problème au niveau du BO avec l'Urlrewriting activé.

Share this post


Link to post
Share on other sites
  • 1 month later...
  • 2 months later...
  • 1 month later...
  • 4 weeks later...

Bonjour,

 

Vu que j'ai du le développer pour un client (et que ce module est pas une demande spécifique au client), je me suis dis que je pourrais le partager afin d'en faire profiter la communauté.

 

Ce module permet donc une gestion manuelle de l'URL Rewriting.

 

Exemple :

www.monsite.com/apn/

=> Renvoit vers la categorie des appareils photos numériques

www.monsite.com/apn/Kodak-3000-plus.html

=> Renvoit vers le produit Kodak 3000 plus

 

Ce qui permet d'avoir une gestion des URL différentes de celles actuelles où l'identifiant est présent.

 

Todo : (choses prévues dans les prochaines versions)

- Gestion des Fabricants

- Gestion des Fournisseurs

- Génération automatique pour les Fabricants / Fournisseurs

- Changement des liens présents sur les pages

- Ajout de langues

 

NB :

Actuellement le module ne change aucuns liens! Il n'ajoute en fait que de nouvelles URL pour accéder à vos produits et catégories. Les liens dans les pages restent donc inchangés! (ça viendra dans les prochaines versions)

 

Infos :

N'hésitez pas à me donner vos avis et problèmes s'il y en a.

Le modules est livré sans les pages de langues, mais a été développé en français.

 

Notes :

1.2

+ Génération automatique des URLs pour les catégories

+ Génération automatique des URLs pour les produits

* Correction d'un bug d'accès aux URLs des catégories

1.1

* Correction d'un bug

1.0

+ Version de base

OK AND AFTER I PRESS

what should i do after this because i see only a long list with fresh links and nothing more .... nothing in .htaccess no change ... i`m sorry is a big change ... my wesite is dead no all links are DEAD

Share this post


Link to post
Share on other sites

Bonjour,

 

Vu que j'ai du le développer pour un client (et que ce module est pas une demande spécifique au client), je me suis dis que je pourrais le partager afin d'en faire profiter la communauté.

 

Ce module permet donc une gestion manuelle de l'URL Rewriting.

 

Exemple :

www.monsite.com/apn/

=> Renvoit vers la categorie des appareils photos numériques

www.monsite.com/apn/Kodak-3000-plus.html

=> Renvoit vers le produit Kodak 3000 plus

 

Ce qui permet d'avoir une gestion des URL différentes de celles actuelles où l'identifiant est présent.

 

Todo : (choses prévues dans les prochaines versions)

- Gestion des Fabricants

- Gestion des Fournisseurs

- Génération automatique pour les Fabricants / Fournisseurs

- Changement des liens présents sur les pages

- Ajout de langues

 

NB :

Actuellement le module ne change aucuns liens! Il n'ajoute en fait que de nouvelles URL pour accéder à vos produits et catégories. Les liens dans les pages restent donc inchangés! (ça viendra dans les prochaines versions)

 

Infos :

N'hésitez pas à me donner vos avis et problèmes s'il y en a.

Le modules est livré sans les pages de langues, mais a été développé en français.

 

Notes :

1.2

+ Génération automatique des URLs pour les catégories

+ Génération automatique des URLs pour les produits

* Correction d'un bug d'accès aux URLs des catégories

1.1

* Correction d'un bug

1.0

+ Version de base

what`s the difference between 1.2 and 1_2 ??????????????????????

Share this post


Link to post
Share on other sites

Pour ceux qui voudraient changer tous les liens de leurs produits et catégories par les nouveaux liens qu'ils ont crée, voici une petite manipulation.

 

icone+attention.png Je ne met pas cette modif dans l'archive de base car elle modifie un fichier "CORE" de Prestashop (Je suis à la recherche d'une autre solution). Cependant elle fonctionne et n'affecte en aucun cas l'utilisation de prestashop.

 

Soit vous faites les modifications vous-même, soit vous prenez le fichier qui est en pièce jointe à ce post

 

Dans le fichier "classe/Link.php"

 

Remplacer :

 

 

Par :

 

 

Et remplacer :

 

 

Par :

i can use Link.php on PS1.4 ??????????????????????????

Share this post


Link to post
Share on other sites

Bonjour,

 

Vu que j'ai du le développer pour un client (et que ce module est pas une demande spécifique au client), je me suis dis que je pourrais le partager afin d'en faire profiter la communauté.

 

Ce module permet donc une gestion manuelle de l'URL Rewriting.

 

Exemple :

www.monsite.com/apn/

=> Renvoit vers la categorie des appareils photos numériques

www.monsite.com/apn/Kodak-3000-plus.html

=> Renvoit vers le produit Kodak 3000 plus

 

Ce qui permet d'avoir une gestion des URL différentes de celles actuelles où l'identifiant est présent.

 

Todo : (choses prévues dans les prochaines versions)

- Gestion des Fabricants

- Gestion des Fournisseurs

- Génération automatique pour les Fabricants / Fournisseurs

- Changement des liens présents sur les pages

- Ajout de langues

 

NB :

Actuellement le module ne change aucuns liens! Il n'ajoute en fait que de nouvelles URL pour accéder à vos produits et catégories. Les liens dans les pages restent donc inchangés! (ça viendra dans les prochaines versions)

 

Infos :

N'hésitez pas à me donner vos avis et problèmes s'il y en a.

Le modules est livré sans les pages de langues, mais a été développé en français.

 

Notes :

1.2

+ Génération automatique des URLs pour les catégories

+ Génération automatique des URLs pour les produits

* Correction d'un bug d'accès aux URLs des catégories

1.1

* Correction d'un bug

1.0

+ Version de base

whats the difference between

Share this post


Link to post
Share on other sites

Is possible to use it with PS 1.4? I tried, link is generated without ID category..but i got Error 404 if i try display this page.

 

.Htacces looks

 

 


# URL rewriting module activation
RewriteEngine on

# URL rewriting rules
RewriteRule ^cs/([^?&]*) /$1?isolang=cs [QSA,L]
RewriteRule ^cs/horrory$ category.php?id_category=6 [QSA,L,E]


# Catch 404 errors
ErrorDocument 404 /404.php


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"


FileETag INode MTime Size

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

HELLO ... work for you on PS 1.4 ?

Share this post


Link to post
Share on other sites

any chance this will work in 1.4?

SOLVED ... Remode Category ID from URL PrestaShop 1.4.7.0 ...

 

How To:

go to classes/Links.php search for

 

public function getCategoryLink($id_category, $alias = NULL, $id_lang = NULL)

{

if (is_object($id_category))

return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category->id).'-'.$id_category->link_rewrite) :

(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category->id));

if ($alias)

return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).(int)($id_category).'-'.$alias) :

(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category));

return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category);

 

AND REPLACE WITH

 

public function getCategoryLink($id_category, $alias = NULL, $id_lang = NULL)

{

if (is_object($id_category))

return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).$id_category->link_rewrite) :

(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category->id));

if ($alias)

return ($this->allow == 1) ? (_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)($id_lang)).$alias) :

(_PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category));

return _PS_BASE_URL_.__PS_BASE_URI__.'category.php?id_category='.(int)($id_category);

 

then edit .htaccess My EX.

 

# Remove Category ID from URL. by subulica

RewriteRule ^your-category$ /category.php?id_category=4 [QSA,L,E]

 

IMPORTANT

remove "$" from category name if you want to keep your old google results .. Try with and without

 

This in an example only fo ra single category

 

If you want to move faster with your categories in .htaccess use urlrewriting + 1.2 to generate .htaccess and edit from there is more easy

 

 

 

NOW LETS SEARCH FOR Product ID

Share this post


Link to post
Share on other sites
  • 3 months later...

Bonjour à tous,

 

J'ai installé sans soucis le module URL Rewriting + qui me parait tout à fait fonctionnel ( PS 1.4.8.2 ); Réalisant une migration de site ( c'est pour cela que j'utilise ce module en fait ); j'aimerai supprimer les /fr/.. pour la langue Français. ( mais bien sur conserver /en/ par exemple pour l'anglais )

 

ex :

accueil :

  • www.monsite.com
  • www.monsite.com/en

Catégorie :

  • www.monsite.com/maCategorie
  • www.monsite.com/en/maCategorie

J'ai tenté un "mix" avec ce tuto : ( http://www.magavenue.com/blog/prestashop/supprimer-sous-dossier-fr-prestashop-14?p=938&cp=1#comments ) et en modifiant un peu le code du module URL Rewriting + ( afin de supprimer le fr/ dans le cache URL Rewriting + ) ...

 

Cela fonctionne à moitié ( les URL sont bien "calculées" dans le cache, et s'affiche correctement sur le site ).. mais quand on clique sur le changement de langue il ne se passe rien .. et on reste sur la page Française...

 

Si quelqu'un l'a déja fait; ou a une piste .. ça serait super.

 

Merci.

Share this post


Link to post
Share on other sites

J'ai finalement trouvé la solution afin de supprimer le "/fr" dans les URL conjointement à l'utilisation du module URL Rewriting + .

 

dans classes/FrontControler.php il faut remplacer

 

// Switch language if needed and init cookie language
if ($iso = Tools::getValue('isolang') AND Validate::isLanguageIsoCode($iso) AND ($id_lang = (int)(Language::getIdByIso($iso))))
$_GET['id_lang'] = $id_lang;

par

 

// Switch language if needed and init cookie language
if ($iso = Tools::getValue('isolang') AND Validate::isLanguageIsoCode($iso) AND ($id_lang = (int)(Language::getIdByIso($iso))))
$_GET['id_lang'] = $id_lang;
else
$_GET['id_lang'] = (int)(Language::getIdByIso('fr')); 

 

Cela afin d'informer Prestashop que si il n'y a pas de lang dans l'URL, alors nous sommes en Français.

 

Ensuite, il faut modifier le fichier htaccess ( pour rediriger les pages sans /fr ); pour cela on modifie le générateur dans classes/Tools.php

 

On remplace

 

 

foreach (Meta::getMetasByIdLang($language['id_lang']) as $key => $meta)
if (!empty($meta['url_rewrite']) AND Validate::isLinkRewrite($meta['url_rewrite']))
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/'.$meta['url_rewrite'].'$'] = $meta['page'].'.php?isolang='.$language['iso_code'].' [QSA,L]';
elseif (array_key_exists($key, $default_meta) && $default_meta[$key]['url_rewrite'] != '')
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/'.$default_meta[$key]['url_rewrite'].'$'] = $default_meta[$key]['page'].'.php?isolang='.$language['iso_code'].' [QSA,L]';
$tab['RewriteRule']['content']['^'.$language['iso_code'].'$'] = $language['iso_code'].'/ [QSA,L]';
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/([^?&]*)$'] = '$1?isolang='.$language['iso_code'].' [QSA,L]';

 

Par

 

 

 




if($language['iso_code'] == 'fr')
{
foreach (Meta::getMetasByIdLang($language['id_lang']) as $key => $meta)
if (!empty($meta['url_rewrite']) AND Validate::isLinkRewrite($meta['url_rewrite']))
$tab['RewriteRule']['content']['^'.$meta['url_rewrite'].'$'] = $meta['page'].'.php?isolang='.$language['iso_code'].' [QSA,L170873]';
elseif (array_key_exists($key, $default_meta) && $default_meta[$key]['url_rewrite'] != '')
$tab['RewriteRule']['content']['^'.$default_meta[$key]['url_rewrite'].'$'] = $default_meta[$key]['page'].'.php?isolang='.$language['iso_code'].' [QSA,L170873]'; 
}
else
{
foreach (Meta::getMetasByIdLang($language['id_lang']) as $key => $meta)
if (!empty($meta['url_rewrite']) AND Validate::isLinkRewrite($meta['url_rewrite']))
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/'.$meta['url_rewrite'].'$'] = $meta['page'].'.php?isolang='.$language['iso_code'].' [QSA,L]';
elseif (array_key_exists($key, $default_meta) && $default_meta[$key]['url_rewrite'] != '')
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/'.$default_meta[$key]['url_rewrite'].'$'] = $default_meta[$key]['page'].'.php?isolang='.$language['iso_code'].' [QSA,L]';
$tab['RewriteRule']['content']['^'.$language['iso_code'].'$'] = $language['iso_code'].'/ [QSA,L]';
$tab['RewriteRule']['content']['^'.$language['iso_code'].'/([^?&]*)$'] = '$1?isolang='.$language['iso_code'].' [QSA,L]';
} 


 

Il faut penser à régénérer le fichier .htaccess après cette modification bien sur.

 

 

On va ensuite modifier dans le module URL Rewriting la manière dont les URL sont générées ( afin de supprimer le /fr )

 

En ligne 495 on ajoute :

 

if (Language::getIsoById(intval($id_lang))=='fr')
{
$myLang = '';
}
else
{
$myLang = Language::getIsoById(intval($id_lang)).'/';
}

 

Ensuite on modifie

 

$datas = array(
'[PRO_REWRITE]' => $product->link_rewrite,
'[PRO_ID]' => $product->id,
'[PRO_REFERENCE]' => $product->reference,
'[CAT_ALL]' => $this->getUrlParents($type, $category, intval($id_lang)),
'[CAT_DEFAULT]' => $category->link_rewrite,
'[LANG_ISO]' => Language::getIsoById(intval($id_lang)),
'[LANG_ID]' => intval($id_lang),

 

par

 

$datas = array(
'[PRO_REWRITE]' => $product->link_rewrite,
'[PRO_ID]' => $product->id,
'[PRO_REFERENCE]' => $product->reference,
'[CAT_ALL]' => $this->getUrlParents($type, $category, intval($id_lang)),
'[CAT_DEFAULT]' => $category->link_rewrite,
'[LANG_ISO]' => $myLang,
'[LANG_ID]' => intval($id_lang),

 

Et de même

 

 

 



$datas = array(
'[CAT_REWRITE]' => $category->link_rewrite,
'[CAT_ALL]' => $this->getUrlParents($type, $category, intval($id_lang)),
'[CAT_ID]' => $category->id,
'[LANG_ISO]' => Language::getIsoById(intval($id_lang)),
'[LANG_ID]' => intval($id_lang),



 

 

par

 

 

$datas = array(
'[CAT_REWRITE]' => $category->link_rewrite,
'[CAT_ALL]' => $this->getUrlParents($type, $category, intval($id_lang)),
'[CAT_ID]' => $category->id,
'[LANG_ISO]' => $myLang,
'[LANG_ID]' => intval($id_lang),

 

Dans la config du module URL Rewriting + , j"ai donc mis :

pour les catégories :[LANG_ISO][CAT_ALL].html

pour les produits : [LANG_ISO][CAT_ALL]/[PRO_REWRITE].html

 

( dans la mesure on a mis le "/" à la fin de la langue dans le code, il faut ne pas le mettre dans le masque des URLs dans le module ... )

 

Et voila !

 

Merci pour ce module !!

Share this post


Link to post
Share on other sites
  • 1 month later...

@InterAgilité : je veux bien un coup de main pour savoir comment tu as fait...

 

Perso voilà ce que j'ai fait :

- modification de la classe Link.php

- installation de la version 1.2 de urlrewritingplus

- j'ai cliqué ensuite sur le bouton "Sauvegarder ce contenu pour le fichier .htaccess par défaut" avec la config proposée par le module

 

J'ai ensuite fais des test en ajoutant mes propres règles, en cliquant sur les différents boutons de création de règles.

J'ai aussi ajoutant des règles dans l'encart "Fichier .htaccess par défaut" mais je n'ai jamais réussi à obtenir quoique ce soit de fonctionnel (je dois forcément mal m'y prendre...).

 

Merci d'avance !

Share this post


Link to post
Share on other sites
  • 1 month later...
  • 1 year later...
  • 6 months later...
  • 7 months later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More