apache - htaccess 从基本身份验证中排除一个 url

标签 apache .htaccess authorization

我需要从正常的 htaccess 基本身份验证保护中排除一个 URL(或者更好的一个前缀)。类似 /callbacks/myBank/callbacks/.* 您有如何做的任何提示吗?

我不是在寻找如何排除文件。 这必须是 url(因为这是基于 PHP 框架的解决方案,所有 url 都使用 mod_rewrite 重定向到 index.php)。所以这个URL下没有文件。没什么。

其中一些网址只是来自其他服务的回调(不知道 IP,因此我无法根据 IP 进行排除),并且它们无法提示输入用户/密码。

当前的定义很简单:

AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd
require valid-user 

最佳答案

使用SetEnvIf ,您可以在请求以某个路径开头时创建一个变量,然后使用 Satisfy Any 指令以避免登录。

# set an environtment variable "noauth" if the request starts with "/callbacks/"
SetEnvIf Request_URI ^/callbacks/ noauth=1

# the auth block
AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd

# Here is where we allow/deny
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth

允许/拒绝指令 block 表示拒绝所有人的访问,除非存在有效用户(成功的 BASIC 身份验证登录)或noauth 变量已设置。

关于apache - htaccess 从基本身份验证中排除一个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8978080/

相关文章:

.htaccess - Android/iOS htaccess 检测和重定向

security - 既然可以通过 ldap 进行身份验证和授权,为什么还要使用 kerberos?

ajax - 如何在 MVC3 中创建 Ajax 助手

regex - 如何在 .htaccess 中从一个子域重定向到另一个子域?

使用 PAT(个人访问 token )进行 Git 推送

process - Top & httpd - 揭秘实际运行的内容

Mac OS X 10.6.3 下 MySQL 与 PHP 通信问题

PHP 7 和 phpMyAdmin 的 PHP fatal error

mysql - 创建新数据库时是否必须重新启动 Apache?

.htaccess - htaccess 页面重定向(除了我的 ip)