【发布时间】:2017-02-01 10:27:49
【问题描述】:
我正在使用 Apache 2.4 和服务器端包含。
当我使用这个时:
<!--#echo var="DOCUMENT_URI" -->
返回:/foo/bar/file.html
我想捕获 URI 的各个部分,即:
<!--#if expr='v("DOCUMENT_URI") =~ [\/\\](.+)[\/\\](.+)[\/\\](.+)[.]'-->
<!--#set var='URI_PART1' value='$1' -->
<!--#set var='URI_PART2' value='$2' -->
<!--#set var='URI_PART3' value='$3' -->
<!--#else -->
<!--#endif -->
我尝试了很多变体,但无论如何都无法让 Apache 识别正则表达式。我期待“foo”、“bar”和“file”被记录,但收到错误[处理此指令时发生错误]。
我知道自 Apache 2.4 以来语法发生了变化,以上是我根据对新语法的理解提出的。
任何帮助表示赞赏!
【问题讨论】:
-
好吧,看看daveoncode.com/2009/10/29/…。您可能只需要使用
/^(.*)\./正则表达式并将变量设置为<!--#set var="mypath" value="$1" -->(也许您可以在$1之后添加斜杠,如果没有,请稍后连接。) -
感谢您的提示。我尝试了以下方法:[code] 和一些变体,但它说[处理此指令时发生错误]。我读到 Apache 2.4 中有一种新语法,但我不确定这是否是问题,因为其他指令可以正常工作..
-
这很奇怪,我不知道为什么会出现这个问题。模式有效。