使用.htaccess保护目录

使用.htaccess对web目录进行保护,有2种方法。
一种是在apache2的配置文件中写入目录的保护状况,另外一种,是在需要保护的目录下放置.htaccess文件。
2种方法有些区别。一般来说,第一种的方法性能好些;而对于虚拟主机来说,似乎是只能采用第2种方法

介绍用密码来保护服务器上的目录。
 
首先需要建立一个密码文件。这个文件应该放在不能被网络访问的位置,以避免被下载, 例如,如果,/usr/local/apache/htdocs以外的空间不能被网络访问, 那么可以考虑把密码文件放在/usr/local/apache/passwd目录中。
 
Apache在其安装目录的bin子目录中提供了叫htpasswd的工具,以建立密码文件,可以这样使用:
 

htpasswd -c /usr/local/apache/passwd/passwords rbowen

htpasswd会要你输入密码,并要求重新输入以确认:
 

# htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen

如果htpasswd不在搜索路径中,则必须使用完整路径, 如,/usr/local/apache/bin/htpasswd
 
然后,需要修改httpd.conf或.htaccess文件, 以指示服务器允许哪些用户访问并向用户索取密码。 例如,要保护 /usr/local/apache/htdocs/secret 目录, 则可以将下列指令写入 /usr/local/apache/htdocs/secret/.htaccess, 或者httpd.conf的 <Directory /usr/local/apache/apache/htdocs/secret> 段。也就是
 
<Directory /usr/local/apache/apache/htdocs/secret>
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
</Directory >

Leave a Reply

Your email address will not be published.