Привет, мне нужно правило перезаписи, но я не хочу его перенаправлять и запрашивать один URL-адрес, но загружать другой контент с другого URL-адреса. Итак, я думаю, что флаг last и break в директиве rewrite - хорошее решение. Но он всегда перенаправляется, я ищу проблему, и они заявляют, что если новый URL-адрес не из экземпляра nginx, он будет перенаправлен вместо этого. Вот несколько строк моего конфига:
...
rewrite ^(/\w+/$)(.+\.php) /$2 last;
proxy_pass upstream_name:80;
...
Я спрашиваю, как я могу использовать перезапись, но без перенаправления?
Обновление: например, я хочу создать новый лайк / ссылка / asd, но в моем веб-приложении нет / ссылки / asd. Я хочу, чтобы ресурс загрузки ссылки / link / asd из ссылки / asd. Тогда я думаю, что флаг перезаписи последнего - хорошее решение. Если мое понимание неверно, поправьте меня и объясните. Спасибо
Если вы хотите точно переписать /link/example
к /example
, где example
что угодно, вы можете использовать это rewrite
:
rewrite ^/link/(.+)$ /$1 last;
Это также будет соответствовать /link/example/something/else
, как .+
соответствует любым символам до конца строки ($
). Если вы хотите ограничить, какие символы разрешены в группе захвата, например, исключите /
из группы захвата можно использовать [^/]+
обозначение для регулярного выражения.