@dimonka33

Как сделать сайт доступным только по https и без www?

Есть сайт https://example.com Хочу, значит, чтобы все было только через https и без www, в остальных случаях должен быть редикт 301 на соотвествующий https без www ulr, то есть:

example.com -> 301 -> https://example.com
https://www.example.com -> 301 -> https://example.com
https://www.example.com/something -> 301 -> https://example.com/something
www.example.com/something -> 301 -> https://example.com/something

и т.п.

В nginx такие настройки, которые работают частично:

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

server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name localhost example.com www.example.com;
#return 301 https://example.com$request_uri; -- почему тут был бесконечный редирект
# .......


Сам сайт работает на сервере на localhost:3000
  • Вопрос задан
  • 467 просмотров
Решения вопроса 1
slimus
@slimus
Symfony, Golang
потому что вы редиректите сами на себя.

Вам нужно сделать примерно следующее:
server {
listen 80 ;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

server {
listen 443 ssl ;
listen [::]:443 ssl ;
server_name localhost www.example.com;
return 301 https://example.com$request_uri;
}

server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name  example.com


... тут будет основной конфиг для вашего сервера
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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