recupérer des $_GET apres un url rewriting
3 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- aloade
- Nouveau WRInaute

- Messages: 2
- Inscription: 11 Aoû 2009
recupérer des $_GET apres un url rewriting
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]
- skippyzrnr
- WRInaute impliqué

- Messages: 664
- Inscription: 11 Jan 2005
Re: recupérer des $_GET apres un url rewriting
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 '?')
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

- Messages: 2
- Inscription: 11 Aoû 2009
Re: apres un url rewriting
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/
(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
)
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
et non/index.php?var=$1
apparement avec QSA ca réecrit sur les htaccs fils :p (l'erreur renvoyé est un 404/index.php%1&var=$1
3 messages
• Page 1 sur 1
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é
