Apache 规则被其他人覆盖

Apache 规则被其他人覆盖

我已通过以下方式阻止了 httpd.conf 文件中的 .htaccess 文件: 要求全部被拒绝

我的httpd.conf:

ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf

User apache
Group apache

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/var/www/html"

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ~ "^\.?ht(access|passwd)(\.dist)?">
    Require all denied
</Files>

IncludeOptional sites/*.conf

这是我的虚拟主机:

<VirtualHost *:80>
        ServerName example.com

        DocumentRoot /var/www/site/

        <Location />
            AuthUserFile /etc/httpd/conf/passwd
            AuthName "ADMIN AREA"
            AuthType Basic
            require valid-user
            Order allow,deny
            Allow from 10.0.0.0/8
            satisfy any
        </Location>


        <Directory /var/www/site/>
                Options +FollowSymlinks -Multiviews
                AllowOverride all
                Require all granted
        </Directory>

</VirtualHost>

现在,当我使用指令 location 仅允许某些 IP 地址访问或使用登录名和密码时,该地址可以访问 .htaccess 文件。我该如何解决这个问题?任何人都无法查看 .htaccess。

答案1

您将新旧指令混合在一起,这可能会产生意想不到的后果。特别是mod_access_compat将用于处理诸如 、 之类的事情Order allow,deny,并将优先mod_authz_host于新指令。看升级到2.4

相关内容