URL Rewriting : le paramètre de la langue

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


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 0:21

Bonjour

J'ai un site en 2 langues (fr et en), avec une page default.asp?lang=[fr ou en].

Grâce à ce topic je sais rediriger cette page en example.com/ pour le français et example.com/en/ pour l'anglais.

Mais dans le code, je dois écrire le terme "fr" ou "en". Actuellement le code est :
Code: Tout sélectionner
<a href="default.asp?lang=<%=session("current_lang_selected")%>"

Donc même si j'écris comme ceci, le problème est que je vais voir apparaitre example.com/fr/ :
Code: Tout sélectionner
<a href="/<%=session("current_lang_selected")%>/"

Quelqu'un pourrait me dire comment je peux solutionner le problème ?

Merci, Fred


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 9:22

Code: Tout sélectionner
<a href="/<%=session("current_lang_selected") == 'fr'?'':session("current_lang_selected")%>/"


Juste pour te montrer le principe.
Le mieux est de créer une fonction spécifique te permettant de récupérer la langue ou rien (si c'est fr).


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 14:55

Merci. Je suis d'accord sur le principe mais il y a une erreur de syntaxe sur cette ligne et je sais pas la corriger...


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 15:07

Mince, avec l'habitude, je n'ai pas fait attention que ce n'était pas du PHP mais de l'ASP :D

Désolé, je ne pourrai pas t'aider sur ce coup …


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 16:50

Merci quand même. En tout cas je suis sur la voie. Il me reste plus qu'à demander cette fonction à un initié en ASP.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8580
Inscription: 23 Nov 2005

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 17:00

De mémoire :

Code: Tout sélectionner
<a href="/<%
if session("current_lang_selected") <> 'fr' then
  response.write(session("current_lang_selected") & '/')
end if
%>"


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 17:18

Eh non :? c'est syntax error au niveau du quote 'fr'
Code: Tout sélectionner
if session("current_lang_selected") <> 'fr' then
---------------------------------------^


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8580
Inscription: 23 Nov 2005

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 17:37

Tu as essayé avec les "" plutôt ?


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Mar Mar 22, 2011 17:41

Merci, en fait ça marche super, c'est juste les quotes à remplacer par les doubles-quotes:
Code: Tout sélectionner
href="/<%
if session("current_lang_selected") <> "fr" then
  response.write(session("current_lang_selected") & "/")
end if
%>"


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Mer Mar 23, 2011 18:15

Je galère depuis des heures à cause de ce paramètre de langue :evil:
En fait je voulais changer ceci pour bien séparer le paramètre le langue.
Code: Tout sélectionner
example.com/template.asp?lang=en&param1=x&param2=y&...

en celà
Code: Tout sélectionner
example.com/en/template.asp?&param1=x&param2=y&...

J'ai créé ces redirections :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})\/$ /default.asp?lang=$1 [L]   >>> ok
RewriteRule ^([a-z]{2})\/(+*)$ /$2&lang=$1 [L]   >>> ko

Et bien entendu ça ne marche pas pour la dernière règle (pour les pages "template.asp")... alors qu'à titre d'exemple la règle suivante marche bien pour me faire le /en/ que je veux:
Code: Tout sélectionner
RewriteRule ^([a-z]{2})/fiche-([0-9]+).html(.*)$ /template.asp?page=fiche&idfiche=$2&lang=$1$3 [L] [L]

Pourriez-vous m'aider sur ce problème ?


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: URL Rewriting : le paramètre de la langue

Message le Mer Mar 23, 2011 20:11

Les paramètres d'URL ne sont pas "capturable" dans un RewriteRule. Si tu veux que ta redirection transmettent les paramètres à l'adresse redirigée, il faut mettre QSA :

Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/$ /default.asp?lang=$1 [L,QSA]
RewriteRule ^([a-z]{2})/(+*) /$2?lang=$1 [L,QSA]


Pourquoi avais-tu mis un \ devant les / ? Normalement, ce n'est pas utile.

Essaie ce code, ça devrait faire avancer le chmiblic ;)


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Jeu Mar 24, 2011 0:19

Ca ne marche pas :(
(il y avait une erreur dans ta ligne, j'ai remplacé "?" par "&"):
Code: Tout sélectionner
RewriteRule ^([a-z]{2})/(+*) /$2&lang=$1 [L,QSA]

Concrètement, le but est de faire correspondre (par exemple, car le nombre de paramètres est variable):
/template.asp?page=LISTE&idsupport=1&idtype=8&lang=en
à
/en/template.asp?page=LISTE&idsupport=1&idtype=8


Les paramètres d'URL semble être capturables sans le QSA, vu que cette ligne marche bien. Tous les paramètres sont bien dans le $3:
Code: Tout sélectionner
RewriteRule ^([a-z]{2})/fiche-([0-9]+).html(.*)$ /template.asp?page=fiche&idfiche=$2&lang=$1$3 [L]

voir ici: http://www.agenceducapdantibes.com/en/fiche-458687.html&idtype=12&budg ... =&curpage=


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: URL Rewriting : le paramètre de la langue

Message le Jeu Mar 24, 2011 9:18

Dans l'adresse que tu fournis, je ne suis pas sur que ces paramètres soit des Query String.
Les Query String sont définis par la séparation de l'adresse et de ces derniers par un point d'interrogation. Hors, je n'en vois pas dans ton lien.

Je te confirme aussi que c'est bien "?" et non pas "&" qu'il faut mettre.

Je viens de voir une erreur dans le code, ce n'est pas (+*) mais (.*) qu'il faut mettre :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/$ /default.asp?lang=$1 [L,QSA]
RewriteRule ^([a-z]{2})/(.*) /$2?lang=$1 [L,QSA]


De plus, si tu veux vraiment contrôler les langues utilisables, spécifie les :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(fr|en)/$ /default.asp?lang=$1 [L,QSA]
RewriteRule ^(fr|en)/(.*) /$2?lang=$1 [L,QSA]


De cette manière, si quelqu'un met une langue non supportée, tu peux gérer un 404.


fredm
WRInaute impliqué
WRInaute impliqué
 
Messages: 549
Inscription: 2 Nov 2004

Re: URL Rewriting : le paramètre de la langue

Message le Jeu Mar 24, 2011 12:05

Ca marche au poil !
Merci, t'es un chef :wink:


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 0 invités