Модуль веб-сервера Apache GeoIP позволяет определить, из какой страны идет запрос к сайту. С помощью этого модуля можно ограничить доступ к сайту из определенной страны. Для ограничения доступа необходимо добавить директивы в файл .htaccess. Директивы для веб-сервера Apache 2.4+ отличаются от Apache 2.2. В примерах указаны директивы для обеих версий веб-сервера. Важно: - Нельзя использовать директивы для веб-сервера Apache 2.4+ и Apache 2.2 одновременно. Это может привести к некорректной работе сайта. - Нельзя добавлять в файл .htaccess путь к файлу с базой данных GeoIP, например, так: GeoIPDBFile /usr/share/GeoIP/GeoIP.dat Это приведёт к ошибкам 500 на сайте. На тарифах виртуального хостинга база данных GeoIP прописана по умолчанию на уровне системы, указывать соответствующую настройку в .htaccess не нужно.
Разрешения запросов из определенных стран: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>
|