Я использую следующие для перенаправления всех пользователей https
и non-www
:Как перенаправить www на не-www и http на https с помощью nginx и cloudflare?
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
access_log /var/log/nginx/example.com.access.log rt_cache;
error_log /var/log/nginx/example.com.error.log;
root "/usr/share/nginx/app/public";
index index.php index.htm index.html;
charset utf-8;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 100m;
include hhvm.conf;
location ~ /\.ht {
deny all;
}
}
Примечание: Я также использую CloudFlare.
Когда я нахожусь example.com
, я перенаправлен на https://example.com
. Отлично.
Но www.example.com
перенаправляет на https://www.example.com
и сайт не загружается.
Посещение https://example.com
работает нормально.
Проблема с конфигурацией сервера или проблемой CloudFlare? Как это можно исправить?
Ваша конфигурация выглядит хорошо, без проблем с nginx. Возможно, вы допустили ошибку в CloudFlare. – skbly7
Кроме того, лучше добавить условие переадресации на CloudFlare для перенаправления https://www.example.com на https://example.com. Вот как это делается: https://support.cloudflare.com/hc/en-us/articles/200172286-How-do-Iperform-URL-forwarding-or-redirects-with-CloudFlare- – skbly7