如何配置 Apache 以要求基本身份验证并尊重目录和文件限制?

如何配置 Apache 以要求基本身份验证并尊重目录和文件限制?

考虑来自 Apache 2.4.6(CentOS)设置的配置摘录:

<FilesMatch "^\.(.*)$">
    Require all denied
</FilesMatch>

<VirtualHost *:443>
   ServerName example.com
   DocumentRoot /var/www
   <Location /admin>
      AuthType Basic
      AuthName "Please enter your username and password"
      AuthUserFile /some/path/to/.htpasswd
      Require valid-user
   </Location>
   <Directory /var/www/admin/uploads>
      <Files *.php>
         Require all denied
      </Files>
   </Directory>
</VirtualHost>

/admin只要身份验证成功,就可以访问点文件和 .php 文件。如果/admin不是实际目录(并且我们无法使用块<Directory>),如何配置它以遵守点文件和 php 文件限制?

我读过了https://httpd.apache.org/docs/2.4/sections.html并了解配置的应用顺序:

  1. <Directory>(正则表达式除外)和 .htaccess 同时完成(如果允许,则使用 .htaccess 覆盖<Directory>
  2. <DirectoryMatch>(和<Directory "~">
  3. <Files><FilesMatch>同时完成
  4. <Location><LocationMatch>同时完成
  5. <If>

那么<Location>覆盖<Directory><FilesMatch>,大概Require valid-user会否定的效果吗Require all denied?如果是这样,我们如何在<Location>比赛中说需要有效用户并尊重其他条件?

相关内容