Kullanıcının Ülke dayalı farklı Anasayfam göstermek nasıl?

5 Cevap php

Ben iki etki vardı. rajasekar.com ve rajasekar.in. Ne yapmam gerekiyor ki,

Hindistan türleri www.rajasekar.com olarak adres çubuğundaki url bir kullanıcı o www.rajasekar.in açılmalıdır zaman

Www.rajasekar.com gibi diğer ülke türleri adres çubuğundaki url kullanıcı bu www.rajasekar.com açılmalıdır zaman

Ben bu GOOGLE uygulanan ne olduğunu düşünüyorum. Bu ulaşmada bana yardımcı olun

5 Cevap

Sen kullanıcının uzak bir adrese dayalı ülkeyi tahmin deneyebilirsiniz.

Aşağıdaki çalışan bir çözümdür, olsa yönlendirme mantığı çalışmak zorunda olacak:

$remoteAddr = $_SERVER['REMOTE_ADDR'];
$lookupUrl = sprintf('http://api.hostip.info/country.php?ip=%s', $remoteAddr);
$country = trim(file_get_contents($lookupUrl));

if ('IN' === $country)
{
    $newUrl = 'http://www.rajasekar.in/';

    header(sprintf('Location: %s', $newUrl));
    printf('<a href="%s">Moved.</a>', $newUrl);
    exit();
}

Hindistan'dan gelen arama motoru robotları ancak aynı zamanda. Com içerik taramasını mümkün olduğunu dikkat edin.

ASP.NET 'te, istemcinin IP adresi kullanarak alabilirsiniz:

Request.ServerVariables("REMOTE_ADDR")

Gibi yer hizmeti geo bazı IP kullanın:

  1. Maxmind
  2. IPAddressExtentions

Eğer ülkeyi olsun, kolayca kullanıcıyı yönlendirebilir:

 Response.Redirect("http://www.yourdomain.in")

Accept-Language istek başlığı kullanıcı tarayıcısını ayarlanır ne dil / bölge söyleyecektir.

Yerine (ya da en azından ek olarak) IP adresi ülkeye bakarken, Accept-Language HTTP başlık ($_SERVER['HTTP_ACCEPT_LANGUAGE'] PHP) incelemek gerekir

Bu başlık genellikle dil ülke çiftleri içerir:

en-US, hi_IN, fr, de;q=0.5

PHP intl extension has methods that help parsing it.

Problems with IP lookup:

  • Normal kullanıcıların adres IP-geo veritabanlarında sınıflandırılır nasıl kendi IP adresini değiştirmek veya becerisine sahip değilsiniz. Bu çok daha büyük olasılıkla kullanıcılarının Accept-Language başlığı etkiler kendi işletim sistemi / tarayıcısı, / configure dil seçmek mümkün olduğunu bulunuyor.

  • Ülkedeki kullanıcı daha farklı ISS vekiller, örneğin vardır AOL rotalar bazı uluslararası trafik ABD üzerinden, pek çok mobil kullanıcılar Norveç'te proxy sunucularını sahip olan Opera Mini'yi kullanın. Eğer IP 'arıyorsanız, en azından dikkate X-Forwarded-For başlığını alır. Accept-Language başlığı tür sorunlar olmadan vekiller geçirilir.

  • Ben hostip.info veritabanı kullanılarak ve eksik olabilir ve hatalar içerdiği bulunmuştur oldum. Ayrıca 3. parti PHP komut dosyası HTTP isteği yapan her zaman sitenizi yavaşlatmak ve kendi kaynaklarını boşa gidiyor düşünün. Accept-Language başlığının ayrıştırma arınmıştır.

  • Eğer sadece ülkeyi istemiyorum, ama dil kullanıcılar konuşuyor, o IP → Ülke farklı dilin konuşulduğu ülkeler için doğru olmayacaktır. Accept-Language (Fransızca Kanada için fr_CA, örneğin nl_BE Belçika'da Hollandaca) size daha kesin bilgi verebilir.

Ne yöntem% 100 doğru olduğunu, bu nedenle kullanıcıların seçimini geçersiz kılmak izin akıllıca olacaktır.

Ayrıca "doğru" domain yönlendirmeleri zorlamak eğer büyük olasılıkla bir ABD IP adresinden gelen ve tercih edilen bir dil belirtin olmayacak gibi o arama motorları botlarının, dizin tüm etki etmek mümkün olmayacaktır unutmayın. En iyisi not .com dışındaki etki alanlarına algılama uygulamak ve / veya ana dışındaki sayfalara uygulamak değildir.