Varnish - использование нелатинских символов URL в VCL
У меня есть клиент, которому нужно установить Varnish на его сервер. Он говорит по-русски и имеет интернет-магазин со следующим примером URL, который необходимо исключить из кэша (корзина
это страница корзины).
www.example.com/корзина/
Итак, есть ли какой-то особый способ использования нелатинских символов в VCL, поскольку он, кажется, не работает для меня. Я попробовал следующее (фактический код длиннее этого и работает для других веб-страниц, это просто для того, чтобы показать вам пример):
if (
! req.url ~ "(...|корзина/|...)"
# or URLencoded:
! req.url ~ "(...|%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0/|...)"
)
{ unset req.http.cookie; }
Оба, кажется, не работают для меня как-то - мои правила не срабатывают. Итак, как я должен использовать нелатинские символы в VCL?
1 ответ
Да, к сожалению, мне нужно ответить на свой вопрос, извините за это:)
Нелатинские символы в URL должны быть закодированы И в нижнем регистре. Так что это будет работать:
req.url ~ "(...|%d0%ba%d0%be%d1%80%d0%b7%d0%b8%d0%bd%d0%b0|...)" ...
Это не будет:
req.url ~ "(...|%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0/|...)" ...
req.url ~ "(...|корзина/|...)" ...
Как я узнал? Я использовал магический инструмент под названием varnishlog
:)