Varnish 4.1.2 を使用しており、ESI コンテンツを含めようとしています。'
含まれるコンテンツの URL に、 ( )などのエンコードされた HTML エンティティが含まれる場合があります'
。
たとえば、外部シェル用にアプリから返された HTML には次のものがあります。
<esi:include src="/esi/map/alice's%20house"/>
これにより、3 つのセグメントを持ち、クエリ文字列を持たないパスの ESI リクエストが生成されます。これを完全にデコードすると、次のようになります。
esi
map
alice's house
3 番目のセグメントのアポストロフィは、HTML ドキュメントで送信されるため、HTML エンコードされます。スペースは URL の一部であるため、URL エンコードされます。
ただし、Varnish は、ESI 要求を行う前に HTML エンコードされたエンティティをデコードしないようです。に対してリクエストを送信しますが、パスまたは URL で が正当でない/esi/map/alice's%20house
ため、これは不適切なリクエストです。&
Varnish でこれらの ESI リンクを適切に処理するにはどうすればよいですか?