这个技术非常重要,能够控制一些非法用户访问本内容。假设我们的网站: http://192.168.0.8/phpmvc/guide/WEB-INF 是我们的后台管理目录,我不允许一些非法用户进行访问,那么我就必须设定对该目录访问是需要验证的。

方法:

1、打开apache的配置文件httpd.conf,在文件末尾加入如下代码:

<Directory "D:/programs/workspace/phpmvc/guide/WEB-INF"> 

authtype basic 

authname "Private" 

authuserfile D:/programs/Apache2/bin/admin.dat  //保存认证信息的文件

require user feng  //‘feng’需要认证的用户名,也可以用别的用户名 

Options Indexes FollowSymlinks MultiViews 

AllowOverride None 

</Directory>

2、打开命令提示行,切换到apache的bin目录下(如:D:\programs\Apache2\bin)。

3、运行命令htpasswd -c admin.dat feng进行密码的设置,也可以用别的用户名,但应该与上面设置的用户名一至。

4、设置完后重起apache。

 

 

关于apache的rewrite模块、禁止某IP访问才以及404的设置 

  
1 rewrite模块 
1. 去掉注释LoadModule rewrite_module modules/mod_rewrite.so 
2. 修改AllowOverride为 All 
<Directory "D:/www"> 
  AllowOverride All 
   Order allow,deny 
    Allow from all 
</Directory> 
3. 在www文件下建个.htaccess文件 
内容如下: 
RewriteEngine   on 
RewriteBase     / 
RewriteRule     (.+)\.html$ aaa.php?id=$1 [L] 

就可以通过 http://localhost/456.html 来访问 http://localhost/aaa.php?id=456 

2 禁止某IP访问才以及404的设置 
<Directory "D:/www"> 
Options Indexes FollowSymLinks     //去掉Indexes可禁止目录访问 
   ErrorDocument 404 /missing.htm  //404错误显示,missing.htm要大于512字节 
   Order allow,deny         //设置allow,deny顺序 
    Allow from all 
    Deny from 111.111.111.111    //禁止IP访问,也可用*号 
</Directory>

 

 

基于Apache 配置文件的Web页面访问权限控制 

假设你有一些敏感的信息要放在Intranet/Internet上,你首先可能会想到自己开发一个用户身份认证的系统来保护你的Web页面。其实Apache本身就自带了限制用户访问Web页面的机制,实现起来也不复杂。 

本文介绍在Linux+Apache上的实现方法: 
1、修改http.conf 
假设你想控制/usr/local/apache/htdocs下各目录的不同访问权限,你可以在<Directory "/usr/local/apache/htdocs">与</Directory>之间加入一行: 
AllowOverride All 
意思是在/usr/local/apache/htdocs下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖。 
2、编辑你想要控制的目录下的.htaccess文件 
假设你的phpmyadmin目录在/usr/local/apache/htdocs下,你可以这样在phpmyadmin目录下创建一个.htaccess文件,内容如下: 

AuthUserFile /usr/local/apache/pass/pwdPhp 
AuthType Basic 
AuthName "Database Security Zone" 
ErrorDocument 401 /catchErrors/err_401.html 
<Limit GET POST> 
require valid-user 
</Limit> 

该文件说明了几个问题: 
(1) 用户信息存放在/usr/local/apache/pass/pwdPhp中. 
(2) 认证类型为基本型(此外还有一些其他的加密类型). 
(3) ErrorDocument 所指向的html文件. 
(4) 认证方式:用户认证(valid-user)或组认证(valid-group). 

3. 生成用户密码文件 
有一个用户密码生成程序:htpasswd(在/usr/local/apache/bin下), 它可以加入用户密码信息到指定的文件中,如/usr/local/apache/pass/pwdPhp. 我的用户密码文件内容如下: 

admin:a0Hplbj33QjV2 
guest:R0BYSO383QjVT 

4. 重起apache deamon 
/usr/local/apche/bin/apachectl restart 

5. 测试 
用IE浏览受保护的页面,如http://ip/phpmyadmin/ (可能需要refresh几次才能凑效),这时应该出现一个身份认证窗口,你需要输入用户名(admin / guest) 和密码(******)才能访问这个页面。

 

 

apache禁止访问目录列表


找到Apache 的 httpd.conf 配置文件将: 

Options Indexes FollowSymLinks 改为: 
Options FollowSymLinks 也就是把 Indexes 去掉。 

额外的信息:在apache中设置虚拟主机 

在IIS中我们可以方便的通过不同的IP或者端口再或者主机头来设置虚拟主机, 
在apache中也一样可以。 
假设有www.songzi1.org和www.songzi2.org两个域名,要同时指向一个服务器地址, 
通过这两个域名访问时,要呈现不同的内容,那就需要设置虚拟主机了。 


#Vi /etc/apache/httpd.conf 


加入: 

引用: 


namevirtualhost * 
<VirtualHost *>ServerName www.songzi1.org DocumentRoot /var/www/songzi1 </VirtualHost> 

<VirtualHost *>ServerName www.songzi2.org DocumentRoot /var/www/songzi2 </VirtualHost>