无论如何,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#">