Если вы хотите временно ограничить доступ к своему сайту, один из способов сделать это – использовать комбинацию .htpasswd и .htaccess.
В результате вместо веб-страницы посетитель видит в браузере форму входа. Снимок экрана является иллюстрацией, реальное диалоговое окно зависит от браузера и его языковых настроек.
Разрешение доступа одному пользователю
Войдите в My Zone и откройте файловый редактор (нажмите на кнопку Файлы
в блоке Веб и почта
).
Создайте новый файл с именем .htpasswd
(перед именем должна быть точка!), желательно в том же каталоге, который открылся (вы также можете создать для него отдельный каталог; при условии, что этот каталог не будет доступен через веб).
Откройте генератор паролей .htpasswd, используйте его для создания нужных учетных данных, а затем скопируйте и вставьте текстовую строку из поля OUTPUT
в созданный файл .htpasswd.
Сохраните изменения, нажав кнопку Save
в правом нижнем углу.
Далее откройте корневой каталог веб-сайта (если страница расположена на главном домене, например domain.ee, то по умолчанию это будет каталог htdocs
, если на поддомене, то по умолчанию это будет каталог поддомена).
Создайте новый файл с именем .htaccess
, если такой файл еще не существует в этом каталоге.
Добавьте следующие строки в начало файла:
AuthUserFile /path/to/.htpasswd AuthType Basic AuthName "Restricted webpage" Require valid-user
Замените /path/to/.htpasswd
в первой строке на полный путь к каталогу файла .htpasswd (так, чтобы в конце строки по-прежнему был /.htpasswd
) и сохраните изменения.
Если вы создали файл .htpasswd в том же каталоге, что и тот, который был открыт первым в менеджере файлов, то этот каталог является корневым каталогом сервера. Полный путь к корневому каталогу сервера можно найти в последней строке страницы Данные сервера на вашем сервере (Корневой каталог виртуального сервера
).
Разрешение доступа определенной группе пользователей
Если в файле .htpasswd есть данные доступа для многих пользователей, но вы хотите разрешить доступ к сайту только некоторым из них, это тоже возможно.
Для этого создайте новый файл, в котором введите группы пользователей в форме groupname: username username2 username3
, по одной группе в строке.
Затем в файле .htaccess измените значение строки директивы Require
на: group название группы
, а также добавьте в файл новую строку с директивой AuthGroupFile
, которая должна быть полным путем к каталогу файла группы, то есть расположением файла на сервере. Сохраните изменения.
Немного больше технических деталей
Генератор паролей .htpasswd
Пароли в файле .htpasswd должны быть хэшированы. Самый простой способ получить пароли в нужном формате – использовать этот инструмент для генерации паролей .htpasswd.
В нем вам нужно ввести желаемое имя пользователя и пароль в форму INPUT
(или позволить форме сгенерировать пароль за вас) и нажать на кнопку Generate .htpasswd file
.
После нажатия на кнопку в поле OUTPUT
под формой появится текстовая строка, которую следует скопировать. Текстовая строка отформатирована в виде username:encryptedpassword
и должна быть вставлена в файл .htpasswd в этом же формате.
Содержимое файла .htpasswd
Содержимое файла .htpasswd очень простое – вам нужно только ввести информацию о доступе в формате username:encryptedpassword
, по одному пользователю на каждой строке. Пароль должен быть хэшированным.
Содержание файла .htaccess
Для того, чтобы сайт смог ограничить доступ к странице и выдать форму входа для посетителя, необходимо создать файл .htaccess в корневом каталоге сайта или добавить ссылки на существующий файл .htaccess.
Директива AuthUserFile
AuthUserFile
указывает, где находится файл, содержащий информацию о доступе пользователя. В нем должен быть полный путь к каталогу, где находится файл .htpasswd, то есть, точное расположение файла на сервере.
В нашем примере файл .htpasswd расположен в той же директории, что и файл .htaccess (в корневой директории поддомена restricted.millionviews.eu), но в целях безопасности настоятельно рекомендуется размещать этот файл в каталоге, который невозможно открыть браузером через веб. Например, непосредственно в каталоге /www.sinudomeen.ee/… а еще лучше – в каталоге одного с ним уровня (это можно сделать через SSH).
Полный путь к корневому каталогу сайта можно найти в Мой Zone
в управление хостингом, в разделе Вебсервер
>> Настройки главного домена
или Поддомены
.
Директива AuthType
AuthType
или тип аутентификации может быть None, Basic, Digest или Form. Дополнительную информацию о типах аутентификации можно найти в документации Apache.
Директива AuthName
Раньше значение AuthName
отображалось в форме входа в систему, но теперь его единственная функция – различать домены аутентификации. Благодаря этой директиве, например, от уже прошедшего проверку подлинности пользователя не будут повторно запрашивать учетные данные для входа в систему, если на сервере есть несколько веб-страниц, требующих аутентификации с одним и тем же значением AuthName
.
Директива Require
Директива Require
, описанная в четвертой строке, позволяет указать предположение, при котором попытка входа в систему будет успешной. Например, для значения valid-user
достаточно, чтобы посетитель ввел правильные имя пользователя и пароль, которые соответствуют данным в файле .htpasswd.
Однако можно также разрешить доступ на групповой основе, чтобы только определенные пользователи, которые ввели файл .htpasswd, имели доступ к странице.
В этом случае значение Require
должно иметь вид group GroupName
.