如何在我的 apache2.4 服务器上仅公开“/var/www/html/login”?

如何在我的 apache2.4 服务器上仅公开“/var/www/html/login”?

我需要一些帮助。

我正在我的服务器上使用apache2.4。我/使用以下代码阻止所有请求:

    <Location />
    Deny from all
        AuthUserFile /path/.pass
        AuthName "Login"
        AuthType Basic
        Satisfy Any
        require valid-user
    </Location>

我之所以使用它,是因为我正在运行一项服务(通过 proxyPass)。使用以下块,我正在index.html为不通过代理的服务提供服务:

  <Location /login>
       # needs to come before the ProxyPass directives
       ProxyPass !
       Require all granted
    </Location>

/var/www/html/login我有一个文件,其中.htaccess包含:

Require All granted

即使有了这个配置,当我进入时example.com/login它还是要求我进行身份验证。我这里遗漏了什么?

谢谢大家!

答案1

不要混合使用“旧”和“新”访问指令。这里的问题是您使用了Deny from allon /,但Require all granted使用了 on /login。由于旧访问指令优先于新访问指令,因此在/login位置中指定的访问指令不执行任何操作。

使用Require all denied而不是Deny from all,它应该可以工作。

相关内容