Как при определённом URL отдавать ошибку 404 в nginx
location =/someuri { 
return 404;
}
Всё, что после ? - это $args, работать с ними через location нельзя, только через if. 
То есть если вам нужно ограничить доступ к странице /someuri?page=1, то придется делать так:location =/someuri { 
if ($arg_page = 1) { return 404; }
# или (если вообще искать цифру 1 во всей части ссылки после ? 
if ($arg ~* 1) {return 404; }
<здесь вставляем конфигурацию для обработки запроса к /someuri без page=1 или с другими аргументами, например строки про proxy_pass - скорее всего нужно скопировать из location />
}
Если подойдет вариант "заблокировать любые запросы с ?page=1", то if ($arg_page = 1) { return 404; } можно вставить прямо в location / { } (перед остальными частями конфига).
location =/blah, соответственно, нужно ставить для того, чтобы матчить условие на точные uri, а не на /blahтутлюбойтекст
А если в URL есть вопросительны знак? Подскажите, что делать. При его отсутствии всё работает, с ним - нет.