如何访问根目录下的目录http://192.168.1.12/test/ 网站显示文件目录资源

https://www.cnblogs.com/hehexu/p/8376888.html
如何访问根目录下的目录http://192.168.1.12/test/

第一.缺省apache不允许访问http目录(没有定义,就没有访
问权限)

访问目录http://192.168.1.12/test/
会显示:
Forbidden
You don’t have permission to access /test/ on this server.
第二.无限制目录访问
在httpd.conf中增加定义,即可打开无限制的目录访问权限

<Directory /home/macg/www/test>
Options All
AllowOverride all

再访问会显示如下:

Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80

Index of /test
Name Last modified Size Description

Parent Directory -
bg0073.jpg 29-Nov-2006 21:02 36K
bg0135.jpg 29-Nov-2006 21:03 41K
bg0137.jpg 29-Nov-2006 21:03 47K
slade1.html 29-Nov-2006 22:02 1.2K
slade2.html 29-Nov-2006 22:02 1.1K
slade3.html 29-Nov-2006 22:02 1.4K
slade4.html 29-Nov-2006 22:02 1.8K
slade5.html 29-Nov-2006 22:02 2.3K

Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80
实际AllowOverride all是enable .htaccess目录限制功能。

但test目录下并没有.htaccess文件

等于开放访问,无限制。

第三.有限制目录访问

将其他目录中的.htaccess拷贝入要限制访问的目录

[root@localhost test]# ls -a
. … bg0073.jpg bg0135.jpg bg0137.jpg slade1.html
slade2.html slade3.html slade4.html slade5.html

[root@localhost test]# cp …/test1/.htaccess .

[root@localhost test]# ls -a
. … bg0073.jpg bg0135.jpg bg0137.jpg .htaccess
slade1.html slade2.html slade3.html slade4.html
slade5.html

[root@localhost test]# more .htaccess
authType Basic
AuthName “Restricted Files”
AuthUserFile /etc/httpd/passwords
Require valid-user
再访问http://192.168.1.12/test/
会跳出身份认证窗口,输入用户名密码,即可访问目录

.htaccess 目录限制的配置
要使用.htaccess文件,先在将httpd.conf中建立

<Directory “/home/macg/www/test”>
Options All
允许对目录的操作,ALL—所有操作

AllowOverride all                      

AllowOverride all----允许.htaccess所有指令,缺省是all
AllowOverride None ----完全忽略.htaccess文件

用/usr/bin/htpasswd创建一个用于认证的密码文件。 并且这个文件不应该置于DocumentRoot目录下,以避免被下载。 建议创建在/etc/httpd/目录下:

[root@localhost httpd]# /usr/bin/htpasswd -c
/etc/httpd/passwords macg
-c建立文件
New password:
Re-type new password:
Adding password for user macg
[root@localhost httpd]# /usr/bin/htpasswd
/etc/httpd/passwords gary
没有-c就是单纯的adduser 追加用户
New password:
Re-type new password:
Adding password for user gary
[root@localhost httpd]# more /etc/httpd/passwords
macg:U8jCwSsZyAB2g
gary:06yCDyg7AijlM
在受限制目录下建立.htaccess文件

[root@localhost test]# ls -a
. … bg0073.jpg bg0135.jpg bg0137.jpg .htaccess
slade1.html slade2.html slade3.html slade4.html
slade5.html

[root@localhost test]# more .htaccess
authType Basic
authType--------认证类型
由mod_auth_basic提供的Basic
Basic认证方法并不加密来自用户浏览器的密码(明文传输) 更安全的认证方法"AuthType Digest",即由mod_auth_digest供的摘要认证
最新的浏览器版本才支持MD5认证
(认证,服务器响应速度会受一些影响,一般有几百个用户就会对响应速度有非常明显的影响)

AuthName “Restricted Files”
AuthName “会员区”
此句是显示给用户看的

AuthUserFile /etc/httpd/passwords
此目录接受passwords内定义用户的认证请求
or
Require macg
此目录只接受单一用户macg(unix用户)认证请求
中指令的含义

<Directory “/home/macg/www/test”>
Options All
AllowOverride all

Options指令-------目录的访问特性
option none 禁止对目录的所有操作
option all 允许对目录的所有操作,ALL—所有操作
option ExecCGI 对该目录,可以执行cgi脚本
option Indexes 允许访问该目录(而该目录没有index.html)时,返回目录下的文件列表
option FollowSymLinks 只允许对目录的FollowSymLinks操作
AllowOverride指令
None 不读取.htaccess
all all----允许.htaccess所有指令,缺省是all
Limit .htaccess函盖具体限定的主机(allow,deny)
AuthConfig .htaccess函盖跟认证有关指令(AuthType,AuthName)
对下面的所有子目录也生效

所以httpd.conf中先对根目录/进行配置,等于是设置缺省配置

httpd.conf中先对根目录/进行配置,等于是设置缺省配置

