我有很多差异很小的文件.包含的文件包含此文件,它尝试区分较长路径的一部分:
<!--#if expr="${DOCUMENT_URI}=/internet/"-->Internet<!--#else-->Intranet<!--#endif-->
Run Code Online (Sandbox Code Playgroud)
在错误日志中,我得到了
AH01337:无法在/opt/apache/htdocs/ssi/time.shtml中解析expr"$ {DOCUMENT_URI} =/internet /":'$'附近的解析错误
我发现这个主题有很多变化,比如没有大括号,引号内部的括号,注释结束前的空格或=〜,但没有任何帮助.似乎没有mod_include的调试设置,这会告诉我什么是错的......
我发现的另一个变种是
<!--#if expr='"${DOCUMENT_URI}"=~/internet/'-->
Run Code Online (Sandbox Code Playgroud)
这没有错误.但它总是选择else分支,同样REQUEST_URI如下,好像变量未设置.但我可以很好地回应他们.我也试过/.+internet.+/,以防它锚定这个.
由于这些是CGI变量,我也尝试加载cgid_module - 也没有好处.
小智 10
从版本2.3.13开始,mod_include已切换到#if流控制元素中条件表达式的新ap_expr语法.
添加SSILegacyExprParser on指令以切换到与Apache HTTPD 2.2.x及更早版本兼容的旧语法.
http://httpd.apache.org/docs/current/mod/mod_include.html#ssilegacyexprparser
| 归档时间: |
|
| 查看次数: |
8674 次 |
| 最近记录: |