nginx SSI: как отобразить html?

В качестве проверки работоспособности в начале моей HTML-страницы я пытаюсь выполнить очень простой SSI echo , чтобы указать браузеру, что SSI работает:

index.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 является строкой, теги HTML очищаются следующим образом:

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

Я не могу найти в документации nginx ничего, что указывает, как выводить необработанный HTML.

Да, я знаю, что могу импортировать html-файл, но пытался избежать этого, так как это добавляет сложности. Похоже, это можно сделать, но мне просто не хватает правильного параметра для echo .

Спасибо

0
задан 21 January 2020 в 18:28
1 ответ

nginx имеет параметр encoding для команды echo (см. supported commands), который решает, как чтобы избежать текста. Он может иметь три значения: none (это то, что вам нужно), url и значение по умолчанию entity. Сравните результаты:

<!--#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" -->
1
ответ дан 22 January 2020 в 17:09

Теги

Похожие вопросы