Options FollowSymLinks 禁止对目录的访问(option只允许对目录的FollowSymLinks操作) AllowOverride None 不读取.htaccess Order deny,allow deny all Deny from all

<Directory “/usr/local/apache2/htdocs”>

Options Indexes FollowSymLinks   只允许访问index和连接   
AllowOverride None
Order allow,deny       承接父目录(/)的deny all,这里也是deny all
Allow from all           
order allow deny ————-httpd.conf中封IP之类的操作

Apache模块 mod_authz_host
<Directory /docroot>
Order Deny,Allow
Deny from …
Allow from …

注意顺序: 除了后面allow的,其他都deny 典型的封IP Order Allow,Deny Allow from all Deny from 205.252.46.165 注意顺序: 除了后面deny的,其他都allow

Deny from 192.168.2 典型的封网段
上面清楚了 可以设置一个例子

Apache对于多虚拟主机以及多虚拟路径的配置

ServerName localhost

AllowOverride none
Require all denied

DocumentRoot “/home/work/”

保证所有的项目都放在/home/work/目录, 该目录只做配置

<Directory “/home/work/”>
Options None
AllowOverride None
Require all denied

httpd-vhosts.conf 首先第一件事就是指定默认的DocumentRoot

没有商量, 必须放在httpd.conf中申明的根路径

不需要severName配置

<VirtualHost 127.0.0.1:8800>
DocumentRoot “/home/work/www/htdocs”
<Directory /home/work/www/htdocs>
AllowOverride none
Require all granted

##如果不需要多主机支持,到此为止
添加虚拟主机,虚拟目录等等

说明: local.baidu.com 为第一个主机名, 如果多个域名映射设置ServerAlias即可

Alias 注意“/”的位置

同上其他主机配置

当然对于该目录下个各种配置属性 不过下面这个是2.2的属性 在2.4中进行了少许的变更 所以2.4还是要查询文档 不过有下面的解释打底应该很容易

Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合
Directory, Location, Files等),用来控制目录和文件的访问授权。
所以,最常用的是:
Order Deny,Allow
Allow from All

注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出
错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有
禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直
接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开
放所有内容的访问权。

按照上面的解释,下面的设定是无条件禁止访问:

Order Allow,Deny
Deny from All
如果要禁止部分内容的访问,其他的全部开放:

Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2
apache会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽
然第二句allow允许了访问,但由于在order中allow不是最后规则,因此还
需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止
了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和
改正方式:

Order Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在
处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。
解决方法:Order Allow,Deny,后面两句不动,即可。

Order Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由
于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显
包含了ip1(all include ip1),所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:

Order Deny,Allow
Deny from all
Allow from ip1
下面是测试过的例子:


Order deny,allow
allow from all
deny from 219.204.253.8
全部都可以通行


Order deny,allow
deny from 219.204.253.8
allow from all
全部都可以通行


Order allow,deny
deny from 219.204.253.8
allow from all
只有219.204.253.8不能通行


Order allow,deny
allow from all
deny from 219.204.253.8
只有219.204.253.8不能通行



Order allow,deny
deny from all
allow from 219.204.253.8
全部都不能通行


Order allow,deny
allow from 219.204.253.8
deny from all
全部都不能通行


Order deny,allow
allow from 219.204.253.8
deny from all
只允许219.204.253.8通行


Order deny,allow
deny from all
allow from 219.204.253.8
只允许219.204.253.8通行



Order deny,allow
全部都可以通行(默认的)


Order allow,deny
全部都不能通行(默认的)


Order allow,deny
deny from all
全部都不能通行


Order deny,allow
deny from all
全部都不能通行


对于上面两种情况,如果换成allow from all,则全部都可以通行!


Order deny,allow
deny from 219.204.253.8
只有219.204.253.8不能通行


Order allow,deny
deny from 219.204.253.8
全部都不能通行


Order allow,deny
allow from 219.204.253.8
只允许219.204.253.8通行


Order deny,allow
allow from 219.204.253.8
全部都可以通行



order deny,allow
allow from 218.20.253.2
deny from 218.20
代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218.20开头的IP也都允许通过。


order allow,deny
allow from 218.20.253.2
deny from 218.20

和上面的差不多,只是掉换的order语句中的allow、deny先后顺序,但最
终结果表示全部都拒绝!

form:http://hi.baidu.com/enjoypain/blog/item/f48c7aecdba298d12f2e21ac.html
前段时间做了个Apache的HTTP代理服务器,其中的order allow,deny这
部分弄的不太懂,于是上网找资料看,谁知道越看越糊涂,其中有些难以分
辨对错甚至是误导。就像破解windows系统密码的一些文章那样,很多都是
人云亦云的,并没有经过测试。废话少说,先把我经过测试后分析总结出来
的结论show出来,相信这对大家的理解非常有帮助。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yueyecheshou1980

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值