Как сделать гео редирект

Статус
В этой теме нельзя размещать новые ответы.

Soprano

Комбинатор
Регистрация
11 Апр 2009
Сообщения
653
Реакции
975
Интересует, как сделать георедирект - если на сайт заходит посетитель из США - идет перенаправление на 1-й урл, из Австралии - на 2-й урл, из Канады на 3-й и т.д. Если из Индии - перенаправления нет.

Не через ТДС.

Желательно увидеть вариант через .htaccess
 
Ты представляешь себе размер .htaccess со всей базой, используемой GeoIP?
 
Ты представляешь себе размер .htaccess со всей базой, используемой GeoIP?
Я хотел бы выделить только 4 страны каждая по линку + все остальные на 5-й урл уходят. В сети есть варианты типа

Код:
1. Редирект с помощью .htaccess
 
RewriteEngine On
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} at.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-gb.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-at.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-li.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-de.* [NC,OR]
RewriteRule .* http://e-masters.biz [R,L]
 
2. Редирект на JavaScript
<script language="JavaScript">
var language1, language2, i, f;
var loc = new Array("at","au","be","ca","dk","es","fi","gr","ch","de-ch","de",
"fr","en-ie","ie","en-gb","nl","it","gb","no","pt","nz","us");
if (navigator.appName.indexOf("Microsoft") != -1) {
language1=navigator.systemLanguage.toLowerCase();
language2=navigator.userLanguage.toLowerCase();
} else { language1=language2=navigator.language.toLowerCase(); }
for (f=false,i=0;i || (language2 == loc[i])) { f = true; break; } }
if (f) document.location="http://e-masters.biz";
</script>
Мне нужно только, чтоб на разные линки уходило..
 
Код:
GeoIPEnable On
GeoIPDBFile /GeoIP.dat
 
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ [NC]
RewriteRule ^(.*)$ UnitedStates.html [R,L]
 
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$ [NC]
RewriteRule ^(.*)$ Australia.html [R,L]
Здесь список кодов стран мира Для просмотра ссылки Войди или Зарегистрируйся
Код:
1. Редирект с помощью .htaccess
 
RewriteEngine On
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} at.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-gb.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-at.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-li.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr-ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ch.* [NC,OR]
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-de.* [NC,OR]
RewriteRule .* http://e-masters.biz [R,L]
Мне нужно только, чтоб на разные линки уходило..
А что работает такое? Я думал на один редирект сработает только одно правило, причем последнее.
 
Код:
GeoIPEnable On
GeoIPDBFile /GeoIP.dat
 
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ [NC]
RewriteRule ^(.*)$ UnitedStates.html [R,L]
 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$ [NC]
RewriteRule ^(.*)$ Australia.html [R,L]


А что работает такое? Я думал на один редирект сработает только одно правило, причем последнее.

Вроде есть вариант, у буржуев нашел
165a92c3bb79.png

Но он не полный..
 
В смысле, что там одна картинка без пояснений. Что такое, например, /path/to/GeoIP.dat ?
Папка с GeoIP, к примеру /usr/local/share/GeoIP/GeoIP.dat
GeoIP.dat это таблица стран мира для GeoIP, чтобы это работало нужен mod_geoip
Лучше делать так, флаги [NC] и [R,L] не помешают.
Код:
GeoIPEnable On
GeoIPDBFile /GeoIP.dat
 
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ [NC]
RewriteRule ^(.*)$ UnitedStates.html [R,L]
 
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$ [NC]
RewriteRule ^(.*)$ Australia.html [R,L]
Здесь список кодов стран мира Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху