问题标签 [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.

0 投票
2 回答
1322 浏览

apache - 拒绝访问 URI

我试图拒绝访问某个 uri,即/admin/并尝试过这个 .htaccess 文件:

这适用于示例 IP 范围,但不适用于“not_admin_uri”部分。

这里出了什么问题?

0 投票
1 回答
739 浏览

apache - 403 禁止响应仍然发送正文

我设置了我的.htaccess文件,以便只有某些 IP 范围可以访问/admin我网站的一部分,如以下问题所述:拒绝访问 URI

这有效......在测试中。当我在启用 https 的现场直播中尝试此操作时,网站发生了一些奇怪的事情:

当我 GET/admin页面时,我收到403 Forbidden状态代码,但我也得到了正文,好像什么也没发生一样。

这怎么可能,我该如何解决?

这是最终的.htaccess:

另外:如果我删除最后一条allow规则,它实际上会阻止请求(尽管它当然会阻止所有请求)

0 投票
1 回答
2311 浏览

apache - 使用 SetEnvIf 根据 SSL_CLIENT_M_SERIAL 值更改变量

有问题的网络服务器是...

httpd.x.conf 文件的部分...

但是 mod_jk.log 中的结果是......

(问题是“用户”设置为空。)现在,如果我只想打开闸门并让每个人都进入其余服务,我可以在 httpd.x.conf 文件中执行此操作...

...代替上面看到的 SetEnvIf 语句,然后 mod_jk.log 显示这个...

现在请注意“user=Rest” - 功能正常。而tomcat方面(好的,JBoss ...好的,实际上WildFly ...但实际上它与tomcat相同)确实接受从apache传递的“用户”,并授予适当的权限。

关键是,即使 ...my.local.domain/cgi-bin/printenv 向我展示了 apache 环境知道一堆变量和值,包括 SSL_CLIENT_M_SERIAL = 5174EAF60000000014E5 ...似乎 SetEnvIf 本身无法确定 SSL_CLIENT_M_SERIAL 的值,并根据其值设置其他变量的值。

我也可以将其余服务用户 ID 配置为与 SSL_CLIENT 变量之一的值相同。例如电子邮件地址或序列号。所以,如果我能让以下任何一项工作......

...那很好啊。我肯定错过了一些简单的东西。

拜托,没有特定于 PHP 的答案。这根本不是 PHP 环境。它甚至没有安装,也不会安装。

TLDR:如何根据 SSL_CLIENT_M_SERIAL 的值设置 JK_REMOTE_USER 变量?

0 投票
0 回答
505 浏览

apache - 阻止所有用户代理的网站期望一个并允许所有用户代理访问特定的 URL

我想阻止所有用户代理,除了一个用于整个网站,同时允许所有用户代理访问一个特定的 URL。当任何用户想要重置密码时,我需要取消阻止所有用户代理到 URL,如下所示:

login 和 key 是变量。

我的 .htaccess 文件中有这段代码,但它不能正常工作。现在它会阻止除 allowagent 之外的所有用户代理,但我无法从其他代理访问重置 url。

所以,我的问题在这里,如何修改这个 .htaccess 以阻止所有用户代理期望 allowagent 并取消阻止 URI 以重置所有用户代理的密码?

0 投票
1 回答
427 浏览

apache - 如何使用 Apache 允许基于 User-Agent Header 字段的传入流量

我已阅读有关 Apache 的 setEnvIf 的文档,并使用他们的示例编写了以下 httpd 配置文件,旨在仅允许来自 HTTP Header User-Agent=Doug 的请求

在使用 Postman 发送请求时,用户代理为 Doug,请求被拒绝。我也尝试过将命令切换为允许,拒绝无济于事。

我正在运行 Amazon AMI 并使用 Apache 2.2.31

0 投票
1 回答
4682 浏览

.htaccess - .htaccess 中的动态环境变量

我正在努力弄清楚如何根据我的场景使用 SetEnvIf 让环境变量工作,并且想知道是否有人可以告诉我如何去做,或者举个例子。

我的结果是我需要根据环境变量触发以下重定向,我还有其他情况也需要使用此逻辑。

我有以下内容,所以重定向只发生在生产中

我希望我可以设置以下内容,但无法弄清楚。

理想情况下,我的伪代码是

然后在我的PHP中我有

我的输出肯定是

我正在访问owen.jekyll-test.dev

谁能指出我做错了什么的方向?

0 投票
1 回答
1523 浏览

regex - Apache 的 SetEnvIf 到 .htaccess 中的另一个变量

是否可以使用 SetEnvIf 将变量设置为另一个变量的内容?如果是这样,如何?

例如

所以想法是,如果apache.conf或httpd conf里面defined_htaccess_var已经定义了,那么has_been_defined.htaccess里面现在应该包含它的值吗?

笔记。这是针对 apache 2.2

0 投票
1 回答
1905 浏览

apache - 如何在 Apache .htaccess 中使用 SetEnvIfNoCase 禁用 GZip?

我想为某些页面禁用 GZip。我有这个.htaccess,但在访问时它仍然打开 GZip ( Content-Encoding: gzip) dashboard/index

我试图添加Header set MyHeader %{REQUEST_URI}以查看是什么Request_URI,但它给出了内部服务器错误。

我还尝试了正则表达式dashboard/index, dashboard/index.*,"/dashboard/index"等,并尝试了SetEnvIfNoCase REQUEST_URI ...,但 GZip 仍在运行。

如果我发表评论#AddOutputFilterByType,则 GZip 将被关闭。

我正在使用 Apache 2.4.16、Yii 2.0.7、PHP。我在生产中使用 FPM,所以apache_setenv()不可用。

0 投票
1 回答
1981 浏览

apache - Apache mod_headers 无法取消设置路径上的标头

我正在尝试在所有情况下使用 Apache 中的 mod_headers 设置标头,除了某个路径。我已经尝试了以下三种变体中的每一种,但它们似乎都不能正常工作以排除路径。在所有情况下,我都会获取所有请求的标头,包括与示例路径匹配的请求,例如:http ://example.com/charts/24_hour_commodity/450/300

或者:

或者

谁能帮我弄清楚为什么在第一个示例中设置了标题或在以下两个示例中未设置标题?任何一种可行的解决方案就足够了...

更新:在阅读了 Apache 网站上的处理顺序后,我尝试使用条件块。这些都不起作用:

或者

所以,还是破了。一定是关于在处理中的某个点后没有触发的 Header 语句。或者他有条件的那些在主要的之前以某种方式触发并被覆盖。虽然找不到将其调试到根本原因的方法。

0 投票
0 回答
625 浏览

apache - setEnvIf 和 RewriteCond 没有捕捉到它

我在 Apache 2.4 的虚拟主机中设置了这个

在我的 .htaccess 中,我添加了这条规则:

但我得到一个无限循环,因为我的 RewriteCond 没有看到 HTTPS 的值。

我做一个phpinfo(INFO_VARIABLES);,我得到$_SERVER['HTTPS'] on

我在我的 errorLog 中进行了调试以得到这个RewriteCond: input='off' pattern='off' => matched 如你所见 RewriteCond 没有看到我设置的值。

我读了一些文档

SetEnv 指令在请求处理期间运行较晚,这意味着 SetEnvIf 和 RewriteCond 等指令将看不到使用它设置的变量。

或此链接:http ://www.onlinesmartketer.com/2010/05/27/apache-environment-variables-visibility-with-setenv-setenvif-and-rewriterule-directives/#Summary

我所做的应该是有效的。

怎么了 ?谢谢 ;)