Apache网站目录访问权限设置

1、目录访问权限

一个站点,就是一个“目录”,每个目录, 应该给其设定“访问权限”。

设置方法(apache2.2):

<Directory "要设置权限的目录(站点)路径">
    # 设置当一个请求中没有给定请求的文件名有没有默认网页(首页)的时候显示文件列表
    Options Indexes
    # 开启分布式权限
    AllowOverride None

    # 设置权限控制的先后顺序,只有两种,要么先拒绝后运行,要不下先允许后拒绝
    Order Deny,Allow
    # Deny 用于设定要拒绝的来源地址或服务器名,几乎没有实际意义
    Deny from 拒绝名单,比如Deny from 192,168.2.3 www.abc.com
    Allow from 允许名单 比如:Allow from all

    # 设置该站点(文件夹)的“默认网页”(首页),可以设置多个,用于请求的时候没有带请求文件名默认访问的网页
    DirectoryIndex index.html index.php
</Directory>

设置方法(apache2.4):

<Directory "要设置权限的目录(站点)路径">
    # 设置当一个请求中没有给定请求的文件名有没有默认网页(首页)的时候显示文件列表
    Options Indexes
    # 开启分布式权限
    AllowOverride None

    # 权限设置,要么拒绝所有,要么允许所有,要么允许指定的主机名或者ip地址
    # 拒绝所有的请求
    # Require all denied
    # 允许所有的请求
    Require all granted
    # 设置允许的主机域名,多个域名之间用空格隔开
    Require host xxx.com
    # 设置允许的ip,多个ip之间用空格隔开
    Require ip 192.168.5.6

    # 设置该站点(文件夹)的“默认网页”(首页),可以设置多个,用于请求的时候没有带请求文件名默认访问的网页
    DirectoryIndex index.html index.php
</Directory>

2、分布式权限

对于目录访问权限配置,它有两个局限:

apache配置文件修改(修改了权限),必须重启服务器
某个站点下面的“下级目录”不便单独进行设置
分布式权限:所谓分布式权限,指的就是对某个目录(站点)的子目录(子文件夹)进行单独的权限控制,并且修改权限后无需重启apache服务器。

设置方法:

1、 在要单独设置权限的子目录的上级站点目录权限中开启分布式权限,即在Directory节点中添加AllowOverride all,如图:

2、 在要设置权限的目录下面新建一个.htaccess文件,文件全名就是.htaccess,所以记事本无法完成该文件的创建,需要一款编辑器创建这种文件,如图:

创建该文件成功后,添加其内容和目录权限设置类似,比如添加如下代码:

保存,那么通过浏览器访问该站点,httpd-2.4.18-win64-VC11文件夹将不会显示在网页上,如图:

这是因为我当前的ip不在它允许的ip之中(拒绝所有)。这就达到了单独控制子目录访问权限,这就是分布式权限。

猜你喜欢

转载自blog.csdn.net/qq15577969/article/details/87970324