2014-02-12 67 views
0

我發現了幾個選項如何正確本地化我的asp.net mvc項目,但仍然有一些疑慮選擇正確的。ASP.NET MVC本地化與SEO記

想提一提,我需要本地化網站的方式,我將仍然能夠讓SEO優化的單獨每種語言

這裏是我發現的選項:

  1. 首先:爲不同文化創建子域:

    mysite.com - 默認語言和

    it.mysite.com - 意大利語言

  2. :創建子文件夾的查詢字符串的新航線,像

    mysite.com/default - 爲默認語言和

    的mysite .com/it/default - 用於意大利語

實施時沒有問題第一個選項。

如果第二個選項更可取...任何人都可以描述應該如何實施?

回答

1

取決於你想達到什麼樣的SEO效果。但一般來說,如果所有網頁都在同一個域名上,那麼對SEO更好=> mysite.com/it/default更好

除非您有真正的本地業務,否則您甚至可以使用不同的頂級域名。例如。 mysite.de和mysite.it

在MVC的撒姆:

routes.MapRoute(
    name: "Default", 
    url: "{languageCode}/{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    constraints: new { languageCode = @"de|fr|en|it" }, 
    namespaces: new[] { "SupertextMvc.Controllers" } // only map routes to controllers in the specified namespace 
    ); 

這是我們的路由配置

+0

謝謝你的答案。還有一個問題需要澄清:網站上的所有鏈接都沒有languageCode部分。例如:您搜索www.site.com/it,然後您想要進入內部頁面,如www.site.com/it/about。但是您要點擊的鏈接是這樣寫的:www.site.com/about。我是否應該通過添加/ it/about將操作過濾器屬性中的用戶重定向到正確的鏈接?或者應該重新生成所有鏈接以反映當前語言的有效完整路徑? – SkSirius

+0

對不起,誤點) – SkSirius

+0

我不會做重定向。如果可以的話,我只會使用相對鏈接而不是絕對鏈接。那你就容易了。否則,是的,重新生成它們。 – Remy