今天决定写一篇关于“在Apache下使用.htaccess和.htpasswd给文件夹加上密码认证”的文章。
此方法可以让指定文件夹下的内容(图片和页面等资源)只提供给通过合法验证的用户访问。比较常用的地方就是应用在一些开源的项目(例如:CMS等)上,用来简单保护一下后台的访问权限。
下面进入正题,如何使用.htaccess和.htpasswd来给目录加上身份验证;
- 创建“.htpasswd”文件,格式为“用户名:密码”:【注:window下可能无法直接创建,可以用过文本创建并写入下面代码后,通过另存为”.htpasswd”,注意需要带双引号的。】
admin:123456
- 创建“.htaccess”文件,格式如下,相关指令可以自己网上去搜索了解:
AuthUserFile .htpasswd文件绝对路径
AuthType Basic
AuthName “restricted”
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
例如:
AuthUserFile G:/php_work/.htpasswd
AuthType Basic
AuthName “restricted”
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
- 第三步是把创建的“.htpasswd”和“.htaccess”放到要保护的目录下,现在访问保护的目录下的文件即可看见如下效果:
其次还有两点说明:
第一点是“.htpasswd”文件可以放在随意位置,而“.htaccess”则必须放在要保护的目录并填写好.htpasswd的绝对路径,也就是说密码文件“.htpasswd”可以放在web目录之外;
第二点是“.htpasswd”文件里的密码是可以加密的,具体加密方法如下:
- ?通过地址“http://www.huangguofeng.com/htaccess_demo/”来生成密码;
- 用生成的密码直接覆盖“.htpasswd”文件中的密码即可,如:admin:$apr1$cj84bdns$JQx/a7gearo2W9wts8Asz.
如果你觉得我弄出来的这个在线加密程序可能不安全的话,我能理解,所以我把加密源码文件、获取当前文件路径源码文件和实例一起打包好给你下载了。