Назад | Перейти на главную страницу

Вопрос о перезаписи Nginx

Моя цель - чтобы запросы на /foobar?key=123 следует перенаправить на /download/foobar.html?key=123.

В настоящее время для этого я использую следующий код:

location /foobar {
  rewrite ^/foobar(.*)$ /download/foobar.html$1 permanent;
}

Это помогает, но у нас есть старый код, который также вызывает /FooBar?key=123 и /Foobar?key=123 который игнорирует правило перезаписи.

Как мне их тоже переписать? Могли бы использовать:

location ~* ^/foobar {
  rewrite ^ /download/foobar.html$1 permanent;
}

но разве это не выходит из правила?

Прежде всего, location по умолчанию учитывается регистр; location ~* ^/foobar$ исправлю это.

Для rewrite, он всегда чувствителен к регистру, но вы можете сделать так, чтобы выражение соответствовало обеим формам:

rewrite ^/[Ff]oo[Bb]ar(.*)$ /download/foobar.html$1 permanent;