【问题标题】:httpd - if clause does not trigger when file exitshttpd - 文件存在时不触发 if 子句
【发布时间】:2023-03-25 12:10:01
【问题描述】:

我在 httpd 配置中有一个虚拟主机,其中包含多个 ProxyPassRewrite 规则,如果文件系统上存在文件,我想触发重定向。

<If "-f '/tmp/somefile'">
Redirect temp "/" "https://another.server.com/somepath/index.html"
</If>

此配置适用于其他 httpd(xubuntu 上为 2.4),但不适用于我需要的 httpd(CentOS 上为 2.4)。 apachectl configtest 验证配置OK。

/tmp/somefile 可以被 apache 读取。但是当我 touch 文件时,我猜这个条件仍然是假的,因为没有发生重定向。

我在日志中找不到任何错误。

有什么我忽略的需要注意的吗?

提前致谢

【问题讨论】:

  • 在我看来,问题不在于 if,而在于 Redirect。如果我省略了 if,httpd 仍然不会重定向我的浏览器。

标签: apache centos virtualhost apache2.4


【解决方案1】:

我错过了 ProxyPass 在同一个 VirtualHost 中的优先级。因为我没有找到任何解决方案如何使 ProxyPass 有条件,所以我创建了第二个配置文件,我正在替换它们并重新加载 httpd。

【讨论】:

    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 2017-07-31
    • 2012-07-06
    • 2019-02-02
    • 1970-01-01
    • 2011-01-17
    • 2022-11-07
    • 2021-08-27
    相关资源
    最近更新 更多