С помощью следующего файла конфигурации Nginx я в настоящее время могу перенаправить все HTTP-запросы www на HTTPS без www. http://www.example.com => https: // example; com
Все HTTPS-запросы без www - хорошо обработаны. https://example.com
Но запрос www HTTPS НЕ перенаправляется на HTTPS без www. https://www.examples.com -> https://www.examples.com Я хотел бы иметь: https://www.examples.com -> https://examples.com
Что не хватает в моей конфигурации? спасибо за отзыв
Default.conf
server {
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name example.com;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
1 ответ
Ничто в вашей конфигурации не обрабатывает перенаправление https://www.example.com
на https://example.com
(но вы это знали).
Предполагая, что ваш сертификат действителен для www.example.com
, вы можете создать отдельный блок server
для порта 443 и пометить его как default_server
(например, у вас уже есть для порта 80).
Фактически, вы можете объединить все, что не https://www.example.com
, в один блок server
:
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
...
}
Дополнительные сведения см. В этом документе.
Похожие вопросы
Новые вопросы
nginx
Nginx («engine x») - это веб-сервер, обратный прокси-сервер, TCP-прокси-поток и почтовый прокси-сервер, выпущенный по лицензии BSD.