这个技术非常重要,能够控制一些非法用户访问本内容。假设我们的网站: 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>
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) 和密码(******)才能访问这个页面。
假设你有一些敏感的信息要放在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>