recupérer des $_GET apres un url rewriting

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

aloade
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 11 Aoû 2009

recupérer des $_GET apres un url rewriting

Message le Mar Aoû 11, 2009 22:42

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 :oops:

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]

skippyzrnr
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 11 Jan 2005

Re: recupérer des $_GET apres un url rewriting

Message le Mer Aoû 12, 2009 9:10

Effectivement ça peut paraitre bizarre au début...
Là ou tu as [L] , met [QSA,L]
QSA = Query String Attempt => c'est ce qui spécifie de traiter la fin de l'url (ce qui se trouve après le '?')

aloade
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 11 Aoû 2009

Re: apres un url rewriting

Message le Mer Aoû 12, 2009 13:27

merci de la réponse (je pensais que la longueur de mon message allait faire fuir tout le monde ^^)

et bien ca m'étonne agréablement ca marche très bien :)
en plus y'a juste a modifier le .htacccess de htp//www.site.net/fr/
RewriteEngin on

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^([a-z0-9])$ /index.php%1&var=$1 [NC,L]

(sinon on voit apparaitre ?lang=lang=fr&va... :p)

merci beaucoup dans ce cas ^^

en hors sujet; c'est vraiment pas facile de trouver des explications clair sur ce type de programme je l'utilise depuis pas mal de mois et j'ai découvert sur ce site l'utilité dans es RewriteCond du premier paramètre ;o
avec ce que tu m'as dis je vais pouvoir me plonger sur le paramètre optionel aussi :p

merci encore ! :)

edit:
petit correction sur le code c'est
/index.php?var=$1
et non
/index.php%1&var=$1
apparement avec QSA ca réecrit sur les htaccs fils :p (l'erreur renvoyé est un 404 :) )


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité