You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不修改Apache全局配置覆盖Require all granted规则?

Apache虚拟主机子目录权限覆盖方案

因为Apache的授权规则会继承上级目录配置,且默认以逻辑或的方式叠加,所以要在虚拟主机的子目录配置中先重置规则,再添加访问限制:

  • 打开你的虚拟主机配置文件(通常位于/etc/apache2/sites-available/目录下),针对需要限制的子目录添加以下<Directory>块:
    <Directory "/var/www/你的子目录完整路径">
        # 先重置全局授权规则,拒绝所有访问
        Require all denied
        # 配置认证规则,仅允许合法用户访问
        AuthType Basic
        AuthName "受保护区域"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
    
  • 执行以下命令创建认证用户(替换yourusername为实际用户名):
    sudo htpasswd -c /etc/apache2/.htpasswd yourusername
    
  • 重启Apache服务使配置生效:
    sudo systemctl restart apache2
    

关键说明

  • 更具体的<Directory>块配置优先级高于全局/var/www的配置,Require all denied会直接覆盖上级的Require all granted,之后再添加Require valid-user就能确保只有通过认证的用户可访问目标子目录。
  • 由于全局设置了AllowOverride None,所有权限配置必须写在虚拟主机配置文件中,不能使用.htaccess。

内容的提问来源于stack exchange,提问作者Alwitheflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:05:17