【问题标题】:HTTP Basic Auth Exclude Single FileHTTP 基本身份验证排除单个文件
【发布时间】:2011-04-21 09:23:35
【问题描述】:

我的 .htaccess 文件的一部分看起来像这样-

AuthUserFile /path/to/.htpasswd
AuthName "Authorization Required"
AuthType Basic
require valid-user

这样做需要对整个目录及其下面的目录进行基本 HTTP 身份验证。但是,我在该根目录中有一个文件 thubservice.php,它不需要 HTTP 身份验证。

据我所知,我需要使用 ,但除了给定文件之外,我无法找出匹配所有文件的模式。

【问题讨论】:

    标签: regex authentication .htaccess


    【解决方案1】:

    对于Apache 2.4,您可能想改用Require

    <Files "thubservice.php">
        Require all granted
    </Files>
    

    在 2.2 中,基于客户端主机名、IP 地址和客户端请求的其他特征的访问控制是使用指令 Order、Allow、Deny 和 Satisfy 完成的。

    在 2.4 中,使用新模块 mod_authz_host 以与其他授权检查相同的方式完成此类访问控制。旧的访问控制惯用语应该被新的身份验证机制取代,尽管为了与旧配置兼容,提供了新模块 mod_access_compat。

    【讨论】:

      【解决方案2】:
      AuthUserFile /path/to/.htpasswd
      AuthName "Authorization Required"
      AuthType Basic
      require valid-user
      <Files "thubservice.php">
          Satisfy Any
          Allow from all
      </Files>
      

      【讨论】:

      • +1 我正在输入的内容。您可以使用像&lt;FilesMatch "^(?!thubservice\.php)"&gt; 这样的负前瞻来做到这一点,但它的效率可能会降低。在需要之前,我们不要将正则表达式拖入其中。
      • @talyric 如果文件位于文件夹中的 path/to/file.php 怎么办。我尝试给出路径,但它不起作用......
      • @Mubin 抱歉,我不知道,也没有任何设置可以试穿。
      猜你喜欢
      • 1970-01-01
      • 2020-09-09
      • 2021-03-21
      • 2011-11-12
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2011-02-11
      相关资源
      最近更新 更多