如何使用 nginx 和 cloudflare 将 www 重定向到非 www 并将 http 重定向到 https?
How to redirect www to non-www and http to https using nginx and cloudflare?
我正在使用以下方法将所有用户重定向到 https
和 non-www
:
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问题?如何修复?
问题是我需要添加 DNS A 记录以允许 www
指向我服务器的 IP 地址。然后,nginx 可以毫无问题地重定向。
我正在使用以下方法将所有用户重定向到 https
和 non-www
:
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问题?如何修复?
问题是我需要添加 DNS A 记录以允许 www
指向我服务器的 IP 地址。然后,nginx 可以毫无问题地重定向。