[Réglé] Redir vers un repertoire niveau inf

  • Auteur de la discussion Auteur de la discussion mr_go
  • Date de début Date de début
WRInaute passionné
Salut à tous,

mon problème:

je dispose d'un site multiilngue. Concept somme toute banal du style

www.example.com/fr/rep1/rep2/page1.html
www.example.com/en/dir1/dir2/page2.html

Etant donné l'aspect volumineux du site, je séparé les fichiers .htaccess en fonction de la langue. Il existe donc physiquement sur mon serveur un répertoire "fr" et un repertoire "en", avec pour chacun des deux un fichier .htaccess.

Pour des raisons d'optimisation du fichier htaccess relatif au "français", je redirige certains documents de type photo, flash ou pdf dans les langues autres que le français, mais pas les documents en français car par définition, mon document en français se trouve physiquement un répertoire "au dessus" du chemin.

/fr/photo/photo1.jpg doit donc être redirigé vers /photo/photo1.jpg

Bien évidemment je possède dans le fichier .htaccess "français" de mon site de nombreuses regles de réécriture du type

RewriteRule ^rep/fic1.html$ /rep/fic1.php?lang=fr [NC,L]

et en dernier lieu j'ai créé cette clause spéciale pour le français :

#Condition spécifique fr /fr/rep => /rep pour les documents
RewriteRule ^(.+[^/])(.*)$ /$1 [NC,L]


Mon problème est celui ci :

www.example.com/fr/fr/index.html fonctionne avec cette règle...
:'(

Bien entendu je n'ai pas ce problème dans une autre langue.

J'espère avoir été assez clair... :oops:
Quelqu'un aurait une solution ?
 
WRInaute discret
Re: Site multilingue: Redir vers un repertoire niveau inféri

mr_go a dit:
et en dernier lieu j'ai créé cette clause spéciale pour le français :

#Condition spécifique fr /fr/rep => /rep pour les documents
RewriteRule ^(.+[^/])(.*)$ /$1 [NC,L]


Mon problème est celui ci :

www.example.com/fr/fr/index.html fonctionne avec cette règle...
:'

Salut,
Pour faire plus simple, par exemple, une chose comme:

RewriteRule ^fr/(.*)$ $1 [NC,L]

Ca arrange pas mieux ton affaire ? Si ce n'est que pour le fr...
([a-zA-Z_]+ matchera un code de langue)

^(.+[^/])(.*)$ pour info ça matche au moins un caractère puis un caractère différent de '/' puis zéro ou plusieurs caractères (genre 'ab' ça matche)
 
WRInaute impliqué
Moi pour les langues, je mets plutot des (fr|es|en) car cela limite l´utilisation des ressources, et limite aussi le match string.
 
WRInaute passionné
Oki ca marche !

Lol, bloqué une demi journée sur ça... j'ai honte ! :D

Effectivement je n'avais pas pensé à rajouter le "fr/" car je pensais que le chemin physique vers le répertoire prenait déjà en compte le /fr...

Ben voualou, merki à tous ;)
 
Discussions similaires
Haut