Если Вы хотите внутренне переписать URL, поместите следующее (непротестированное) в vcl_recv:
set req.url = regsub(
req.url,
"^/products/.*([&?]startindex=([0-9]+)|[&?]endindex=([0-9]+))*",
"/products/?paginate=\2:\3"
);
Если Вы хотите к 301 запросу от одного стиля URL до другого затем, это немного более сложно, но здесь является грубым запуском о том, как Вы могли бы сделать это:
vcl_recv:
set req.http.X-Redirect-URL = regsub(
req.url,
"^/products/.*([&?]startindex=([0-9]+)|[&?]endindex=([0-9]+))*",
"/products/?paginate=\2:\3"
);
error 700 req.http.X-Redirect-URL;
vcl_error:
if (obj.status == 700) {
set obj.http.Location = obj.response;
set obj.status = 301;
set obj.response = "Moved Permanently";
}
Очевидно, если у Вас есть другие параметры, Вы оказываетесь перед необходимостью переходить еще через несколько обручей, чтобы гарантировать, что через них правильно проходят.