nginx SSI: HTML을 에코하는 방법은 무엇입니까?

nginx SSI: HTML을 에코하는 방법은 무엇입니까?

온전성 테스트로서 HTML 페이지 헤드에서 echoSSI가 작동 중임을 브라우저에 알리기 위해 매우 간단한 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;

HTML을 원시 처리 하는 방법을 나타내는 nginx 문서에서 아무것도 찾을 수 없습니다 echo.

예, HTML 파일을 가져올 수 있다는 것을 알고 있지만 더 복잡해지기 때문에 이를 피하려고 했습니다. 이 작업을 수행할 수 있는 것처럼 보이지만 에 대한 올바른 매개변수가 누락되었습니다 echo.

감사해요

답변1

nginxencoding명령 에 대한 매개변수가 있습니다 echo(참조:지원되는 명령), 텍스트를 이스케이프하는 방법을 결정합니다. 세 가지 값을 가질 수 있습니다없음(당신이 찾고 있는 것이 바로 이것이다),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" -->

관련 정보