`
天梯梦
  • 浏览: 13732788 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

使用.htaccess文件为站点文件夹设置密码保护

阅读更多

apache服务器已经提供了丰富的认证支持,我们只需要制作两个文件——.htaccess和.htpasswd(注意前面带有一个点)。

注意:由于.htaccess文件名结构较特别,在win32系统内无法创建文件名为.htaccess的文件,唯有的办法是在文本编辑器中写好.htaccess文件内容,保存,上传(ASCII传输方式)至站点服务器,然后在FTP中重命名上传文件为.htaccess即可。

 

AuthType Basic
AuthName "restricted area"
AuthUserFile /full/path/to/passwordprotected/.htpasswd
require valid-user 

 

第一行的AuthType指的是采用的认证方式,在这里我们选择的是一般的Basic,要注意的是,Basic认证方式传输密码过程是不加密的,更安全的 方式是Digest,但Digest认证方式需要mod_auth_digest模块的支持,使用前最好先通过检查一下服务器是否已经开启该模块;第二行 的AuthName记录的认证名称,会显示在认证询问框上,如果存在多个认证,认证名称可以让你更清楚当前认证该输入什么用户名和密码,遗憾的是认证名称 似乎不支持中文;第三行,输入存放用户密码的认证文件路径。

 

username:123456
username:654321
users:12tir.zIbWQ3c

 

创建好文件后,我们需要向这个文件注入用户名和密码,如果你使用Linux或Unix类操作系统,使用 htpasswd命令就可以办到,如果你能通过SSH登陆到你的服务器,那么你可以使用htpasswd管理.htpasswd文件中的用户名和密码,如 果不行,还有很多在线工具(如 http://www.htaccesstools.com/htpasswd-generator/http://www.4webhelp.net/us/password.php)可以帮助你生 成.htpasswd文件中使用的密码。

 

或者用php生成

 

<?php
// Password to be encrypted for a .htpasswd file
$clearTextPassword = 'some password';

// Encrypt password
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));

// Print encrypted password
echo $password;
?>
 

最后,我们来测试一下,新建一个文件夹passwordprotected把做好的两个文件上传并同一个测试文件test.php放入该文件夹,将文件夹 上传到服务器根文件夹,假如你是在本地测试服务器上,输入http://localhost/passwordprotected/test.php的路 径,看,这时是否会弹出一个认证询问框呢?输入相应帐户名和密码,你就可以看到服务器的配置情况了。如果浏览器出现500错误,很可能是 AuthUserFile路径设置不正确导致。

 

 可以参考; http://qiong.info/archives/2423

 

 

分享到:
评论
2 楼 天梯梦 2014-12-05  
这个跟参数怎么设置没有任何关系,如果你设置了文件夹保护,那么当你打开http://localhost/passwordprotected/test.php的时候就会弹出对话框,让你输入id和密码,之后该文件下的内容就可以正常使用了。 但是如果你是想让文件夹外的文件获取文件夹里面文件的信息,据我所知,正常情况下是不可以的,否则加密文件夹就没有意义了。如果你实在想实现这种功能,那么就应该研究一下php api的实现,而不是用文件夹加密。
1 楼 mwxkingboy 2014-12-04  
怎么通过 php post/get访问这个网址啊,http://localhost/passwordprotected/test.php ,参数怎么设置呢。如果已经知道文件夹用户名密码的情况下。

谢谢。

相关推荐

Global site tag (gtag.js) - Google Analytics