如何向 Apache If/Else 添加日志记录?

如何向 Apache If/Else 添加日志记录?

无论如何,Apache 总是会转到 else 块。我看过这个,但这个使用的是用户定义的环境变量。我正在尝试使用 apache 标头进行一些动态包含。我读过一些关于动态包含的混合内容(可能是不可能的?)。基本上,我试图这样做:

<If "%{REQUEST_URI} =~ m#/^.*my-wanted-string.*">
    Include myconf1.conf
</If>
<Else>
    Include myconf2.conf
</Else>

在 apache 2.4 中可以做到这一点吗?我想检查 REQUEST_URI 的日志记录以确认它不是空的,因为没有匹配项。

答案1

您的正则表达式未终止。您指定了分隔符#,但它从未出现在正则表达式的末尾。

此外,它还包含一个,/后面跟着一个^,表示字符串的开头。这永远无法匹配,因为/在它之前有一个。当然,由于您.*在后面有一个贪婪匹配/,并且正在处理 URL 路径,所以/是多余的,本身可以省略。在这个特定场景中,匹配本身也是多余的。

您应该在正则表达式的末尾添加分隔符,删除多余的^字符,并可能进行其他操作。由于您没有说明要做什么,因此可能无法提供进一步的建议。

像这样的事情可能会让你更接近你的目标:

 <If "%{REQUEST_URI} =~ m#my-wanted-string#">

相关内容