经常会看到这种现象,看下图
apache 页面访问控制
为什么要进行这样的控制呢,给不同的人看不同的东西,对信息进行保护,虽然这种保护比较低级,多多少少还是有点用的。
一,用htpasswd命令,产生权限控制文件
[zhangy@BlackGhost test]$ htpasswd -c ./access tank //生成一个密码文件 ,-c是新建一个文件 htpasswd -h可查看 New password: //提示输入密码 Re-type new password: //重复密码 Adding password for user tank [zhangy@BlackGhost test]$ cat access //查看一下密码文件 tank:Uj5B3qIF/BNdI //用户名是明文的,密码是加密的。
登录后复制
[zhangy@BlackGhost test]$ htpasswd -c ./access tank //生成一个密码文件 ,-c是新建一个文件 htpasswd -h可查看 New password: //提示输入密码 Re-type new password: //重复密码 Adding password for user tank [zhangy@BlackGhost test]$ 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>
登录后复制
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的文件
[zhangy@BlackGhost test]$ vi .htaccess //打开个文件 ,添加权限内容 [zhangy@BlackGhost test]$ cat .htaccess //下面就是.htaccess的内容 AuthType Basic AuthName "access test" AuthUserFile /home/zhangy/www/test/access Require valid-user
登录后复制
[zhangy@BlackGhost test]$ vi .htaccess //打开个文件 ,添加权限内容 [zhangy@BlackGhost test]$ 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; }
登录后复制
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的方法,其他语言我想也有。您可以把上面的这段代码写成一个文件,进行共用包涵,也可以把它封装到底基,这样不管访问什么页面,都可以进行访问控制。
以上就是php页面访问控制的3种方法的详细内容,更多请关注Work网其它相关文章!