HTTP 基本身份验证排除单个文件

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

【参考方案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 抱歉,我不知道,也没有任何设置可以试穿。

以上是关于HTTP 基本身份验证排除单个文件的主要内容,如果未能解决你的问题,请参考以下文章

从HTTP身份验证中排除上载脚本

支持基本、匿名和 Windows 身份验证的 Web 服务/API

如何使用基本身份验证提供静态文件?

spring-boot 在单个 Web 应用程序路径上设置基本身份验证?

基本 HTTP 身份验证:用户还是应用程序?

应用引擎中无法将静态文件转换为资源文件以使http请求通过身份验证过滤器