Apache网站目录访问权限设置

本文详细介绍了Apache服务器中目录访问权限的设置方法,包括Apache2.2和2.4版本的区别,以及如何使用分布式权限对子目录进行单独控制,无需重启服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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之中(拒绝所有)。这就达到了单独控制子目录访问权限,这就是分布式权限。

在Linux上设置Apache服务器对特定目录访问权限,通常需要编辑Apache的配置文件,并应用适当的文件权限。以下是基本步骤: 1. **登录到服务器**:首先通过SSH登录到你的Linux服务器。 2. **打开Apache配置文件**:找到Apache配置文件的位置,它通常是 `/etc/httpd/conf.d` 或者 `/etc/apache2/sites-available`(取决于你使用的发行版和版本)。例如,在Ubuntu和Debian系统中,可能会有 `sites-available` 文件夹下的 `.htaccess` 配置。 3. **编辑 .htaccess 文件**:如果Apache允许使用`.htaccess`文件来限制目录权限,你可以创建或编辑该文件。`.htaccess`文件位于你要保护的目录下。 4. **添加权限规则**:在`.htaccess`文件中,可以使用`Allow from`或`Deny from`指令来控制谁可以访问。例如,如果你想只允许来自IP地址192.168.0.1的用户访问目录,可以添加以下行: ``` Order allow,deny Allow from 192.168.0.1 Deny from all ``` 5. **保存并重启Apache**:保存更改后,需要重启Apache服务让新的设置生效,命令可能是 `sudo service apache2 restart` 或 `sudo systemctl restart httpd`。 6. **验证权限**:现在尝试从指定的IP地址访问这个目录,应该能看到权限已经被限制了。 请注意,这仅限于`.htaccess`支持的情况,如果你需要更细致的控制或者不在`.htaccess`文件中设置权限,可能需要修改Apache主配置文件(如`httpd.conf`),并在虚拟主机或目录级别启用或禁用`Require all granted`或`Require all denied`等指令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值