如何引用包含带Varnish的编码HTML实体的ESI URL?

时间:2016-08-07 05:19:08

标签: html encoding varnish url-encoding varnish-4

我正在使用Varnish 4.1.2,并尝试包含ESI内容。有时,所包含内容的网址可能包含已编码的HTML实体,例如'')。

例如,我的应用程序为外壳返回的HTML中包含以下内容:

<esi:include src="/esi/map/alice&#x27;s%20house"/>

  • esi
  • map
  • alice's house

第三段中的撇号是HTML编码的,因为它是在HTML文档中传输的。该空间是URL编码的,因为它是URL的一部分。

然而,在发出ESI请求之前,Varnish似乎没有对HTML编码实体进行解码。它会发送/esi/map/alice&#x27;s%20house请求,这是一个错误的请求,因为&在路径或网址中不合法。

如何让Varnish正确处理这些ESI链接?

1 个答案:

答案 0 :(得分:0)

我最后在Varnish Github issue tracker上发布了这个问题,似乎答案是:你做不到。

解决方法是对链接进行URL编码,以避免使用HTML实体。

相关问题