Задать вопрос
Все статьи / Хостинг / .htaccess / Контроль доступа через .htaccess для apache
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Контроль доступа через .htaccess для apache

Файл .htaccess позволяет производить дополнительную конфигурацию веб-сервера Apache для:

  • переадресации на другой домен
  • контроля доступа к сайту
  • изменения значений директив PHP
  • отображения собственных страниц ошибок

Директивы для веб-сервера Apache2.4+ отличаются от Apache2.2. В примерах указаны директивы для обеих версий web-серверов.

Для контроля доступа к сайту можно использовать следующие директивы:

Важно: нельзя использовать директивы для веб-сервера Apache2.4+ и Apache2.2 одновременно. Это может привести к некорректной работе сайта.

Домены с кириллическими символами

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

Отклонить все запросы

Apache 2.2

Order deny,allow
Deny from all

Apache 2.4

Require all denied

Разрешить все запросы

Apache 2.2

Order allow,deny
Allow from all

Apache 2.4

Require all granted

Запретить доступ на основе имени хоста

Apache 2.2

Order Allow,Deny
Allow from all
Deny from example.com

Apache 2.4

<RequireAll>
Require all granted
Require not host example.com
</RequireAll>

Использование директив <RequireAll> и Require all granted обязательны если используется более сложная конструкция.

Запретить доступ на основе IP-адреса

Для ограничения доступа к сайту с определённых IP-адресов в файл .htaccess требуется добавить:

Apache 2.2

Order Allow,Deny
Allow from all
Deny from 111.111.111.111
Deny from 222.222.222.222
Deny from 123.123.123.123

Apache 2.4

<RequireAll>
Require all granted
Require not ip 111.111.111.111
Require not ip 222.222.222.222
Require not ip 123.123.123.123
</RequireAll>

Запретить доступ со всех IP-адресов, кроме нужного

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

Apache 2.2

Order Deny,Allow
Deny from all
Allow from 111.111.111.111

Apache 2.4

Require ip 111.111.111.111

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

Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:

Apache 2.2

<Files ПУТЬ_К_ФАЙЛУ>
Order Allow,Deny
Allow from all
Deny from 123.123.123.123
</Files>

Apache 2.4

<Files ПУТЬ_К_ФАЙЛУ>
<RequireAll>
Require all granted
Require not ip 123.123.123.123
</RequireAll>
</Files>

где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет запрещен доступ.

Разрешить доступ к определенному файлу с IP-адреса

Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:

Apache 2.2

<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Files>

Apache 2.4

<Files ИМЯ_ФАЙЛА>
Require ip 77.222.44.126
Require ip 123.123.123.123
</Files>

где ИМЯ_ФАЙЛА - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет разрешен доступ.

Запретить доступ по User-Agent (блокировка ботов)

Apache 2.2

SetEnvIfNoCase User-Agent "AESOP_com_SpiderMan" bad_bot
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot

Apache 2.4

<If "%{HTTP_USER_AGENT} =~ m#BadBot#i">
Require all denied
</If>

где BadBot - необходимо заменить на User_Agent, которым представляется бот. Узнать его можно из лога запросов.


enlightened Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2.4:

Предыдущая статья
Как настроить редирект через .htaccess
Следующая статья
Файл .htaccess