Стоит следующая задача - есть сайт на Wordpress с включенным кешем. На него постоянно долбится кто то на самую тяжелую страницу с запросом вида /slow-page?workaround=time(). Поскольку страницы в кэше нет, то генерируется новая, что сильно нагружает сервак. Я добавил такое правило в
location / {
if ( $args ~ "workaround=" ) { return 404; }
}
Но данное правило не совсем универсальное, поскольку человек сможет поменять параметр и мне придется его менять. Я хочу поступить иначе - отдавать 404 ошибку, если идет запрос с любым запросом в query_string, кроме запроса поиска вида /?s=*, поскольку поиск у меня реализован через Elastic мимо MySQL. Т.е фактически мне надо понять, что человек зашел на главную (избежать конструкции типа /page/?s=*) и у него в query_string параметр s=.
Не совсем понимаю, как это реализовать