作为一个健全性测试,在我的 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 echo
es 字符串时,HTML标签会被清理如下:
<script>ssi_enabled=true</script>
我在 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" -->