Нужна помощь в изменении перенаправления https - PullRequest
0 голосов
/ 11 мая 2019

У меня виртуальная машина Debian 9 с nginx в качестве моего веб-сервера, и в моей конфигурации указано следующее.

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

Теперь, если я перейду на example.com или www.example.com, он перенаправляется на https://www.example.com.

Однако, если я вписываю следующее в адресную строку или подобное: example.com/site/about, то он пытается перенаправить на https://example.com/site/about (без www), и Chrome и Firefox предупреждают меня, что у сайта нет сертификата для эта ссылка.

Я использую CertBot. Конфигурация сервера для него содержит:

listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

Как мне заставить example.com/site/about перенаправить на https://www.example.com/site/about.

Изначально я считаю, что у меня было условие if и регулярное выражение, но я видел совет на веб-сайте nginx по упрощению перенаправлений https и использую приведенный выше код.

1 Ответ

0 голосов
/ 12 мая 2019

Вы можете использовать этот вариант сервера nginx:

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

Возвращает https URL с www. Кроме того, если у вас есть доступ к вашим серверам имен, вы можете сделать запись CNAME, которая перенаправляет no-www на www.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...