nginx SSI:如何回显 html?

nginx SSI:如何回显 html?

作为一个健全性测试,在我的 HTML 页面的顶部,我尝试做一个非常简单的 SSIecho来向浏览器表明 SSI 正在运行:

索引.html:

<script>var ssi_enabled = false</script>
<!--# set var="test" value="<script>ssi_enabled=true</script>" -->
<!--# echo var="test" -->

然后在 JS 中:

if (!ssi_enabled) { console.log("SSI is not enabled!"); }

但是当 nginx echoes 字符串时,HTML标签会被清理如下:

&lt;script&gt;ssi_enabled=true&lt;/script&gt;

我在 nginx 文档中找不到任何有关如何生成echo原始 HTML 的内容。

是的,我知道我可以导入 html 文件,但我试图避免这样做,因为这会增加更多复杂性。似乎可以做到这一点,但我只是缺少正确的参数echo

谢谢

答案1

nginx有一个命令encoding参数echo(参见支持的命令),决定如何转义文本。它可以有三个值没有任何(这就是你要找的),网址和默认实体. 比较结果:

<!--#set var="GREETING" value="<h1><strong>Hello <em>&World</em></strong></h1><p>àäáąåǎâ</p>" -->
<!--#echo var="GREETING" encoding="none" -->
<!--#echo var="GREETING" encoding="url" -->
<!--#echo var="GREETING" encoding="entity" -->

相关内容