2011-05-17 116 views
3

我正在使用多語言網站(php/mysql),我的問題是什麼將是語言標識的最佳解決方案 - 會話/ cookie或URI標識。我的意思是在SEO方面,什麼會更準確。會話與URI多語言標識符

謝謝

+0

這是一個域,或者一個域每種語言? – 2011-05-17 13:09:40

+0

* [任何想法開發多語言網站 - 搜索引擎優化,PHP,MySQL](http://stackoverflow.com/questions/5284773/any-ideas-for-developing-a-multi-language-site- seo-php-mysql/5285641#5285641)* – Gumbo 2011-05-17 13:29:26

+1

我有一個單一域的所有語言及其相應的翻譯。 – 2011-05-17 14:41:29

回答

3

有不同類型的項目,不應該使用相同的語言實現。

讓我舉一些例子:

  1. 第一個項目有一個單獨的域名,讓我們說example.com。這個網站應該有三種語言版本。爲了讓搜索引擎能夠清晰地抓取每種語言並對其進行索引 - 正確的解決方案是通過url傳遞。 example.com/fr/爲法語。

  2. 第二個項目的每個語言都有一個域名example.fr example.co.uk。最好的做法是,每個域只能由搜索引擎按其主要語言編入索引。因此,我選擇的解決方案是在切換時將語言存儲在cookie中。 (或完全重定向到其他域)。

如果我們會選擇例如1例如2解決方案,既example.co.uk/fr/和example.fr將有相同的內容,這不是搜索引擎友好。

+0

在問題的上下文中,兩種解決方案都是相同的,因爲它們都只使用URI。 – KingCrunch 2011-05-17 12:45:16

+1

第二種解決方案不使用URI,它可以使用POST完成或使用ACCEPT_LANGUAGE檢測用戶的語言。 – 2011-05-17 12:48:01

+0

就我而言,我有一個適用於所有語言的單個域以及它們相應的翻譯。 – 2011-05-17 12:52:59

1

如果將語言放入URI中,webcrawler可以使用不同的語言對網站編制索引,並且用戶可以爲其添加書籤/鏈接。如果沒有對頁面的直接引用(=> URL),這是不可能的。

您可以結合使用這兩種方法:如果URI中沒有可用的特定於語言的信息,請嘗試從cookie/session中找出它,如果失敗,請查看Accept-Language -Header。現在,如果一個用戶改變語言(通過鏈接或其他)將其寫入一個cookie(以便以後訪問)。

1

URL。你可以在所有路徑中使用'/ en /'前綴。顯然你會使用mod_rewrite或合適的框架路由配置。

+0

謝謝@SkippyChalmers,問題是從SEO的角度來看哪個方法更好 – 2011-05-17 14:40:28

1

僅使用會話/ cookie,某人直接鏈接到「斯瓦希里語」版本的內容實際上是不可能的。相反,您將擁有所有傳入鏈接將指向的默認語言(英文?)。一旦到了那裏,如果用戶想要你的普通話內容,那麼他​​們可以選擇這個選項,但是他們不會直接離開,所以使用URI標識是我個人的選擇。

有幾種方法可以通過設置某種目錄結構來標記在URI中使用哪種語言,例如:http://domain.tld/localized/fr/用於法語內容的主頁,或者您可以將其抽象出來通過GET變量數據庫和識別語言:http://domain.tld/?l=4語言的主要頁面的4

ID或者,像韋斯利麪包車Opdorp指出的那樣,你可以設置一個單獨的域或子域的每種語言:http://domain.frhttp://fr.domain.tld

就SEO而言,我相信最好的辦法是堅持頂級Domai n標準併爲您希望承載網站的每種語言(http://domain.frhttp://domain.ru等)設置單獨的域。當然,這將意味着購買更多的領域,所以如果這是不是一種選擇,我的第二個選擇是設立子域每個的langauge如:http://fr.domain.tldhttp://ru.domain.tld