2.12.9. Определение страны посетителя
Каждый запрос на сайт содержит специальный заголовок GeoIp-Country-Code
, в котором содержится двухбуквенный код страны посетителя (ISO 3166). Страна определяется исходя из IP-адреса посетителя по данным MaxMind GeoLite.
Ниже представлены варианты решения некоторых типичных задач (во всех примерах указанные строки нужно добавить в начало файла .htaccess в корневом каталоге сайта):
Запретить доступ к сайту для посетителей из Китая:
RewriteEngine On RewriteCond %{HTTP:GeoIp-Country-Code} ^(CN)$ RewriteRule .* - [F]
Сделать редирект с главной страницы в подраздел /ua/
для посетителей из Украины:
RewriteEngine On RewriteCond %{HTTP:GeoIp-Country-Code} ^(UA)$ RewriteCond %{REQUEST_URI} ^/$ RewriteRule .* /ua/ [L,R=302]
Заблокировать POST-запросы (комментарии/авторизация на сайте/постинг на форуме) со всех стран, кроме Украины и Польши:
RewriteEngine On RewriteCond %{HTTP:GeoIp-Country-Code} !^(UA|PL)$ RewriteCond %{REQUEST_METHOD} POST RewriteRule .* - [F]
Заблокировать GET-запросы (посещение страниц/использование сайта) со всех стран, кроме Украины и Польши:
RewriteEngine On RewriteCond %{HTTP:GeoIp-Country-Code} !^(UA|PL)$ RewriteCond %{REQUEST_METHOD} GET RewriteRule .* - [F]