Я использую Varnish 4.1.2 и пытаюсь включить ESI-контент. Иногда URL-адрес для включенного содержимого может включать кодированные HTML-объекты, такие как '
('
).Как я могу ссылаться на ESI-URL, который включает кодированный объект HTML с помощью лака?
Например, я следующий в HTML, возвращаемый мое приложение для внешней оболочки:
<esi:include src="/esi/map/alice's%20house"/>
Этот должен результат в запросе ESI для пути с 3-х сегментов и без строки запроса, которая при полностью декодированы, в результате:
esi
map
alice's house
Апостроф в третьем сегменте кодируется HTML, поскольку он передается в документе HTML. Пространство кодируется URL-адресом, поскольку оно является частью URL-адреса.
Тем не менее, Varnish, кажется, не расшифровывает объект, закодированный в HTML, перед выполнением запроса ESI. Он отправляет запрос для /esi/map/alice's%20house
, что является плохим запросом, потому что &
не является законным по пути или URL-адресу.
Как я могу получить лак для правильного обращения с этими ESI-ссылками?