一,用htpasswd命令,产生权限控制文件

htpasswd -c ./access tank  // 生成一个密码文件 ,-c是新建一个文件  htpasswd -h可查看
New password:            //提示输入密码
Re-type new password:        //重复密码
Adding password for user tank

cat access    //查看一下密码文件
tank:Uj5B3qIF/BNdI      //用户名是明文的,密码是加密的。

到这儿密码文件是生成好了。

二,页面访问控制方法

1,能过修改httpd.conf或者是httpd-vhosts.conf来进行配置

listen 10004
NameVirtualHost *:10004
<VirtualHost *:10004>
 DocumentRoot "/home/zhangy/www/test"
 ServerName *:10004
 BandwidthModule On
 ForceBandWidthModule On
 Bandwidth all 1024000
 MinBandwidth all 50000
 LargeFileLimit * 500 50000
 MaxConnection all 2
 
 ErrorLog "/home/zhangy/apache/blog.51yip.com.com-error.log"
 CustomLog "/home/zhangy/apache/blog.51yip.com-access.log" common

//看一下,下面的配置

 <Directory /home/zhangy/www/test>
 AuthType Basic
 AuthName "access test"
 AuthUserFile /home/zhangy/www/test/access
 Require valid-user
 </Directory>
</VirtualHost>

2,我们可以利用.htaccess文件来进行控制

在test的根目录下面建一个.htaccess的文件

shell» vi .htaccess 打开个文件 ,添加权限内容 shell» cat .htaccess 下面就是.htaccess的内容

 AuthType Basic
 AuthName "access test"
 AuthUserFile /home/zhangy/www/test/access
 Require valid-user

如果要给很多人设置不同的用户名和密码,使用AuthGroupFile设置选项比较方便

3,不用密码文件,也可以进行访问控制

define('ADMIN_USERNAME','tank');     // Admin Username
define('ADMIN_PASSWORD','tank');      // Admin Password
 
//log check
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
 $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||$_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {
 Header("WWW-Authenticate: Basic realm=\"access test\"");
 Header("HTTP/1.0 401 Unauthorized");
 
 echo <<<EOB
 <html><body>
 <h1>Rejected!</h1>
 <big>Wrong Username or Password!</big>
 </body></html>
EOB;
 exit;
}

上面用的是php的方法,其他语言我想也有。您可以把上面的这段代码写成一个文件,进行共用包涵,也可以把它封装到底基,这样不管访问什么页面,都可以进行访问控制。