Я пытаюсь защитить паролем поддомен и все его подкаталоги и файлы, но мои знания по этому вопросу очень ограничены, как я могу это сделать?
Защита паролем каталога и всех его подпапок с использованием .htaccess
Ответ 1
Это простой двухэтапный процесс
В вашем .htaccess поставьте
AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
require valid-user
используйте http://www.htaccesstools.com/htpasswd-generator/ или командную строку для генерации пароля и поместите его в .htpasswd
Примечание 1: Если вы используете cPanel, вы должны настроить в разделе безопасности "Папки защиты паролем"
EDIT: Если это не сработало, тогда вам нужно сделать AllowOverride All
в каталог .htaccess(или по крайней мере до предыдущих) в http.conf, за которым следует apache перезагрузка
<Directory /path/to/the/directory/of/htaccess>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
Ответ 2
Чтобы защитить паролем каталог, обслуживаемый Apache, вам нужен файл .htaccess в каталоге, который вы хотите защитить, и файл .htpasswd, который может находиться в любом месте вашей системы, к которому пользователь Apache может получить доступ (но поместите его где-нибудь разумно и приватно). Скорее всего, вы не хотите помещать .htpasswd
в ту же папку, что и .htaccess
.
Возможно, файл .htaccess уже существует. Если нет, создайте его. Затем вставьте:
AuthType Basic
AuthName "Your authorization required message."
AuthUserFile /path/to/.htpasswd
require valid-user
Затем создайте файл .htpasswd, используя любое имя пользователя и пароль. Пароль должен быть зашифрован. Если вы работаете на сервере Linux, вы можете использовать команду htpasswd, которая зашифрует пароль для вас. Вот как эта команда может быть использована для этого:
htpasswd -b/path/to/password/file username password
Ответ 3
Возможно, вы захотите использовать модуль mod_auth_digest
. Apache предоставил очень хороший руководство для использования всего спектра модулей аутентификации и авторизации.
Ответ 4
Вам нужно сгенерировать пароль (имя пользователя + пароль) для аутентификации, записать его в файл и поместить его в подкаталог, который вы хотите ограничить доступ.
Строка выглядит так:
username:hashkey
- Вы можете использовать HTTP-генератор паролей для этого.
- Скопируйте и вставьте строку, полученную с вышеуказанного сайта, в новый файл (.htpasswd) в любом месте за пределами веб-сайта вашего сайта (лучше держать где-либо внутри домашнего каталога пользователя).
- Добавьте следующие строки в ваш .htaccess файл.
AuthType Basic AuthName "Require Authentication" AuthUserFile [PATH_TO_FILE]/.htpasswd Require valid-user
-
Если пароль не запускается, проверьте разрешение файла .htaccess.
-
Если аутентификация завершается с ошибкой, проверьте наличие файла .htpasswd в указанном месте. (Убедитесь, что ваша учетная запись пользователя имеет достаточно привилегий для чтения файла .htpasswd)
-
Для этого вам не нужно перезагружать сервер.
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.
Ответ 5
Чтобы создать правильный пароль, вы можете создать файл php и запустить его локально (на вашем компьютере, а не на веб-сервере) со следующим содержимым:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form method="post" accept-charset="utf-8">
<input type="text" name="clear"/>
<input type="submit" name="submit" value="generate" />
</form>
<?php
header("Content-Type: text/html; charset=utf-8");
if (isset($_POST['clear']) && $_POST['clear'] != '') {
$cl = $_POST['clear'];
$pw = crypt($cl, base64_encode($cl));
echo $pw;
}
?>
</body>
</html>
Обычно я помещаю свой файл .htpasswd в каталог с именем/htpasswd/вне каталога webcontent, например AuthUserFile /home/www/usr122/files/htpasswd/.sportsbar_reports_htpasswd
(а не в папке webcontent /home/www/usr122/html/htpasswd/
) и переименуйте файл .htpasswd в том, что он предназначен, например. .sportsbar_reports_htpasswd
Файл паролей должен выглядеть как
testusername:dGATwCk0tMgfM
где имя пользователя testusername
и пароль testuserpassword
Ответ 6
Просто расширьте ответ Махеша.
.htaccess
AuthType Basic
AuthName "restricted area"
AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
require valid-user
Если вы не хотите использовать онлайн-генератор паролей, вы можете использовать openssl
openssl passwd -apr1 your_password
Затем поместите сгенерированный пароль в .htpasswd
формате:
username:<generated_password>
Пример:
.htpasswd
username:$apr1$ydbofBYx$6Zwbml/Poyb61IrWt6cxu0