Работа с nginx и редиректами.

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Afimida
Сообщения: 2
Зарегистрирован:
11 янв 2019, 12:33

Работа с nginx и редиректами.

Afimida » 11 янв 2019, 12:51

запустил проект.
Активировал в проекте следующие модули:
http://prntscr.com/m5qwzk
Далее у меня стояла задача настроить на моем сервере nginx редиректы,
первым делом настроил алиасы:
http://prntscr.com/m5qydg
http://prntscr.com/m5qyr7

Вроде работает.
Далее стояла задача включить SSL, покопался в доках нашел что SSL включается в настройках PHP глянул, да работает. При переходе на https://mysite.local открывает с сертификатом.
Далее у меня стояла задача, через nginx сделать редирект с http на htpps
Я скопировал файлы настроек в корень своего сайта
Apache-PHP-7+Nginx-1.14_vhosta.conf
Apache-PHP-7+Nginx-1.14_vhostn.conf
Все ок, перезагрузил написал в них абру кадабру сайт лег, убрал абру кадабру сайт заработал, конфиги пашут.

Далее добавляю в файл Apache-PHP-7+Nginx-1.14_vhostn.conf строку:
listen %ip%:%httpport%; - это было
listen %ip%:%httpsport% ssl; - это было
server_name %host% %aliases%; - это было
return 301 https://$host$request_uri; - это добавил
Сайт лег, в плане редирект срабатывает, но "выполнил переадресацию слишком много раз."
Тоже самое происходило когда я через nginx пытался сделать редирект на мой сайт с www
"Для перенаправления IP на нужный домен создайте алиас в настройках."
Алиас создан был.

Помогите пожалуйста разобраться тем на форуме не нашел в доках тоже не нарыл инфы, сам не догоняю в чем дело.
GeekHacker
Сообщения: 131
Зарегистрирован:
24 авг 2015, 15:22

Re: Работа с nginx и редиректами.

GeekHacker » 11 янв 2019, 14:03

#для https
if ($scheme = http) {
return 301 https://$host$request_uri;
}

#для www
if ($host !~* ^www\.) {
return 301 https://www.$host$request_uri;
}
Afimida
Сообщения: 2
Зарегистрирован:
11 янв 2019, 12:33

Re: Работа с nginx и редиректами.

Afimida » 11 янв 2019, 16:29

Вот таким образом получилось решить задачу
server {
    listen  %ip%:%httpport%;
    server_name mysite.local www.mysite.local;
    return 301 https://www.$host$request_uri;
}

server {
    listen  %ip%:%httpsport% ssl;
    server_name mysite.local;
    return 301 https://www.$host$request_uri;

    ssl_certificate               "%sprogdir%/userdata/config/cert_files/server.crt";
    ssl_certificate_key           "%sprogdir%/userdata/config/cert_files/server.key";
}

server {
    #listen         %ip%:%httpport%;
    ...
    }
    
Ответить