LINUX.ORG.RU
ФорумAdmin

nginx цикл

 


0

1

всем привет

подскажите плиз как правильно настроить, хочу настроить в 1 блоке с ssl, чтобы при попадании на урл https://test.ru редиректился на https://www.test.ru

если в блоке с ssl добавляю редирект то происходит цикл

дополнительный блок добавить уже нельзя

 server_name test.ru;

должен остаться в блоке 1

server 1 {
    listen 443 ssl;

    server_name test.ru;
    server_name www.test.ru;

server 2 {
      listen 80;
      server_name test.ru;
      server_name www.test.ru;
      return 301 https://www.$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name site;
    return 301 https://www.site$request_uri;
}


server {
    listen 443 ssl;
    server_name www.site;
}
gruy ★★★★★
()

Есть простая конструкция для редиректа http на https

     if ($scheme = http) {
        return 301 https://$server_name$request_uri;
     }

vel ★★★★★
()
Ответ на: комментарий от carter

ну.

Ну и посмотри выше мой пример. Тяжело?

gruy ★★★★★
()
Ответ на: комментарий от vel

Часто пишут, что if нужно использовать как можно меньше без необходимости. А для редиректа с/на www советуют лучше использовать разные секции server.

gruy ★★★★★
()
Ответ на: комментарий от carter

по аналогии проверяешь $server_name и если он не ww.test.ru, то редирект на ww.test.ru

Без проверки оно естественно будет давать цикл.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от gruy

if как раз решает проблему редиректа внутри 1 сервера.

Тут весь вопрос в том какие имена в ssl сертификате указаны.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.