nginx SSI: HTML をエコーする方法は?

nginx SSI: HTML をエコーする方法は?

健全性テストとして、HTML ページの先頭で、echoSSI が動作していることをブラウザーに示す非常に単純な 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 タグは次のようにサニタイズされます。

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

nginx のドキュメントには、生の HTML を作成する方法を示すものが見つかりませんecho

はい、HTML ファイルをインポートできることはわかっていますが、複雑さが増すため、それを避けようとしていました。これは実行できそうですが、 の正しいパラメータが不足しているだけですecho

ありがとう

答え1

nginxencodingコマンドにパラメータがありますecho(cf.サポートされているコマンド)は、テキストをどのようにエスケープするかを決定します。3つの値を取ることができます。なし(それがあなたが探しているものです)、URLそしてデフォルト実在物次の結果を比較します。

<!--#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" -->

関連情報