我正在尝试密码保护子域及其所有子目录和文件,但我对此事的知识非常有限,我该如何去做呢?
提前Thanx!
答案 0 :(得分:20)
这是一个简单的两步过程
在.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,则应在安全部分“密码保护目录”中进行配置
编辑:如果这不起作用,那么你需要在 http.conf 中的.htaccess目录(或至少之前的目录)中执行AllowOverride All
后跟一个apache重启
<Directory /path/to/the/directory/of/htaccess>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
答案 1 :(得分:8)
要密码保护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
答案 2 :(得分:1)
你可能想要使用 mod_auth_digest
模块。 Apache为使用全套身份验证和授权模块提供了非常好的guide。
答案 3 :(得分:1)
您需要生成用于身份验证的密码(用户名+密码)字符串,将其写入文件并将其放在要限制访问的子目录中。
字符串看起来像,
username:hashkey
AuthType Basic AuthName "Require Authentication" AuthUserFile [PATH_TO_FILE]/.htpasswd Require valid-user
如果密码未触发,请检查.htaccess文件的权限。
如果验证失败,请检查指定位置是否存在.htpasswd文件。 (确保您的用户帐户具有足够的.htpasswd文件权限才能阅读)
您无需重启服务器即可实现此目的。
如果您有任何疑问,请与我们联系。
答案 4 :(得分:0)
要创建正确的密码,您可以创建一个php文件并在本地(在您的计算机上,而不是在Web服务器上)运行它,其中包含以下内容:
<!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文件放在webcontent目录之外的/ htpasswd /目录中,如AuthUserFile /home/www/usr122/files/htpasswd/.sportsbar_reports_htpasswd
(而不是在webcontent文件夹/home/www/usr122/html/htpasswd/
中)并将.htpasswd文件重命名为它是为了,例如.sportsbar_reports_htpasswd
密码文件本身应该是
testusername:dGATwCk0tMgfM
其中用户名为testusername
,密码为testuserpassword
答案 5 :(得分:0)
只需扩展Mahesh的答案即可。
.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