redirect - Nginx 万维网。到非 www。重定向不工作

标签 redirect ssl nginx ssl-certificate

我按照 https://stackoverflow.com/a/11733363/2532070 中的说明进行操作将 www 重定向到非 www。我正在尝试重定向以下格式:

http://example.com
http://www.example.com
https://www.example.com

全部到:

https://example.com

http://example.com 正在重定向到 https。但是,另外两个带有 www. 的网站则不是。这是我的 nginx.conf:

upstream app_server {
    server 127.0.0.1:9000 fail_timeout=0;
}
#
# Redirect all www to non-www
#
server {
    server_name          www.example.com;
    ssl_certificate      /src/bin/ssl/ssl-bundle.crt;
    ssl_certificate_key  /etc/ssl/private/STAR_example_com.key;
    listen               *:80;
    listen               *:443 ssl spdy;
    listen               [::]:80 ipv6only=on;
    listen               [::]:443 ssl spdy ipv6only=on;

    return 301 https://example.com$request_uri;
}

#
# Redirect all non-encrypted to encrypted
#
server {
    server_name          example.com;
    listen               *:80;
    listen               [::]:80;

    return 301 https://example.com$request_uri;
}

#
# There we go!
#
server {
    server_name          example.com;
    ssl_certificate      /src/bin/ssl/ssl-bundle.crt;
    ssl_certificate_key  /etc/ssl/private/STAR_example_com.key;
    listen               *:443 ssl spdy;
    listen               [::]:443 ssl spdy;

    # rest goes here...

    root /usr/share/nginx/html;
    index base.html index.html index.htm;

    client_max_body_size 4G;

    keepalive_timeout 5;

    # Your Django project's media files - amend as required
    location /media  {
        alias /src/media;
    expires 1y;
    add_header Cache-Control "public";
    }

    # your Django project's static files - amend as required
    location /static {
        alias /src/static;
    expires 1y;
    add_header Cache-Control "public";
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_server;
    }
}

我在 nginx 日志文件中没有看到任何指示错误的信息。当我尝试访问 www. 版本时,有什么地方可以查找错误吗?谢谢!

最佳答案

您很可能遇到浏览器缓存问题。尝试清除缓存,例如检查 Chrome 开发工具网络选项卡或 Firefox 开发工具设置中的禁用缓存。这应该可以解决问题。

关于redirect - Nginx 万维网。到非 www。重定向不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451409/

相关文章:

docker - 看板Docker SSL

angularjs - 如何为 angularjs 网站做 301 重定向

apache - htaccess 重定向不适用于 example.com 到 https ://example. com

redirect - 向使用 "Start-Process powershell -Verb runas"打开的 powershell 发送命令

PHP cURL 登录站点

python - 安全直接连接文件传输程序

iis-7 - Nginx 反向代理 SSL/缩小

Apache 从子域重写为 www 但保留所有永久链接

asp.net-mvc - ASP.NET MVC 将非 WWW 重定向到 WWW 并重写为小写 URL

php - 连接到 api-read.facebook.com :443 时出现未知 SSL 协议(protocol)错误