отваряне на сайт от различни държави ,да се отваря винаги на английски?

naskobg

Well-Known Member
здравейте
Искам да попитам има ли начин да се направи така че когато сайтът се посети от човек който живее в Русия да му се отваря руска версия на сайта.(с руски език) когато се посети от човек който живее в USA да се му отваря англииска версия на сайта както и същото за човек от България, а всеки друг който не е българин,американец или руснак да му се отваря по подразбиране английската версия на сайта?
как става това?
благодаря предварително.
 
От: отваряне на сайт от различни държави ,да се отваря винаги на английски?

Има си бази с IP-тата на съответните държави, примерно: http://ip2location.net/ . Обикновено тука опциите са ти 2:
- купуваш си базата, импортваш на твоя сървър и проверяваш откъде идва посетителя.
- има подобни сайтове с API достъп, като трябва да ги викаш за всеки посетител. Може да си измислиш и някакъв вариант за кеширане локално при теб, понеже тези IP-та се сменят сравнително рядко.
тук и за двата варианта са необходими някакви инвестиции, като втория май е по-евтин.

Другия вариант е да разчиташ на Accept-Language хедъра, ама за него кой браузър в какви случаи го слага е малко трудно да се разбере.
 
Това става с mod_geoip + htaccess. Ако на сървъра ти го има този модул, нямаш никакъв проблем да го ползваш. Поразрови се из нета за документация. Тук има пример за това как може да го ползваш http://www.maxmind.com/app/mod_geoip

В твоя случай ще е нещо от този род:
Код:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

# Редиректване за България
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG$
RewriteRule ^(.*)$ http://bg.domain.com$1 [L]

# Редиректване за Русия
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^RU$
RewriteRule ^(.*)$ http://ru.domain.com$1 [L]

# Редиректване за всички останали
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(BG|RU)$
RewriteRule ^(.*)$ http://default.domain.com$1 [L]

Не съм го тествал де, но е нещо подобно ;)
 

Горе