Bonjour,
je vais rentrer dans le vif du sujet car c'est un gros problème ^^ et vous m'avez l'air bien calé dessus
alors j'ai un site avec plusieurs sous domaine ou je fais des redirection sans problème. Le soucis c'est que je veux faire un site en plusieurs langue donc j'ai eu comme idée d'utiliser un sous domaine par langue (avec une variable get renvoyé pour le traitement dans les pages), par exemple:
jusque la pas de soucis, le problème vient que pour certaines page de fr.domaine.net j'utilise également des variables en $_GET (je récupère la variable passée en adresse par exemple htp//fr.site.net/variable) et c'est la que ca coince il me renvoie les $_GET de la redirection de sous domaine, par exemple :
voila en espérant être assez clair ^^
ci dessous ce sont mes fichiers .htaccess, en vert c'est le code ajouté
celui a la racine du site htp//www.site.net:
et le .htaccess placé à htp//www.site.net/fr/ :
je vais rentrer dans le vif du sujet car c'est un gros problème ^^ et vous m'avez l'air bien calé dessus
alors j'ai un site avec plusieurs sous domaine ou je fais des redirection sans problème. Le soucis c'est que je veux faire un site en plusieurs langue donc j'ai eu comme idée d'utiliser un sous domaine par langue (avec une variable get renvoyé pour le traitement dans les pages), par exemple:
htp//fr.site.net -> htp//fr.site.net/?lang=fr
htp//en.site.net -> htp//fr.site.net/?lang=en
htp//es.site.net -> htp:/fr.site.net/?lang=es
tous vont vers htp//fr.site.net)
sachant que les fichiers physiquement sont stocké comme :
htp//www.site.net/domain/fr/,
htp//www.site.net/domain/es/,
htp//www.site.net/domain/es/,
etc
jusque la pas de soucis, le problème vient que pour certaines page de fr.domaine.net j'utilise également des variables en $_GET (je récupère la variable passée en adresse par exemple htp//fr.site.net/variable) et c'est la que ca coince il me renvoie les $_GET de la redirection de sous domaine, par exemple :
sans la redirection selon la langue (donc une redirection normal de sous domaine pas de soucis j'ai bien:
htp//fr.site.net/variable -> je recup $_GET[var] == 'variable'
par contre avec la redirection par langue j'ai :
htp//fr.site.net/?var1=1 -> je recup $_GET[lang] == fr mais $_GET[var] est null !
voila en espérant être assez clair ^^
ci dessous ce sont mes fichiers .htaccess, en vert c'est le code ajouté
celui a la racine du site htp//www.site.net:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^es\.site\.net(/(.*))?$
RewriteRule ^(.*)$ /domain/site/$1?lang=es [L]
RewriteCond %{HTTP_HOST} ^en\.site\.net(/(.*))?$
RewriteRule ^(.*)$ /domain/site/$1?lang=en [L]
RewriteCond %{HTTP_HOST} ^fr\.site\.net(/(.*))?$
RewriteRule ^(.*)$ /domain/site/$1?lang=fr [L]
# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/domain
RewriteCond %{HTTP_HOST} ^([^.]*)\.?[^.]+\.[^.]+$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /domain/%1/$1
et le .htaccess placé à htp//www.site.net/fr/ :
RewriteEngin on
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^([a-z0-9])$ /index.php?lang=%1&var=$1 [NC,L]