Редирект без-www на c www при защищенном соединении https

SN
На сайте с 04.07.2013
Offline
84
4557

Сайт использует защищенное соединение https.

Успешно настроил переадресацию с адресов http на https.

Нужно теперь настроить переадресацию внутри https адресов без-www на c www.

Прописал следующее:

server {

listen 443;
server_name example.com;
rewrite ^(.*)$ http://www.example.com$1 permanent;
}

не работает.

Я так понимаю это для незащищенных http код.

В интернете ответ не нашел.

Помогите пожалуйста прописать настройки.

Спасибо!

K5
На сайте с 21.07.2010
Offline
209
#1

а если все таки

server {
listen 443;
server_name example.com;
rewrite ^(.*)$ https://www.example.com$1 permanent;
}

???

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
SN
На сайте с 04.07.2013
Offline
84
#2
kgtu5:
а если все таки

???

Прошу прощения, я опечатался когда готовил этот пост, в конфиге все было нормально.

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

user nginx;
worker_processes 1;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {

server {
listen 443;
server_name mysite.ru;
rewrite ^(.*)$ https://www.mysite.ru$1 permanent;
}

server {
listen 80;
server_name mysite.ru www.mysite.ru;
rewrite ^ https://www.$server_name$request_uri permanent;
}

server {
listen 443;
server_name www.mysite.ru;
ssl on;
ssl_certificate /etc/ssl/mysite.ru.crt;
ssl_certificate_key /etc/ssl/mysite.ru.key;

location / {
root /home/vlad/mysite.ru/www;
index index.html index.php;
}
}
}

Если исключить первую секцию server, то все работает кроме перенаправления с https://mysite.ru на https://www.mysite.ru.

Я честно говоря не понимаю почему не работает, ведь все логично.

Firefox выдает ошибку:

Ошибка при установлении защищённого соединения

При соединении с mysite.ru произошла ошибка. SSL получило запись, длина которой превышает максимально допустимую. (Код ошибки: ssl_error_rx_record_too_long)

K5
На сайте с 21.07.2010
Offline
209
#3

зачем отдельный виртуальный сервер (443) под редирект, все в один собрать?

SN
На сайте с 04.07.2013
Offline
84
#4

Вот сделал в одном.

Теперь пишет:

Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

user nginx;

worker_processes 1;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
server {
listen 80;
server_name mysite.ru www.mysite.ru;
rewrite ^ https://www.$server_name$request_uri permanent;
}

server {
listen 443;
server_name mysite.ru www.mysite.ru;
rewrite ^(.*)$ https://www.mysite.ru$1 permanent;
ssl on;
ssl_certificate /etc/ssl/mysite.ru.crt;
ssl_certificate_key /etc/ssl/mysite.ru.key;

location / {
root /home/vlad/mysite.ru/www;
index index.html index.php;
}
}
}
akapaka
На сайте с 12.01.2004
Offline
105
#5

Сталкивался с подобным. Речь, как я понимаю, идёт о SSL- сертификате без Wildkard.

Если ваш SSL-сертификат поддерживает домен с www и без, то для того, чтобы работал редирект нужно домен с www привязать к тому-же выделенному IP-адресу, что и без www/

Если ваш SSL-сертификат не поддерживает оба адреса, то выход есть — повесить на поддомен www самоподписанный ☝ SSL-сертификат и сделать редирект на без www.

SN
На сайте с 04.07.2013
Offline
84
#6
akapaka:
Сталкивался с подобным. Речь, как я понимаю, идёт о SSL- сертификате без Wildkard.
Если ваш SSL-сертификат поддерживает домен с www и без, то для того, чтобы работал редирект нужно домен с www привязать к тому-же выделенному IP-адресу, что и без www/
Если ваш SSL-сертификат не поддерживает оба адреса, то выход есть — повесить на поддомен www самоподписанный ☝ SSL-сертификат и сделать редирект на без www.

Спасибо!

Дело в том что сайт открывается по обеим адресам: https://mysite.ru и https://www.mysite.ru (если например набрать адрес руками в браузере)

Не работает именно редирект. Сертификат без willdcard. Оба адреса на одном IP.

S
На сайте с 02.05.2014
Offline
61
#7
SeoNk:

server {
listen 443;
server_name mysite.ru;
rewrite ^(.*)$ https://www.mysite.ru$1 permanent;
}

А если так:

	server {

listen 443 ssl;
ssl_certificate /etc/ssl/mysite.ru.crt;
ssl_certificate_key /etc/ssl/mysite.ru.key;
server_name mysite.ru;
return 301 https://www.mysite.ru$request_uri;
}
server {
listen 443;
server_name www.mysite.ru;
ssl on;
.........................................
}



SN
На сайте с 04.07.2013
Offline
84
#8
Sujcnm:
А если так:
	server {

listen 443 ssl;
ssl_certificate /etc/ssl/mysite.ru.crt;
ssl_certificate_key /etc/ssl/mysite.ru.key;
server_name mysite.ru;
return 301 https://www.mysite.ru$request_uri;
}
server {
listen 443;
server_name www.mysite.ru;
ssl on;
.........................................
}



Спасибо! Немного видоизменил и заработало !

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