认证对象:某一个网站目录。html
启用认证apache
1.即用AllowOverride
指令指定哪些指令在针对单个目录的配置文件中有效:AllowOverride AuthConfig
服务器
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>段。 AuthType Basic AuthName "Restricted Files" AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen
对应的实际测试效果:编辑器
</VirtualHost>
<VirtualHost *:80>
ServerName 127.0.0.1
DocumentRoot "E:/wamp/www/"
ErrorLog "E:/wamp/logs/www-error.log"
CustomLog "E:/wamp/logs/www-access.log" common
<Directory "E:/wamp/www/">
Options Indexes FollowSymLinks
#AllowOverride all
AllowOverride AuthConfig
AuthType Basic
AuthName "test authconfig"
AuthUserFile E:/wamp/bin/apache/Apache2.2.21/htpasswd/passwords
Require user rbowen ide
Order allow,deny
Allow from all
</Directory> 工具
</VirtualHost>测试
3容许多我的访问:网站
若是想容许多人访问,那么就必须创建一个组文件以肯定组中的用户。其格式很简单,能够用你喜欢的编辑器创建,例如:ui
GroupName: rbowen dpitts sungo rshersey
它只是每组一行的一个用空格分隔的组成员列表。
向已有的密码文件中增长一个用户,能够输入:
htpasswd /usr/local/apache/passwd/passwords dpitts
程序的提示和上面的同样,可是它会追加到已有的文件中,而不是建一个新文件(参数 -c
能够强制创建新的密码文件)。
如今,须要将.htaccess
文件修改为这样:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
如今,GroupName
组中的成员都在password
文件中有一个相应的记录,从而容许他们输入正确的密码进行访问。
除了创建组文件,还有另外一种途径容许多人访问,就是使用以下指令:
Require valid-user
使用上述指令,而不是 Require user rbowen
,能够容许密码文件中的全部用户使用正确的密码进行访问。经过为每一个组创建一个密码文件,这里甚至容许列举各个组,其优势是Apache只须要检查一个文件(而不是两个),其缺点是,必须维护众多密码文件,并且要确保AuthUserFile
指定了一个正确的密码文件
ps:上述若是人多的话,认证须要耗费时间。
4其余:
Allow
和Deny
指令能够容许或拒绝来自特定主机名或主机地址的访问,同时,Order
指令告诉Apache处理这两个指令的顺序,以改变过滤器。
这些指令的用法:
Allow from address
address能够是一个IP地址(或者IP地址的一部分),也能够是一个完整的域名(或者域名的一部分),还能够同时指定多个IP地址和域名。
好比,要拒毫不受欢迎的兜售垃圾的站点:
Deny from 205.252.46.165
这样,这个指令所管辖的区域将拒绝全部来自该地址的访问。除了指定IP地址,也能够指定域名,如:
Deny from host.example.com
另外,还能够指定地址或域名的一部分来阻止一个群体:
Deny from 192.101.205
Deny from cyberthugs.com moreidiots.com
Deny from ke
Order
能够组合Deny
和Allow
指令,以保证在容许一个群体访问的同时,对其中的一些又加以限制:
Order deny,allow
Deny from all
Allow from dev.example.com
只列出Allow
指令不会获得你想要的结果,由于它在容许指定对象访问的同时并不由止其余未列出的对象的访问。因此上例使用的方法是:首先拒绝任何人,而后容许来自特定主机的访问。