Como teste de sanidade, no início da minha página HTML, estou tentando fazer um SSI muito simples echo
para indicar ao navegador que o SSI está funcionando:
index.html:
<script>var ssi_enabled = false</script>
<!--# set var="test" value="<script>ssi_enabled=true</script>" -->
<!--# echo var="test" -->
mais tarde em JS:
if (!ssi_enabled) { console.log("SSI is not enabled!"); }
Mas quando nginx echo
é a string, as tags HTML são higienizadas da seguinte forma:
<script>ssi_enabled=true</script>
Não consigo encontrar nada nos documentos do nginx que indique como fazer echo
HTML bruto.
Sim, eu sei que poderia importar um arquivo html, mas estava tentando evitá-lo, pois isso adiciona mais complexidade. Parece que isso poderia ser feito, mas estou faltando o parâmetro correto para echo
.
Obrigado
Responder1
nginxtem um encoding
parâmetro para o echo
comando (cf.comandos suportados), que decide como escapar do texto. Pode ter três valoresnenhum(que é o que você está procurando),urle o padrãoentidade. Compare os resultados de:
<!--#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" -->