apt install libapache2-mod-geoip
/etc/apache2/mods-available/geoip.conf :
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
</IfModule>
Проверка:
<?php
print_r($_SERVER);
?>
<html>
<body>
<?php
$country_name = apache_note("GEOIP_COUNTRY_NAME");
print "Country: " . $country_name;
?>
</body>
</html>
Запрет доступа к сайту через .htaccess :
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^UA$
RewriteRule .* – [F]
Данный пример закрывает доступ к сайту с Украины
Все, кроме РФ вот (восклицательный знак - знак отрицания в данном случае):
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^!RU$
RewriteRule .* – [F]
Но с таким подходом, кстати, вы закроете доступ к сайту и для Google Bot, который Mountain View, United States