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 我正在输入的内容。您可以使用像<FilesMatch "^(?!thubservice\.php)">
这样的负前瞻来做到这一点,但它的效率可能会降低。在需要之前,我们不要将正则表达式拖入其中。
@talyric 如果文件位于文件夹中的 path/to/file.php 怎么办。我尝试给出路径,但它不起作用......
@Mubin 抱歉,我不知道,也没有任何设置可以试穿。以上是关于HTTP 基本身份验证排除单个文件的主要内容,如果未能解决你的问题,请参考以下文章
支持基本、匿名和 Windows 身份验证的 Web 服务/API