2015-09-15 101 views
1

我正在開發一個多語種Asp.Net MVC項目。 默認語言是土耳其語,其他語言是英語。 我需要使網站友好。例如網站的一些網址就像;asp.net mvc多國語言網址通過更改url重定向

首頁/公司:

  • www.example.com/hakkinda
  • www.example.com/about

首頁/聯繫方式:

  • www.example .com/iletisim
  • www.example.com/contact

首頁/ FAQ:

  • www.example.com/sikca-sorulan-sorular
  • www.example.com/frequently-asked-questions

有一些網頁喜歡這個。我也有土耳其語和英語seo友好的網頁。

我註冊路線:

routes.MapRoute(
     name: "hakkinda", 
     url: "hakkinda", 
     defaults: new { controller = "Home", action = "About"} 
    ); 

    routes.MapRoute(
     name: "about", 
     url: "about", 
     defaults: new { controller = "Home", action = "About"} 
    ); 

    routes.MapRoute(
     name: "iletisim", 
     url: "iletisim", 
     defaults: new { controller = "Home", action = "Contact"} 
    ); 

    routes.MapRoute(
     name: "contact", 
     url: "contact", 
     defaults: new { controller = "Home", action = "Contact"} 
    ); 

    routes.MapRoute(
     name: "sss", 
     url: "sikca-sorulan-sorular", 
     defaults: new { controller = "Home", action = "Faq"} 
    ); 

    routes.MapRoute(
     name: "faq", 
     url: "frequently-asked-questions", 
     defaults: new { controller = "Home", action = "Faq"} 
    ); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", 
     action = "Index", id = UrlParameter.Optional } 
    ); 

我也有一個主頁/ ChangeLanguage方法,它通過特定的文化名設置線程的文化(TR/EN) 用戶可以通過點擊一個按鈕

更改語言我的第一個問題是我需要在用戶更改語言時自動更改網址。

初始URL:www.example.com/hakkinda 用戶後改變語言爲英文網址應該重定向到www.example.com/about 再次,如果用戶更改語言回土耳其應該被重定向到www.example .com/hakkinda 這必須適用於所有頁面。

我的第二個問題是SEO優化,我需要下面的標籤添加到所有頁面,以說通過語言機器人的替代網頁

<link rel="alternate" hreflang="tr" href="http://www.example.com/hakkinda"/> 
<link rel="alternate" hreflang="en" href="http://www.example.com/about"/> 

我需要這些鏈接的標籤添加到網站的佈局和它必須與當前網址匹配。

你能否給我建議我可以做到這些?

+0

你找到了一個很好的解決方案? – daniel

回答

0

你可以創建一個ActionFilter,它會給每個請求檢查發送到服務器的文化(通過cookie完成?),然後在每個請求上查找控制器和針對單獨字典的操作,嘗試匹配oposite本地化無論是在控制器或行動,如果它擊中匹配(即你目前導航/約,但你的土耳其語,它會匹配/約作爲英語,然後執行重定向到/ hakkinda