Страница 1 из 1

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

Добавлено: 11 янв 2019, 12:51
Afimida
запустил проект.
Активировал в проекте следующие модули:
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 на нужный домен создайте алиас в настройках."
Алиас создан был.

Помогите пожалуйста разобраться тем на форуме не нашел в доках тоже не нарыл инфы, сам не догоняю в чем дело.

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

Добавлено: 11 янв 2019, 14:03
GeekHacker
#для https
if ($scheme = http) {
return 301 https://$host$request_uri;
}

#для www
if ($host !~* ^www\.) {
return 301 https://www.$host$request_uri;
}

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

Добавлено: 11 янв 2019, 16:29
Afimida
Вот таким образом получилось решить задачу
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%;
    ...
    }