2.7.1.1.6. Ограничение доступа по IP-адресу

Внимание!

Директивы в .htaccess не работают для файлов, расширения которых указаны в списке статических файлов.
Для ограничения доступа через панель управления см. Чёрный список IP.

Директивы нужно размещать в файле .htaccess в каталоге сайта, доступ к которому нужно ограничить. Посетители с ограниченным доступом будут получать ответ 403.

В примерах директив:

  • XXX.XXX.XXX.XXX — IP-адрес, для которого нужно разрешить или запретить доступ.
  • admin/login/ — страница, к которой будет ограничен доступ. Полный адрес будет выглядеть так — http://example.com/admin/login/.
  • Указывать сразу несколько адресов в директивах Order можно несколькими способами:
    • Отдельные адреса — каждый адрес с новой строки в виде Allow from XXX.XXX.XXX.XXX.
    • Диапазоны адресов:
      • В виде маски подсети (например, 123.213.0.0/16, что соответствует диапазону адресов 123.213.0.0-123.213.254.254).
      • С помощью символа звёздочки * для части адреса (например, 123.213.*.*).
  • Указывать сразу несколько адресов в директивах Rewrite можно с помощью регулярных выражений:
    • Отдельные адреса:
      • В виде (a|b|c), где a, b и c это разные адреса.
      • Каждый адрес с новой строки в виде RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$.
    • Диапазоны адресов — в виде \d{1,3} вместо одного из блоков IP-адреса (например, !^123\.213\.\d{1,3}\.\d{1,3}$, что соответствует диапазону адресов 123.213.0.0-123.213.254.254).

Ограничение доступа ко всему сайту с помощью директив Order Allow,Deny:

Order Deny,Allow
Deny from all
Allow from XXX.XXX.XXX.XXX

Ограничение доступа к странице с помощью директив Rewrite:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX$
RewriteRule ^admin/login/? - [F,NC]

Ограничение доступа ко всему сайту с помощью директив Order Allow,Deny:

Order Allow,Deny
Allow from all
Deny from XXX.XXX.XXX.XXX

Ограничение доступа к странице с помощью директив Rewrite:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^XXX\.XXX\.XXX\.XXX$
RewriteRule ^admin/login/? - [F,NC]
Содержание