У меня есть два перенаправления в файле по адресу /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;
}
Директива rewrite
принимает регулярное выражение, поэтому / this-link-too
соответствует / this-link
, и таким образом, ваша первая перезапись всегда используется. Следует избегать перезаписи
, если только вам действительно не нужно сопоставить регулярное выражение или выполнять подстановки.
Вам следует рассмотреть возможность использования точного совпадения местоположения
с return
. 1274] Например:
location = /this-link {
return 302 https://www.google.com/;
}