Apache2.2允许来自env=\u变量_
我已经用LDAP授权设置了Apache2.2,它的工作方式与预期的一样非常好,而且我已经实现了这一点,这样我可以在本地访问它时绕过身份验证Apache2.2允许来自env=\u变量_,apache,apache2.2,setenvif,Apache,Apache2.2,Setenvif,我已经用LDAP授权设置了Apache2.2,它的工作方式与预期的一样非常好,而且我已经实现了这一点,这样我可以在本地访问它时绕过身份验证 允许从localIP主机名a主机名b等 如果我从服务器curl,我不需要任何身份验证。所以一切都很好,工作如期 我现在需要做的是创建一个特定的URL来绕过授权 我已经尝试了使用setenif的所有常用解决方案 SetEnvIf Request_URI "^/calendar/export" bypassauth=true` Allow from env=by
允许从
localIP主机名a主机名b等
如果我从服务器curl
,我不需要任何身份验证。所以一切都很好,工作如期
我现在需要做的是创建一个特定的URL来绕过授权
我已经尝试了使用setenif
的所有常用解决方案
SetEnvIf Request_URI "^/calendar/export" bypassauth=true`
Allow from env=bypassauth IP_ADDRESS HOSTNAME_A HOSTNAME_B
但这根本不起作用
bypassauth
变量李>
我一辈子都搞不明白为什么Allow from env=bypassauth
部分不工作,而它仍然遵守附加的指令参数
我还尝试了另一个建议,使用位置指令
<Location /calendar/export>
Satisfy Any
Allow from all
AuthType None
SetEnv WTF 123
</Location>
满足任何
通融
AuthType无
SetEnv WTF 123
同样,我可以看到我的新环境变量(WTF
)出现在这个URL上(当我在脚本中转储服务器环境时),因此我知道SetEnv
和setenif
指令正在工作
我有没有遗漏什么(Apache2.2有什么怪癖?),因为到目前为止我看到的所有解决方案都不起作用。这就好像我的Allow from
更改在重新启动Apache后没有任何效果。我开始感觉到我的精神错乱了
为
满足任何
、命令允许、拒绝
和Auth*
指令编写指令时,是否也有一个特定的顺序,这可能会影响这一点?最终设法解决了!!:)
似乎我的url正在被mod_rewrite
处理(我的环境变量前缀为rewrite
应该会发出警报),根据这篇文章的说法,mod_rewrite
是在我们的setenif
和Allow
指令之后执行的
总之,长话短说;我使用重写的/最终的URL和位置
部分绕过使用允许任何
指令的身份验证。所以我改变了
<Location "/calendar/export">
Allow from all
</Location>
通融
到
通融
这是最终的URL(重写后),现在可以使用了
<Location "/calendar/index.php/export">
Allow from all
</Location>