[ASP.NET] Référencement multilingue avec la même URL

Nouveau WRInaute
Bonjour,
j'ai un site codé en ASP.NET dont l'URL ne change pas selon la langue. Pour detecter la langue de l'utilisateur, j'utilise du javascript et même s'il clic sur le lien de langue, l'URL ne montrera pas si c'est de l'anglais ou du francais.

Je voulais savoir si cela avait une influence sur le référencement multilingue parce que je ne suis pas présent sur google en anglais.

Merci beaucoup

PS: J'avais déjà posé la question dans un sujet existant mais comme je n'ai eu aucune réponse, j'ai pensé que créer un nouveau sujet me donnerai une meilleure visibilité
 
Nouveau WRInaute
Vous avez une idée de comment je pourrais changer ca sans pour autant avoir une URL blindée de variables en GET et sans être obligé de dupliqué mon site?
 
Nouveau WRInaute
Salut,

Autre solutions.
Autant de langues que de première page, après le restant une seul page traité multilingue.
Avantage la 1er page en dur sera référencé sans problème.
Solution valide sur le web et sur les téléphones mobiles.

En ASP.NET tu dois pouvoir faire cela.

PAPY
 
Nouveau WRInaute
Le principe est de pouvoir référencer toutes les pages du site web et aussi de référencer toutes les pages dans les langues qui conviennent. Cela ne va pas fausser le référencement en référençant à l'international des pages en francais?
 
Nouveau WRInaute
Je sais que je réveille un vieux sujet, mais Big G ne référence qu'une seule URL. Il faut donc une URL par page. Cependant, une URL par page ne veut pas dire plusieurs pages par langue. Je reprends un texte que j'ai écrit dans un autre post pour vous faire comprendre.

Afin de bien référencer un site web multilingue, nous avons élaboré quelques techniques bien simples. Je vous présenterai une façon simple développée en asp.net, mais qui pourrait certainement être faite en PHP.

Notre solution ne comporte ni nom de domaine par langue, ni un répertoire par langue, ni un sous-domaine par langue.
Je prendrai comme exemple http://www.secure-anonymous-email.com. Ce site a été créé dans le but d'être bien référencé en français et en anglais.

Comme vous pourrez le constater, le site comporte 6 pages visibles : Accueil, Envoyer un nouveau mail anonyme et Condition d'utilisations pour le français et Home, Send new anonymous email et Terms of service pour l'anglais.

En réalité, ce site ne comporte que 3 pages qui s'adaptent au langage choisi par le visiteur. Pour ceux qui connaissent ASP.Net, vous devez certainement connaitre les fichiers ressources qui permettent de changer dynamiquement les textes et images d'un site à l'aide de UICulture et Culture.

Une fois les fichiers ressources (.resx) mis au point, rien de plus simple. Il s’agit de faire changer la langue de la page à l'aide de quelques méthodes simple.

Je vous donne une partie de mon code qui vous permettra de faire de la rétro-ingénierie. Ce code vb.net est placé dans Application_BeginRequest du fichier Global.asax.

If (fullOrigionalpath.EndsWith("secure-anonymous-email.com") Or fullOrigionalpath.EndsWith("secure-anonymous-email.com/") Or fullOrigionalpath.Contains("secure-anonymous-email.com/default.aspx")) Then
Try
Dim currentthread As String = HttpContext.Current.Request.UserLanguages(0).Substring(0, 2)
Try
If Request.Cookies("CultureInfoSAE").Value = "fr" Then
Response.Redirect("/fr", False)
End If
Catch ex As Exception
If currentthread = "fr" Then
Response.Redirect("/fr")
End If
End Try
Catch ex As Exception

End Try


Thread.CurrentThread.CurrentUICulture = New CultureInfo("en")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en")

url = "/default.aspx?lang=en"

ElseIf (fullOrigionalpath.EndsWith("secure-anonymous-email.com/fr")) Or fullOrigionalpath.EndsWith("secure-anonymous-email.com/fr/") Then
Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr")

url = "/default.aspx?lang=fr"

ElseIf (fullOrigionalpath.EndsWith("/send-anonymous-email")) Or fullOrigionalpath.EndsWith("/send-anonymous-email/") Then
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en")

url = "/send-anonymous-email.aspx?lang=en"

ElseIf (fullOrigionalpath.EndsWith("/envoyer-mail-anonyme")) Or fullOrigionalpath.EndsWith("/envoyer-mail-anonyme/") Then
Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr")

url = "/send-anonymous-email.aspx?lang=fr"

ElseIf (fullOrigionalpath.EndsWith("/fr/tos")) Or fullOrigionalpath.EndsWith("/fr/tos/") Then
Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr")

url = "/tos.aspx?lang=fr"

ElseIf (fullOrigionalpath.EndsWith("/tos") Or fullOrigionalpath.EndsWith("/tos/")) Then
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en")

url = "/tos.aspx?lang=en"

End If

If URL <> "" Then
Context.RewritePath(URL)
End If

Le paramètre lang sert à la mise en cache des pages.

Visitez le site et regardez les URL et comparez-les à l'aide du code plus haut afin de mieux comprendre.
Si vous avez des questions, n'hésitez pas.
 
Nouveau WRInaute
Une petite question, que donne cette astuce vis à vis du canada? Comment Google fait pour savoir qu'il s'agit de français de France, ou de français du Canada?
Car si je ne dis pas de bétises, les indexes google canadien ne sont pas identique aux indexes francais non?
La question se pose pour ma part pour le site http://www.superior-extensions.com qui sera visible en américain et en canadien par http://www.superior-extensions.com/fr, mais nous ne souhaitons pas que le site apparaissent dans les indexes français...
Merci pour vos lumières :)
 
Discussions similaires
Haut