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

Для ограничения доступа к сайту по IP адресу посетителя необходимо в корневой каталог хоста добавить файл .htaccess со следующими инструкциями:

Order Allow,Deny
Allow from All
Deny from X.X.X.X

где X.X.X.X – IP адрес посетителя.

Первой строкой задаётся порядок обработки инструкций разрешения доступа (Allow) и запрета доступа (Deny). После этого, при обработке инструкций вебсервером, доступ сначала разрешается всем посетителям, а потом запрещается посетителю с указанным IP.

Другим способом решения задачи ограничения доступа к сайту является предоставление доступа только предварительно зарегистрированным посетителям. В данном случае администратору сайта будет необходимо создавать «аккаунты» посетителей (имя пользователя и пароль), которым разрешено заходить на сайт, и сообщать им детали доступа.

Форма ввода логина/пароля для доступа к сайту

Сделать это можно следующим образом. Сначала в файл .htaccess, расположенный в корневой директории хоста, добавляется инструкция:

AuthName "Off limits to unauthorized visitors"
AuthType Basic
AuthUserFile /var/www/html/domains/mydomain.com/.htpasswd
require valid-user

Разберём каждую строчку.

AuthName – предупреждение, которое будут получать пользователи до прохождения процедуры авторизации на сайте.

AuthType – тип авторизации. Обычно достаточно типа Basic.

AuthUserFile – полный путь к файлу (от /), в котором будут храниться имена пользователей и пароли (пароли – в зашифрованном виде). Данный файл принято называть .htpasswd, но использование этого имени совсем необязательно.

reqire valid-user – данная инструкция разрешает доступ тем посетителям, которые верно указали свои имя и пароль.

После этого создаём сам файл .htpasswd (ключ –c в команде ниже) и сразу же добавляем пользователя (например, 1user1).

htpasswd -c .htpasswd 1user1

Далее утилита htpasswd попросит указать и подтвердить пароль для нового пользователя. На этом создание файла .htpasswd и добавление в него первого пользователя заканчивается. Для добавления новых пользователей достаточно выполнить следующую команду:

htpasswd .htpasswd 2user2