- Хостинг
- Услуги
- Помощь
- Акции
Помощь
Файл .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
Информацию о всех возможных ключах можно получить в справке к утилите: