artzub
@artzub
Программист

Nginx. Проксирование запросов sub.domain.com на domain.com/sub/. Почему иногда происходит реврайт url у клиента?

Рабочий конфиг.
server {
    listen 80;
    server_name ~^(?:www\.)?(?:(?<sd>.*)\.)?domain\.com$;
 
    location / {
        proxy_pass              http://localhost:80/$sd$request_uri;
        proxy_set_header        Host domain.com;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_cache off;
        proxy_redirect off;
        break;
    }
}

Ожидается поведение:
При переходе по sub.domain.tdl он проксирует на domain.com/sub/.
Это все прекрасно работает.
При переходе по sub.domain.com/something/ тоже все происходит как положено он проксирует на domain.com/sub/something/, но если забыть последний слеш, то по какой то причине он у клиента переписывает url на domain.tdl/sub/something/.
Как это исправить?

вот попробуйте:
d3.artzub.com/test/работает как и ожидается.
d3.artzub.com/testпереписывает url.
  • Вопрос задан
  • 2984 просмотра
Пригласить эксперта
Ответы на вопрос 1
dizballanze
@dizballanze
Software developer at Yandex
Мне кажется что у вас редирект делает приложение, а не Nginx. Т.к. возвращается статус: 301 Moved Permanently.
Что на бекенде используется?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы