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

Примітки:

Спеціальний модуль nginx у кожний запит на сайт додає заголовок GeoIp-Country-Code з двобуквеним кодом країни відвідувача (ISO 3166). Країна визначається на основі IP-адреси відвідувача за даними MaxMind GeoLite.

Нижче наведено варіанти вирішення деяких типових завдань (у всіх прикладах зазначені рядки потрібно додати на початок файлу .htaccess у кореневому каталозі сайту):

Заборонити доступ до сайту для всіх відвідувачів з Китаю:

RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} ^(CN)$
RewriteRule .* - [F]

Заборонити доступ до сайту для всіх відвідувачів з України, крім певної IP-адреси або підмережі:

RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} ^(UA)$
RewriteCond expr "! -R '123.123.123.0/24'"
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]
Зміст

    (1)

    Коментарі

    polymerconsulting.store
    росію та беларусь як заблокувати?
    karlov
    Простіше за все це зробити через обмеження доступу за країнами — https://www.ukraine.com.ua/uk/wiki/hosting/sites/my-sites/access-restriction/