在win下apache配置目录权限
时间:2006-07-08 来源:jingzhi
通过.htacess文件设置目录访问权限.
通常我们可以在程序里来进行验证,也就是通过php写入http协议的头文件。而使用apache控制更有效。
有关文章可以参考apache的官方网站的文档。(www.apache.org)
下面是我的配置(注意的是,因为在windows下的fat32/ntfs文件系统不支持.htaccess类型的文件名,所以我们需要改写该文件名。)
首先更改apache的配置文件httpd.conf
找到下面一行
AccessFileName .htaccess
改成
AccessFileName user.htaccess
(当然后面的名字可以是其他的,只要不以.开头即可。但这样写更容易记忆和读取)
然后是接下来的正则匹配也要改
找到
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch> 改成: <FilesMatch "^user\.ht"> #这里因为要匹配passwd文件,所以在window下你的密码文件也不能用.开头。统一命名为user.htpasswd好了。呵呵
Order allow,deny
Deny from all
</FilesMatch> 再接下来是找到: AllowOverride None 这行,将起注释掉(前面加#) 然后跟着添加两行,成为这样: # AllowOverride None AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec 好了,到现在我们配置结束,然后重起apache服务,之后在需要设置访问权限的目录中防入user.htaccess文件,在他里面写如认证的内容即可。 如:在www/mytest 目录下生成user.htaccess文件内容如下: <Limit GET POST OPTIONS>
Deny from all
Allow from 10.29.100.0/24 #只允许10.29.100网段的用户访问该目录。
</Limit> AuthUserFile /home/user.htpasswd #登陆权证验证的用户密码文件
#AuthGroupFile /dev/null #验证组文件
AuthName "login information"
AuthType Basic #验证类型 #<Limit GET>
#require user newsadmin
#</Limit> 这样我们再通过命令行(cmd)生成一个用户密码文件 D:\Apache\bin>htpasswd -c user.htpasswd mytest Automatically using MD5 format.
New password: ******
Re-type new password: ******
Adding password for user mytest 再通过浏览器访问该目录时就需要首先输入验证的用户名和密码,正确后如果您的ip网段在指定范围内则出现访问内容,否则访问被拒绝。 这样在windows下的目录访问权限就设置好了,当然这样会对服务器的效率有所损失,因为每次访问目录都要先查看是否有验证文件存在。 当然也可以把验证段直接写在httpd.conf 内,但这样写的好处是可以随时更改验证条件而不用重起服务器。而且可读性好。
Order allow,deny
Deny from all
</FilesMatch> 改成: <FilesMatch "^user\.ht"> #这里因为要匹配passwd文件,所以在window下你的密码文件也不能用.开头。统一命名为user.htpasswd好了。呵呵
Order allow,deny
Deny from all
</FilesMatch> 再接下来是找到: AllowOverride None 这行,将起注释掉(前面加#) 然后跟着添加两行,成为这样: # AllowOverride None AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec 好了,到现在我们配置结束,然后重起apache服务,之后在需要设置访问权限的目录中防入user.htaccess文件,在他里面写如认证的内容即可。 如:在www/mytest 目录下生成user.htaccess文件内容如下: <Limit GET POST OPTIONS>
Deny from all
Allow from 10.29.100.0/24 #只允许10.29.100网段的用户访问该目录。
</Limit> AuthUserFile /home/user.htpasswd #登陆权证验证的用户密码文件
#AuthGroupFile /dev/null #验证组文件
AuthName "login information"
AuthType Basic #验证类型 #<Limit GET>
#require user newsadmin
#</Limit> 这样我们再通过命令行(cmd)生成一个用户密码文件 D:\Apache\bin>htpasswd -c user.htpasswd mytest Automatically using MD5 format.
New password: ******
Re-type new password: ******
Adding password for user mytest 再通过浏览器访问该目录时就需要首先输入验证的用户名和密码,正确后如果您的ip网段在指定范围内则出现访问内容,否则访问被拒绝。 这样在windows下的目录访问权限就设置好了,当然这样会对服务器的效率有所损失,因为每次访问目录都要先查看是否有验证文件存在。 当然也可以把验证段直接写在httpd.conf 内,但这样写的好处是可以随时更改验证条件而不用重起服务器。而且可读性好。
相关阅读 更多 +