Если в строке замены указаны новые аргументы запроса, то предыдущие аргументы запроса добавляются после них. Если такое поведение нежелательно, можно отказаться от этого добавления, указав в конце строки замены знак вопроса
rewrite ^/([0-9]+)/$ /index.php?id=$1? last;
rewrite ^/some/([0-9]+)/$ /index.php?secret=abc&id=$1? last;
location = /api/v2 {
proxy_ssl_server_name on;
proxy_pass https://dog.ceo/api/breeds/image/random;
}
RewriteCond %{QUERY_STRING} (?:^|&)sort=
(?:^|&)
можно сразу в начало проверяемой строки %{QUERY_STRING} добавить &
.RewriteCond &%{QUERY_STRING} &sort=
RewriteCond &%{QUERY_STRING} &sort=|&display=
RewriteCond &%{QUERY_STRING} &(PAGEN_1=\d+) [OR]
RewriteRule ^catalog/.+$ /$0?%1 [R=301,L]
&
в конец проверяемой строки можно избавиться от (?:$|&)
RewriteCond &%{QUERY_STRING}& &sort=(?:SHOWS|NAME|PRICE)&|&display=(?:block|list|table)&
RewriteCond &%{QUERY_STRING} &(PAGEN_1=\d+) [OR]
RewriteRule ^catalog/.+$ /$0?%1 [R=301,L]
RewriteCond %{QUERY_STRING} (?:^|&)p=
RewriteRule ^ https://site.ru/? [R=301,L]
rewrite ^ /public-service/ break;
proxy_pass https://example.com;
proxy_set_header Host $host;
httpS://public-service.com
так что нужен не listen 80;
, а listen 443 ssl;
.