如何使用nginx和cloudflare将www重定向到非www和http到https?

时间:2015-08-04 20:55:57

标签: ssl nginx seo server cloudflare

我使用以下内容将所有用户重定向到httpsnon-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问题?如何解决?

1 个答案:

答案 0 :(得分:2)

问题是我需要添加DNS A记录以允许www指向我服务器的IP地址。然后,nginx可以没有问题地重定向。