나는 Varnish 4.1.2를 사용 중이며 ESI 콘텐츠를 포함하려고합니다. 경우에 따라 포함 된 콘텐츠의 URL에 '
('
)과 같은 인코딩 된 HTML 엔터티가 포함될 수 있습니다.Varnish가있는 인코딩 된 HTML 엔터티가 포함 된 ESI URL을 어떻게 참조 할 수 있습니까?
예를 들어, 나는 외부 쉘 내 응용 프로그램에 의해 반환 된 HTML에 다음과 같은 한 :
<esi:include src="/esi/map/alice's%20house"/>
3 개 세그먼트 경로없이 쿼리 문자열에 대한 ESI의 요청이 해야 결과, 완전히 디코딩 할 때, 결과있는 :
esi
map
alice's house
세 번째 세그먼트의 아포스트로피는 HTML 문서에서 전송되므로 HTML로 인코딩됩니다. 이 공간은 URL의 일부이므로 URL로 인코딩됩니다.
그러나 Varnish는 ESI 요청을하기 전에 HTML 인코딩 된 엔터티를 디코딩하지 않는 것 같습니다. 경로 또는 URL에서 &
이 유효하지 않으므로 잘못된 요청 인 /esi/map/alice's%20house
에 대한 요청을 보냅니다.
어떻게 이러한 ESI 링크를 올바르게 처리 할 수 있습니까?