проблемы с nginx со всеми перенаправлениями

У меня есть два перенаправления в файле по адресу /etc/nginx/redirect.conf:

rewrite /this-link https://www.google.com redirect;
rewrite /this-link-too https://mail.google.com redirect;

Попытка перейти на http://www.example.com / this-link или http://www.example.com/this-link-too оба переходят на https://www.google.com .

] Есть ли способ принудительно установить точное соответствие?

Пример конфигурации ниже:

server {
listen 80;

server_name www.example.com;

index index.html;

error_page 404 http://www.example.com/error.html;

location / {
  try_files $uri @redirect;
}

location @redirect {
  include /etc/nginx/redirect.conf;
}
2
задан 28 January 2019 в 19:18
1 ответ

Директива rewrite принимает регулярное выражение, поэтому / this-link-too соответствует / this-link , и таким образом, ваша первая перезапись всегда используется. Следует избегать перезаписи , если только вам действительно не нужно сопоставить регулярное выражение или выполнять подстановки.

Вам следует рассмотреть возможность использования точного совпадения местоположения с return . 1274] Например:

location = /this-link {
    return 302 https://www.google.com/;
}
2
ответ дан 3 December 2019 в 11:23

Теги

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