2.12.9. Визначення країни відвідувача

Примітки:

  • Обмежувати доступ до сайту для різних країн можна через «Обмеження доступу»
  • Спосіб отримання коду країни в PHP описаний тут.

Кожен запит на сайт містить спеціальний заголовок 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]
Зміст