NGINX: Игнорирование параметра fbclid для целей кэширования FastCGI

Здесь есть несколько хороших ответов на этот вопрос: NGINX: игнорирование определенных параметров URL для целей кэширования

Но я не могу заставить его работать. Я запускаю установку wordpress и вот мое отображение:

map $args $cachestep1 {
  default $args;
  ~^(fbclid=[^&]*&?)(.*)$             $2;
  ~^([^&]*)(&fbclid=[^&]*)(&?.*)$     $1$3;
}

И мой cachekey:

fastcgi_cache_key $scheme$host$request_method$uri$cachestep1;

Я все еще получаю cache MISS на точно таких же URL с разными fbclids.

0
задан 30 April 2021 в 19:31
1 ответ

Похоже, что третий regex немного неправильный - ^([^&]*)(&fbclid=[^&]*)(&?.*)$ не будет соответствовать строке типа a=c&c=d&fbclid=trimm&xxx=yyy.

Его можно заменить на ^(.*)(&fbclid=[^&]*)(&?.*)$. Попробуйте сами на regex101.com.

Несколько небольших улучшений:

  • не перехватывает группы (?:...)
  • .*? - не жадная версия .* (как можно меньше символов)
map $args $cachestep1 {
  default $args;
  ~^(?:fbclid=[^&]*&?)(.*)$             $1;
  ~^(.*?)(?:&fbclid=[^&]*)(&?.*)$     $1$2;
}
0
ответ дан 7 May 2021 в 20:24

Теги

Похожие вопросы