Nginx переадресация на https (слишком много редиректов)

А
На сайте с 27.08.2013
Offline
98
1315

Доброго дня коллеги.

Раньше стоят на .htaccess переадресация с http на https такой код, который работал хорошо.

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Решил на nginx сделать такую же переадресацию:

server {

listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}

В итоге сайт ругается на слишком большое количество редиректов. Подскажите как быть?

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#1

если редирект делается на уровне nginx, то в .htaccess эти строки можно убрать

Услуги (http://www.our-dns.info/) | Цены (http://www.our-dns.info/prices/) | Отзывы (/ru/forum/970789)
А
На сайте с 27.08.2013
Offline
98
#2
coolwebsearcher:
если редирект делается на уровне nginx, то в .htaccess эти строки можно убрать

Ну ясное дело, что я убираю в .htaccess, когда ставлю код на nginx.

Ругается при этом на слишком большое количество редиректов.

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#3

какой конфиг для ssl (443 порт) ?

На уровне бакенда, редирект не стоит?

Что выводит


curl -I -v https://домен_с_ssl/ ?
А
На сайте с 27.08.2013
Offline
98
#4

Вот так решил вопрос:

if ($scheme = http) {

return 301 https://$server_name$request_uri;
}
Plazik
На сайте с 29.07.2008
Offline
123
#5

С if пример не удачный, надо так:

server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

server {
listen 443 ssl;
server_name example.com www.example.com;
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий