apache2.4配置目录权限

一、最新总结

1、权限说明

require all granted    # 允许所有用户访问我的网站
Require all denied     # 拒绝所有人访问我的网站
AllowOverride All      # 开启.htaccess文件
Options Indexes        # 允许浏览目录结构
Options -Indexes       # 不允许浏览目录结构
options FollowSymLinks # 允许将站点目录下的文件创建软链接到其他目录中使用
options FollowSymLinks # 服务器允许此站点目录使用链接符号

2、允许任何人访问html目录,并允许浏览目录结构和文件

<VirtualHost *:80>
    ServerName www.efg.com
    DocumentRoot /var/www/html       # 指定网站根目录
    <Directory "/var/www/html">      # 为网站根目录下的目录分配权限,也可以为网站更目录下的文件分配权限<Files></Files>
      require all granted            # 允许任何人访问html目录
      AllowOverride All              # 开启.htaccess文件
      Options Indexes FollowSymLinks # 允许浏览html目录结构,也可以写成 +Indexes +FollowSymLinks
    </Directory>
</VirtualHost>

验证:
http://www.efg.com/index.html      # 允许访问该文件
http://www.efg.com/a               # 允许浏览该目录
http://www.efg.com/a/1/g.jpg       # 允许访问该文件

3、允许任何人访问html目录,但不允许浏览目录结构

<VirtualHost *:80>
    ServerName www.efg.com
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
      require all granted
      AllowOverride All
      Options -Indexes -FollowSymLinks  # 不允许浏览目录结构
    </Directory>
</VirtualHost>

验证:
http://www.efg.com/index.html      # 允许访问该文件
http://www.efg.com/a              # 不允许浏览该目录
http://www.efg.com/a/1/g.jpg      # 允许访问该文件

4、禁止访问指定目录

  • 通过 标签来控制
<VirtualHost *:80>
    ServerName www.efg.com
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
       AllowOverride All
       Options Indexes FollowSymLinks
       require all granted
    </Directory>

    # /var/www/html网站根目录下有好几个目录的情况下
    <DirectoryMatch "/var/www/html/b">           # 禁止访问/var/www/html/b/目录
	Order allow,deny       # 规则顺序:先设置允许规则,后设置拒绝规则
                           # 允许规则: 空
	Deny  from all         # 拒绝规则: 所有
    </DirectoryMatch>

</VirtualHost>

5、禁止访问指定文件,比如.svn .git

  • 通过 标签来控制
<VirtualHost *:80>
    ServerName www.efg.com
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
       AllowOverride All
       Options Indexes FollowSymLinks
       require all granted
    </Directory>

    # 禁止访问/var/www/html/目录下所有以.svn .git结尾的文件
    <Files ~ "\.(svn|git)">
	Order allow,deny
	Deny  from all
    </Files>

</VirtualHost>

二、之前的总结(可能会有用)

1、apache2.4的一些拒绝规则

(1) 拒绝或者允许浏览目录结构
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all denied
    Allow from all
     Order allow,deny
</Directory>

解释:
AllowOverride None                        设置为None的时候.htaccess会被忽略
Options Indexes :                        允许浏览目录 (虚拟主机优先生效)
Options -Indexes :                       不允许浏览目录 (虚拟主机优先生效)
Options FollowSymLinks:                  服务器将跟踪符号连接,就是快捷方式的实际指向(虚拟主机优先生效)
Options -Indexes FollowSymLinks:         可以连起来写
Require all denied:                      拒绝所有访问(全局生效)
Require all granted                       允许所有访问(全局生效)
Allow from all                            允许以上请求
Order allow,deny                          未被明确允许的都拒绝

(2) 禁止访问目录或文件
# 禁止访问目录:/alidata/www/
<VirtualHost *:80>

<DirectoryMatch "/alidata/www/">
Order allow,deny
Deny from all
</DirectoryMatch>

</VirtualHost>

# 禁止访问/alidata/www/下的 /date/ 目录,/alidata/www/下的其它目录都可以访问
<DirectoryMatch "/alidata/www/(date)">
Order allow,deny
Deny from all
</DirectoryMatch>
<VirtualHost *:80>
......
</VirtualHost>

# 禁止访问以.php .txt结尾的文件
<VirtualHost *:80>
..........
..........
<Files ~ "\.(txt|php)$">   
Order allow,deny
Allow from all
</Files>
..........
..........
</VirtualHost>

# 禁止访问/alidata/www/下的/date/和/html/目录中的以.php .txt结尾的文件
<DirectoryMatch "/alidata/www/(date|html)">
<Files ~ "\.(php|txt)$">
Order allow,deny
Deny from all
</Files>
</DirectoryMatch>
<VirtualHost *:80>
......
</VirtualHost>

2、栗子

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

        DocumentRoot  xxxxxx
        ServerName    xxx.xxx.xx
        ServerAlias   xxx.xxx.xx
        <Directory "/alidata/www/api.mobile.playyx.com">
            ......
            ......
        </Directory>

        <Files ~ "\.(txt|cvs|svn|git|hg|bzr)$">                            禁止访问这些文件
            Order allow,deny
            Deny from all
        </Files>

        <DirectoryMatch "/alidata/www/api.mobile.playyx.com/.svn/">        禁止访问【.svn】这个目录
            Order allow,deny
            Deny from all
        </DirectoryMatch>

</VirtualHost>
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值