Sous domaine ok ou css ok, mais pas les 2

Nouveau WRInaute
Bonjour

Le site est multilingue, chaque langue sur un sous-domaine (fr / en / es etc.)
La langue doit donc être passé en paramètre au fichier index.php,
On ne doit pas modifier les url des fichiers js / css / jpg etc.

Mais suivant l'ordre des 2 dernières RewriteRule , j'ai:
ou toutes les images / csss / js.. ok... mais pas les langues
ou les langues bien gérées... ok... mais aucune image / css / js accessible

Pas moyen d'avoir les 2!
Je scotche depuis un bon moment... si quelqu'un pouvait m'éclairer... merci!

Code:
RewriteEngine on
RewriteBase /

# Si aucun sous domaine précisé -> alors on met fr (langue par défaut)

RewriteCond %{HTTP_HOST} ^ledomaine.com$
RewriteRule ^(.*) http://fr.ledomaine.com/$1 [QSA,L,R=301]

# On ne veut pas de doublons entre la racine et le fichier nommé index.php

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule index.php http://www.ledomaine.com? [L,R=301]

# Une condition est posée sur le sous-domaine, 
# pour passer la langue en paramètre

RewriteCond %{HTTP_HOST} ^([^.]+)\.ledomaine\.com

# on veut que les url des css / js / jpg etc...
# ne soient pas modifiées

RewriteRule (.*)\.(.+) $1\.$2 [L]

# on passe la langue en paramètre

RewriteRule (.*) index.php?lang=%1 [L]
 
WRInaute impliqué
Salut,

Pourquoi ne pas héberger tes fichiers communs à tous les sites sur un autre sous-domaines ? Tu places ensuite tes liens en absolu et le tour est joué, non ?
 
Nouveau WRInaute
Tu veux dire tout ce qui est css / jpg / js etc. en absolue ailleurs?
ça peut marcher en effet... mais ça ne me dit pas où est le pb dans ce htaccess...

Ceci-dit, jai trouvé: une RewriteRule devait être au dessus de la dernière RewriteCond

Voici mon premier htacces url-rewriting complet, il marche et est commenté
Du fait que c'est mon premier, si quelqu'un a une remarque sur la méthode
toute suggestion bienvenue...

Code:
# d'une façon générale : site multilingue
# une page est ainsi, sauf pour fr sur www -> http://en.ledomaine.com/270/nom-de-page/
# on récupère donc 1) la langue 2) l'id 3) le nom de page

RewriteCond %{HTTP_HOST} ^([^.]+).ledomaine.com
RewriteRule ^([0-9]+)/([0-9a-zA-Z-_/]*)/$ index.php?lang=%1&id=$1&namep=$2 [L]

# Si aucun sous domaine précisé -> alors on met www (langue par défaut, qui sera fr)

RewriteCond %{HTTP_HOST} ^ledomaine.com$
RewriteRule ^(.*) http://www.ledomaine.com/$1 [QSA,L,R=301]

# d'ailleurs le sous-domaine fr, n'est pas utilisé, mais www par défaut

RewriteCond %{HTTP_HOST} ^fr.ledomaine.com$
RewriteRule ^(.*) http://www.ledomaine.com/$1 [QSA,L,R=301]

# On ne veut pas de doublons entre la racine et le fichier nommé index.php

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule index.php http://www.ledomaine.com? [L,R=301]

# on veut que les url des css / js / jpg etc...
# ne soient pas modifiées

RewriteRule (.*)\.(.+) $1\.$2 [L]

# Une condition est posée sur le sous-domaine, 
# pour passer la langue en paramètre, à la racine

RewriteCond %{HTTP_HOST} ^([^.]+)\.ledomaine\.com
RewriteRule (.*) index.php?lang=%1 [L]
 
Discussions similaires
Haut