Блокировка доступа к сайту

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

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

Запретить доступ к сайту для посетителей из Китая:

RewriteEngine On
RewriteCond %{HTTP:GeoIp-Country-Code} ^(CN)$
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]

Доступ открыт всем, кроме указанных User-Agent

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(useragent1|useragent2|useragent3).*$ [NC]
RewriteRule .* - [F,L]

Вместо useragent1useragent2 и useragent3 укажите User-Agent, которые нужно блокировать (указывать можно в любом регистре).

Доступ закрыт для всех, кроме указанных User-Agent

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^.*(useragent1|useragent2|useragent3).*$ [NC]
RewriteRule .* - [F,L]

Вместо useragent1useragent2 и useragent3 укажите User-Agent, у которых должен быть доступ (указывать можно в любом регистре).

Ограничение доступа к каталогу

require valid-user
Authname "Basic Auth"
Authtype Basic
AuthUserFile "/home/название_аккаунта/.htpasswd"

Файл паролей .htpasswd — это простой текстовый файл, имеющий следующую структуру:

user1:password
user2:password

Где userX — логин пользователя, password — его зашифрованный пароль.

Рекомендуется размещать этот файл в каталоге, недоступном через браузер (вне каталога сайта).

Доступ только к определённому файлу

require valid-user 
Authname "Protected" 
Authtype Basic 
AuthUserFile "/home/название_аккаунта/.htpasswd"
<Files page.php>
allow from all 
satisfy any
</Files>

Где page.php — файл, к которому должен быть открыт доступ в закрытом каталоге.

Доступ только к файлам с определённым расширением

require valid-user 
Authname "Protected" 
Authtype Basic 
AuthUserFile "/home/yourlogin/.htpasswd"
<Files *.cfg>
allow from all 
satisfy any
</Files>

Где .cfg — расширение файлов, к которым будет открыт доступ в закрытом каталоге.

Доступ только к файлам с определёнными расширениями

require valid-user 
Authname "Protected" 
Authtype Basic 
AuthUserFile "/home/yourlogin/.htpasswd"
<FilesMatch ".(gif|bmp|tiff|swf|flv)$">
allow from all 
satisfy any
</FilesMatch>

Где gifbmptiffswfflv — расширения файлов, к которым будет открыт доступ в закрытом каталоге.

© 2007 Supershop.od.ua. All Rights Reserved. Создание сайтов в Одессе