Довольно удобно и просто удалять лишние параметры на этапе обработки запроса Varnish, если вы используете его на вашем веб сервере. Давайте посмотрим как это делается.
Описанное ниже выполнялось для Varnish версии 4.
Допустим вам нужно избавиться от параметра AB, в запросе http://wensite.com/mypage?AB=value.
Для этого в секции vcl_recv достаточно переопределить переменную req.url следующим образом:
1 2 3 4 5 |
sub vcl_recv { set req.url = regsub(req.url, "([?])AB=([^&]*)", "?"); set req.url = regsub(req.url, "([&])AB=([^&]*)", ""); ... } |
Если параметр идет первым в строке параметров, то нужно оставить знак «?», а для остальных случаев мы удаляем переменную вместе со знаком «&».
Т.к. обычно кеш строится на базе значения переменной req.url, то не нужный нам параметр не будет далее влиять на кеш, а также измененное значение url будет передано дальше к веб-серверу уже без этого параметра.