尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。尽管JavaScrip等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。
一、创建.htaccess文件:
创建.htaccess文件也许会给你带来一些困难。因为.htaccess是一个古怪的文件名(它事实上没有文件名,只有一个由8个字母组成的扩展名),而在一些系统(如windows 3.1)中无法接受这样的文件名。
创建.htaccess文件有一下两种方法:
1、在ms-dos中,使用以下命令
2、将其上传到服务器上,直接使用FTP软件来重命名。
利用.htaccess将一个目录加上密码保护分两个步骤:
1、在.htaccess文档里加上几行适当的代码:
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user
AuthName --是浏览器弹出登录框时显示的被保护的名字,可自行改动MemberPage。
AuthType Basic -- 不要进行改动。
AuthUserFile -- /full/parth/to/.htpasswd则应该替换为指向.htpasswd文件(后面详述该文档)的绝对服务器路径。
Require -- 设置可以对被保护目录进行访问的用户。
Ⅰ:require valid-user --就是指在 .htpasswd 中的任何一位用户都可以访问。
Ⅱ:require user username 或 require user username1 username2 username3 --
指定.htpasswd中的特定的用户可以访问被保护的目录。
Ⅲ:require group groupname --指定用户组来访问被保护目录。
设置组的方法是再创建一个.htgroup文件,内容如下:
groupname1: username1 username2 username3
groupname2: username1 username3 username4
再在.htaccess文件中添加以下内容:
说明:.htpasswd 是一个包含用户名和密码的文档,可以使用文本编辑器进行创建,创建后,在.htpasswd中添加用户名和密码,该文件中每一句代表一个用户,用户名和加密后的密码以冒号分隔,(密码必须加密后才可以使用,加密方法一般是使用crypt,如果使用的是apache for win32版本,要使用......./apache/bin/htpasswd.exe来创建使用md5加密的文件)
2、将.htaccess文件放进要保护的目录下
.htaccess和.htpasswd文件要以ASCII模式上传到服务器。
二、使用自定义的错误页面:
任何页面错误代码(像404找不到页面),都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面:
举例来说,如果根目录下有一个nofound.html文件,使用nofound.html作为404 error的页面:
如果文件不在网站的根目录下,只需把路径设置为:
注意:不要将自定义的错误页面(如:500.html)放到被保护的目录下。
以下是一些最常用的错误:
400 - Bad request 错误请求
403 - Forbidden 禁止
500 - Internal Server Error 内部服务器错误
404 - Wrong page 找不到页面
三、.htaccess说明:
在apache for win32的版本中,httpd.conf中默认的是:
......
AllowOverride None
......
</Directory>
需要把None改为All以后,重启apache服务器,被保护目录下的.htaccess才可以正常运行。