Блокировка сайта по странам, как?

Подскажите пожалуйста. Нужно запретить доступ к сайту всем странам кроме России и СНГ. Каким образом это возможно осуществить? В идеале, при заходе из Европы на сайт, человек должен быть переадресован на другой домен.

Движок на php + mysql, сервер на apache + nginx
  • Вопрос задан
  • 6968 просмотров
Решения вопроса 1
@zaregan
Извините, не сразу понял как код вставлять…

  require_once "./geoip.php";
  $gi = geoip_open("./GeoIP.dat",GEOIP_STANDARD);
  $country = geoip_country_code_by_addr($gi, getRemoteAddr());
  geoip_close($gi);
  if (!in_array($country, array('PA','AU','DE','US','CA','NL','IT','NO','DK','GB'))) {
    ob_start();
    header('HTTP/1.1 503 Service Temporarily Unavailable');
    header('Status: 503 Service Temporarily Unavailable');
    header('Retry-After: 3600');
    header('X-Powered-By:');
    echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>503 Service Temporarily Unavailable</title>
    </head><body>
    <h1>Service Temporarily Unavailable</h1>
    <p>The server is temporarily unable to service your
    request due to maintenance downtime or capacity
    problems. Please try again later.</p>
    </body></html>';
    die();
  }
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@under_construction
используйте, например, geobaza.ru/ru/download/ для определения страны по ip-адресу
api на php реализован
Ответ написан
@zaregan
Для нагруженного сайта, решение должно біть на уровне сервера. Но для небольшого сайта можно использовать что-то подобное… PHP и Maxmind…

require_once "./geoip.php"; $gi = geoip_open("./GeoIP.dat",GEOIP_STANDARD); $country = geoip_country_code_by_addr($gi, getRemoteAddr()); geoip_close($gi); if (!in_array($country, array('PA','US','CA'))) { ob_start(); header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 3600'); header('X-Powered-By:'); echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>503 Service Temporarily Unavailable</title> </head><body> <h1>Service Temporarily Unavailable</h1> <p>The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.</p> </body></html>'; die(); }
Ответ написан
@Viktorozorro
Большая просьба, помочь установить редирект и блокировку стран через .htaccess.

Пробовал вот этот код, после применения получена ошибка 500 ...

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
Deny from env=BlockCountry

(CN – Китай)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы