Раздел помощи SpaceWeb

Фильтрация запросов к сайту с помощью модуля GeoIP

Модуль php GeoIP позволяет определить из какой страны идет запрос к сайту. С помощью этого модуля можно ограничить доступ к сайту из определенной страны.

Для ограничения, необходимо добавить директивы в файл .htaccess. Директивы для веб-сервера Apache2.4+ отличаются от Apache2.2. В примерах указаны директивы для обеих версий web-серверов.

Важно: нельзя использовать директивы для веб-сервера Apache2.4+ и Apache2.2 одновременно. Это может привести к некорректной работе сайта.

Разрешения запросов из определенных стран:

Apache 2.2

<IfModule mod_geoip.c>
RewriteEngine on
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE RU GoodCountry
Order Allow,Deny
Allow from env=GoodCountry
</IfModule>

Где RU обозначение страны из которой будет доступ сайт. Можно указать несколько стран, например:

<IfModule mod_geoip.c>
RewriteEngine on
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE RU GoodCountry
SetEnvIf GEOIP_COUNTRY_CODE BY GoodCountry
SetEnvIf GEOIP_COUNTRY_CODE KZ GoodCountry
Order Allow,Deny
Allow from env=GoodCountry
</IfModule>

В этом случае сайт будет доступен из России, Белорусии и Казахстана.

Apache 2.4

<IfModule mod_geoip.c>
RewriteEngine on
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE RU GoodCountry
<RequireAny>
<RequireAll>
Require all denied
</RequireAll>
</RequireAny>
<RequireAny>
<RequireAll>
Require env GoodCountry
Require all granted
</RequireAll>
</RequireAny>
</IfModule>

Список кодов стран предоставлен в Википедии.


enlightened Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2.4: