8-800-775-47-72

Помощь

Файл .htaccess для веб-сервера Apache

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

.htaccess - это текстовый файл, содержащий набор директив  веб-сервера, действие которых распространяется на директорию этого файла и все вложенные. Если для какой-то вложенной директории создан свой .htaccess, то на нее и на все ее поддиректории действуют директивы локального файла, а не вышестоящего.

В файле .htaccess находятся дополнительные конфигурации веб-сервера, например, настройки доступа, перенаправления, специальные страницы и т.д. Ограничение доступа к каталогам сайта может быть выполнено несколькими способами.

Ограничение по IP

Ограничение по IP запрещает доступ к каталогам сайта с указанного IP-адреса. Для этого в файл .htaccess допишите следующие директивы.

order allow,deny

Эта директива определяет порядок выполнения правил блокировки, в данном примере - сначала разрешающие, потом запрещающие. Она должна обязательно присутствовать в начале блока директив ограничения доступа.

deny from 155.144.122.1

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

deny from 3a04:250::6f0a:8f06:a4e1:7e10

Директива работает аналогично предыдущей с тем отличием, что здесь IP-адрес указан в формате ipv6.

deny from 10.5

Эта директива запрещает доступ от всех IP-адресов, начинающихся с 10.5, т.е. от подсети адресов.

deny from 192.168.0.0/24

Осуществляет блокировку подсети IP-адресов указанного диапазона. Включите параметр HostnameLookups для работы в таком формате.

deny from mydomain.com

Осуществляет блокировку подключений, относящихся к домену mydomain.com.

allow from all

Директива разрешает доступ всем запросам к сайту.

Описанные выше директивы должны комбинироваться в единый блок в зависимости от того, что вы хотите запретить и что оставить в доступе.

Например, блок

order allow,deny

deny from 3a04:250::6f0a:8f06:a4e1:7e10

allow from all

означает, что сначала будут выполняться allow-строки, потом deny-строки, будет разрешен доступ всем запросам, кроме тех, которые пришли с IP-адреса 3a04:250::6f0a:8f06:a4e1:7e10.

Ограничение при помощи пароля

Для использования описанных ниже директив включите модули  auth_basic, authn_file веб-сервера Apache.

В файл .htaccess допишите следующие директивы:

AuthType Basic

AuthName "Требуется пароль для доступа"

AuthUserFile /path/to/.htpasswd

htpasswd - это утилита для генерации паролей, которая находится в директории /bin веб-сервера. При помощи нее необходимо создать файл с паролем, выполнив, например, команду

htpasswd -bcm /path/to/.htpasswd username userpassword

Ключ b говорит о том что пароль будет указан в командной строке, c указывает на то, что файл необходимо создать новый, m указывает на тип шифрования - MD5, .htpasswd - имя создаваемого файла с логином и паролем, username - имя пользователя, для которого генерируется пароль, userpassword - пароль пользователя.

В результате будет создан файл .htpasswd с содержанием:

username:$yqb7$i7Kj719G&erXgfPKfgYewAQNjkEIo8/

Чтобы добавить пользователя в уже существующий файл .htpasswd, выполните команду

htpasswd -bm /path/to/.htpasswd username1 userpassword1

Для удаления пользователя из .htpasswd выполните команду:

htpasswd -D /path/to/.htpasswd username1

Информацию о всех возможных ключах можно получить в справке к утилите:


 

Назад к категории