@tgarl

В чем может быть причина что редирект в nginx не работает?

Открываю на редактирование файл /etc/nginx/sites-enabled/домен
прописываю перед текущем server, пробовал и после текущего
server {
        listen 80;
        listen [::]:80;
		server_name www.домен;
		return 301 $scheme://домен$request_uri;
}
server {
        listen 80;
	listen [::]:80;
    server_name www.домен домен;


не работает

пробовал варианты с условиями прописать
if ($host ~ "^www\.(.*)$") {
                return 301 https://домен$request_uri;
        }
if ($host = 'www.домен' ) {
              rewrite ^(.*)$ https://домен$1 permanent;
        }


никак, nginx после внесения изменений перезапускал
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
@tgarl Автор вопроса
Всё разобрался.
Со всеми этими редиректами и сертификатами. Итого.

1. проверяем сам сертификат внесены ли в него домен и www.домен, если чего-то не хватает добавляем, так как проверка сертификата главнее настроек nginx, редиректы работают, вот только вы это не видите пока не разрешите перейти без сертификата на страницу далее(последние обновления браузеров могут не разрешать этого делать у меня IE дает выбор, а хром нет)
если используется cerbot, то команда где перечисляем все нужные домены
certbot -d domen -d www.domen --expand
2. в основном конфиге оставляем
server {
       ...
        server_name домен;
       ...
}

а так же добавляем уже дополнительно редиректы для www
server {
	listen 80; #для http редирект сразу на https и без www
	server_name www.домен;
	return 301 https://домен$request_uri;
}
server {
	listen 443; #для https
	server_name www.домен;
	return 301 $scheme://домен$request_uri;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы