prob de ré-écriture

  • Auteur de la discussion Auteur de la discussion passion
  • Date de début Date de début
WRInaute accro
Bonjour,

Je suis entrain de développer un projet sur OsCommerce (sans contribution) mais je suis ennuyé car je souhaite créer des répertoires par htaccess pour chacune de mes langues (fr, en, es et de) mais de base, OsCommerce passe une variable "language" comme argument.

J'ai fait de la ré-écriture sur ma page index pour différencier les 3 cas possibles:

1. par défaut = racine de mon site
2. nested = renommée "boutique.php"
3. products = renommée "article.php"



Tout ceci fonctionne parfaitement bien mais mon problème dans les changements de versions linguistiques !
Passez du boutique.php?language=fr à boutique.php?language=en ou boutique.php?language=es ==> pas bon !

Je n'arrive pas à créer :
monsite/fr/boutique.php
monsite/en/boutique.php
monsite/es/boutique.php
monsite/de/boutique.php

Merci de votre aide

*pour ceux qui me répondraient : tu as posé la question directement sur le forum? -> oui.. pas de réponse
 
WRInaute impliqué
Je ne comprends pas ton problème (je ne connais pas OSCommerce il faut dire).

Peux tu dire l'URL que tu as en entrée, et l'URL que tu souhaite obtenir à sa place?
 
WRInaute accro
Ok je vais essayer de faire court mais merci de ton intérêt néanmoins ! :wink:

Voilà....

- la page d'accueil,
- les pages catégories
- et les articles sont tous issues de la même page --> index.php

C'est uniquement une variable qui détermine la différence en l'occurence :
- catégories = variable -> "nested"
- articles = variable -> "products"
- accueil = variable -> vide

Bon... ce n'est pas un prob... un p'tite règle pour renommer en :
- la page d'accueil -> monsite.com
- les pages catégories -> categorie.php
- et les articles -> article.php

Mais mon réel problème vient des versions étrangères....
Car OsCommerce passe une variable "language" sur :
Code:
<a href="<?php echo basename($PHP_SELF); ?>?language=fr"><img src="includes/languages/french/images/icon.gif" border="0" alt="French" title=" French " width="24" height="15"></a>

Autrement dit, il prend la page active par un PHP_SELF et lui rajoute une variable "language"
Actuellement mes pages catégories seraient de la sorte :
- categorie.php?language=fr
- categorie.php?language=en
- categorie.php?language=es
- categorie.php?language=de

Alors que je voudrais logiquement...
- monsite/fr/categorie.php
- monsite/es/categorie.php
- monsite/en/categorie.php
- monsite/de/categorie.php

Désolé pour la longueur mais au moins, j'espère que c'est clair
:oops:
 
WRInaute impliqué
Je crois que je comprends un peu mieux :wink:

Pour être sûr de ce qu'il faut ajouterf comme règle, peux tu mettre le contenu de ton .htaccess ici?
 
WRInaute discret
Salut :)
Je "m'incruste" sur ce fil car je suis justement en train d'aborder la même problématique avec un site oscommerce multilingue.

J'ai installé pour le rewriting, le module SEO ULTIMATE qui s'occupe deja de réécrire les pages produits et catégories en utilisant leurs titres, selon la langue de navigation choisi.

J'ai ensuite ajouter la ligne suivante dans .htaccess:

Code:
RewriteRule ^([a-z]{2})/(.*)$ $2?language=$1&%{QUERY_STRING}

Puis une ligne dans la classe du module SEO pour que /fr ou /en soit ajouter à l'URL en fonction de la langue...

Une idée ?
Passion, essaye la ligne ci-dessus elle devrait résoudre ton pb, mais peut etre aussi créer celui que j'ai !!

Cela semble bien marcher pour tous les URLS de catégories ou de produits, mais si je tape www.domaine.com/fr/ ou www.domaine.com/fr/index.php firefox me donne une erreur de redirection incorrecte.
 
Discussions similaires
Haut