簡體   English   中英

識別用戶位置/ IP和更改信息的網站。 基於此

[英]Website that recognizes user's location/IP & changes lang. based on that

標題很清楚。

我的網站包括英文版和西班牙文版。 您可以通過點擊http://www.chrishonn.comhttp://en.chrishonn.com上的英文翻譯版本訪問西班牙語的主站點。 在每個頁面的索引處有一個鏈接(在底部),允許用戶從一個站點傳遞到另一個站點。

但是,我想知道,谷歌,雅虎和其他品牌網站等大型網站如何識別用戶的地理位置/ IP,以便 - 根據這一點 - 網站的語言被調整( 即您來自中國,並且您訪問www.google.com,您將被重定向到www.google.cn )。


我已在網站的每一頁上說明了這種語言:

<meta http-equiv="content-language" content="en">

這個例子當然來自http://en.chrishonn.com網站之一,這是英文版。

我希望有人可以幫我一臂之力。 謝謝(如果我錯過了什么,請告訴我)。

您可以檢查瀏覽器設置的默認語言,而不是檢測IP地址的位置(通常由於NAT和代理而不可靠)。 有支持此功能的JQuery插件,例如http://keith-wood.name/localisation.html ,或使用服務器端代碼讀取HTTP請求標頭“HTTP_ACCEPT_LANGUAGE”以確定是否要顯示ES或EN現場。

對於Google,您的位置取決於您的IP地址。 來自美國境外的google.com請求會返回HTTP/1.1 302 Found ,會將您重定向到您所在國家/地區的特定域。

正如另一篇文章中所討論的那樣 ,進行這些重定向可能會使SEO變得棘手和復雜。 我建議閱讀Matt Cutt的文章(Google軟件工程師),了解Google如何處理302重定向: SEO建議:討論302重定向

不同的搜索引擎以不同的方式處理302重定向。 使用302重定向時,搜索引擎可能會忽略原始域名。


如果您想從其IP地址確定用戶的位置,那么有許多現成的服務基本上將大多數IP范圍映射到國家/地區。 您可能想要檢查:


另一種流行的技術是解析Accept-Language HTTP標頭,其中包含有關用戶語言首選項的信息。 主流瀏覽器允許用戶修改這些語言首選項。 您可以從以下方面閱讀有關此技


有些網站使用基於IP地址的地理位置,有些我們接受語言標題(可以在瀏覽器中設置)。 無論如何,從可用性的角度來看 - 總是允許人們改變語言並且永遠不會在同一個IP上顯示不同的內容(谷歌和其他搜索引擎不喜歡它,從SEO的角度來看它會很糟糕)。

這些站點通常使用通常稱為“地理定位軟件”的工具。

其中一個最受歡迎的軟件包是MaxMind提供的免費GeoLite國家數據庫。 這將集成到您的應用程序中並提供IP到國家/地區的查找。 使用Apache,您將擁有一些名為GEOIP_COUNTRY_CODE和GEOIP_COUNTRY_NAME的環境變量集。

您的所有應用程序必須在確定您的用戶應該在哪里或默認情況下應根據國家/地區應該具有哪些設置,並重新定向或輸出相應的內容。

您可以對此URL執行GET請求: https//api.teletext.io/api/v1/geo-ip ,它將以JSON格式回復一些國家/地區信息。 有關用法,請參閱https://teletext.io/help/geo-location-service

如果您想自己實施它:我已經使用AWS Cloudfront進行了設置,Cloudfront會在您將請求轉發到您可以使用的源服務器之前為您的請求添加一個標頭(Cloudfront-Viewer-Country)。 確保將Cloudfront分發中的標題列入白名單。

我創建了雲分發,白色列出了CloudFront-Viewer-Country標頭。 但是,當我使用此分發訪問對象時,我沒有在請求標頭中看到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM