问题标签 [setenvif]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - Apache 2.2 允许来自 env=_variable_
我有一个使用 LDAP 授权设置的 Apache 2.2,它按预期工作得非常好,并且也做到了,这样我就可以在本地访问它时绕过身份验证。
Allow from
localIP 主机名A 主机 名B等...
如果我curl
来自服务器,则不需要任何身份验证。所以一切都很好,并且按预期工作。
我现在需要的是创建一个特定的 URL 来绕过授权。
我已经尝试了所有使用的常用解决方案SetEnvIf
;
但这只是行不通!
- 本地访问仍然不受限制,但远程不受限制(那里没有变化)
- 如果我在该 URL 的脚本上转储我的服务器环境变量,我可以看到我的
bypassauth
变量正在被传递。
我终生无法弄清楚为什么该Allow from env=bypassauth
部分不工作,而它仍然遵守附加的指令参数。
我还尝试了另一个建议,使用 Location 指令;
同样,我可以看到我的新环境变量 ( WTF
) 出现在这个 URL 上(当我在脚本中转储服务器环境时),所以我知道SetEnv
andSetEnvIf
指令正在工作。
我有什么遗漏(任何 Apache2.2 怪癖吗?),因为到目前为止我看到的所有解决方案都不起作用。就好像我的Allow from
更改在重新启动 Apache 后没有任何效果。我开始觉得我的理智在下滑。
在为 编写指令时是否还有特定的顺序Satisfy Any
,Order allow, deny
以及Auth*
可能会影响这一点的指令?
php - 通过 SetEnvIfNoCase 设置各种值不起作用
我试图通过在“.htaccess”文件中阻止它们来过滤一些机器人,如下所示:
但是这些规则也阻止了好的机器人,所以我在下面添加
最后是阻塞规则
但是当我使用 GoogleBot useragent (Googlebot/2.1 (+ http://www.googlebot.com/bot.html ) 我得到 - 403 被禁止。
怎么了 ?
apache - 带有 SetEnvIf 错误的 Apache 基本身份验证
我对 apache 2.4 .htaccess 配置有疑问。我的配置示例:
这个想法是询问对包含“/admin”字符串的 url 的请求的密码。因此,如果我访问 www.mysite.com/admin,则需要密码,如果我访问 www.mysite.com/news,则不需要密码。
但是有个奇怪的bug!如果我开始在网址 www.mysite.com/news(F5、F5、F5、F5、F5...)上进行多次快速刷新,则会弹出基本身份验证窗口并询问密码:(为什么会这样?
apache - 重写为 index.php 时如何使用 SetEnvIf 和 Request_URI?
我们有一个a.com
受密码保护的 drupal 网站。不过,我希望所有a.com/api/...
URI 都不是。所以我读过SetEnvIf
:
不过,/api/foobar
URI 仍然要求输入密码。由于它是一个 Drupal 网站,在 anubhava 的帮助下,我们认为它与 index.php 如何处理请求有关。
如何处理?
编辑
添加
紧接着
没有帮助
apache - 如何使用 Apache 2.4 设置授权标头?
我目前正在开发一个网络地图应用程序。我正在使用 Apache 2.4、PHP、Javascript 和 Dojo(用于映射的 javascript 库)。Dojo 正在向 Web 服务发出请求(托管在 https://host/server/rest/services/... 并由我公司的另一个部门管理)。但是为了访问这些 Web 服务,需要使用 Basic 进行身份验证。
因为他们没有像他们应该的那样实现令牌身份验证(我们可以与 dojo 一起使用),所以当我们连接到应用程序以访问 web 服务中的数据时,会出现一个弹出窗口。我想配置 Apache(我的httpd.conf)以避免我们的用户出现此弹出窗口,并且我设置了一个正确的 Authorization 标头,该标头将随 Dojo 向我们的 Web 服务发出的每个请求一起发送。
我的第一个想法是用headers_module设置 Header
然后将rewrite_module与我在网上找到的一起使用:
但它似乎不起作用,因为如果我检查:
$headers包含我想要的,但$server没有
所以我继续前进并决定使用setenvif_module这似乎是一个很好的解决方案。我现在有:
即使我不明白$1的含义和作用。
为了进一步解释,我的应用程序有一个登录页面 index.php,其中没有对 host/server/rest/services 的请求,并且 HTTP_AUTORIZATION 看起来是空的。一旦我登录到我的页面 application.php,所有请求都已发出,HTTP_AUTHORIZATION 似乎充满了我想要的“基本 ****”,但出现了一个空的 REDIRECT_HTTP_AUTHORIZATION 并且来自网络服务的弹出窗口要求用户和仍然出现密码。
你知道我错过了什么或可能做错了什么吗?
谢谢您的帮助。
.htaccess - 1 个 htaccess 文件中的多个用户代理字符串
我想在 1 htaccess 文件中包含多个代理字符串(或者如果需要,也可以包含多个代理字符串,也就是新代理字符串的每个文件)文件,我不确定这是否可能
这是我当前的代码
PRIVATESTRING
是因为我使用的应用程序会在用户登录时发送自定义用户代理字符串以从我的网站下载项目
编辑:答案:对每个字符串重复第一行多次
php - 如何让 Apache 停止记录我的一些网址
我有一个网络应用程序。
对我的应用程序的所有请求都将传递给 Root/index.php。例子:
我还有另一个应用程序(WindowServices),它会在我的 WebApp 中调用一些 Urls(全天:v)。当我打开 access.log 时,它是这样的:
并且...access.log 文件将随着时间的推移成为大文件。
所以,我不希望 Apache 记录 URL:
我在 vhost 文件中设置了一些配置,如下所示:
但是 Apache 仍然为这些 Url 写日志!!!
所以,任何人帮助我!谢谢!
regex - Apache 2.4 如何使用 SetEnvIf 从日志中排除某些 GET 请求
花了一些时间在 docs 和 Google 上,但没有找到任何真实的例子。
我想从记录许多不必要的行中排除
我试过了
...但没有成功。
感谢任何提示还有什么可以尝试的(如果 Apache GET 完全可能被正则表达式排除......)
apache - 使用子声明的值创建 Apache SetEnv 变量
我有一个名为 FIRST 并包含 JSON 的环境变量:
{“索赔1”:“val1”,“索赔2”:“val2”}
我想设置一个只包含 val1 的新环境变量。
我尝试使用 SetEnvIf 设置这个新变量(SECOND),但不幸的是这不起作用:
正则表达式是正确的,你可以在这里查看:demo
FIRST 变量不是请求属性,即使根据Apache 模块 mod_setenvif 文档似乎需要它。.
知道我怎么能做到这一点吗?
谢谢 !
apache - Apache `SetEnvIf` 和重复的标头
我们正在使用这种配置来授予对我们其中一个站点的访问权限
事实上,在这个 Apache 服务器前面还有另一个反向代理,所以所有客户端都会有标头。
问题是有时客户端有其他代理在他们身边,并且X-Forwarded-For
标题将被复制或连接。我们使用正则表达式技巧正确处理连接(,| |^)
,但问题是 Apache 似乎SetEnvIf
只针对第一次出现的 Header 运行。
文档不清楚这种行为。关于如何处理这种情况的任何想法?(注意:我们无法控制我们的反向代理的工作方式,只有 Apache)这可能是一个错误吗?我找不到向谷歌询问这个问题的正确方法,也没有找到任何结果。我也尝试过深入研究 mod_setenvif 的代码,但这超出了我的范围。
精度:CentOS 6、Apache 2.2.15 最新补丁版本