Nginx环境下301重定向http至https并全部指向www

SSL证书安装好了,但是想让http(s)访问无论是一级域名还是带www的二级域名,均跳转到https下的www站点,确保站内链接唯一性,还需要优化修改一下。


前期工作

  • 域名解析A记录,@和www均已解析到服务器IP。

操作方法

  • 宝塔面板左侧“网站”-“设置”-“配置文件”,在server_name的二级域名后增加一级域名。
  • 删除“HTTP TO HTTPS”从START到END那一段,并添加如下代码。注意将example.com替换为自己的域名。
    #将HTTP重定向到带www的HTTPS站点
    if ($server_port !~ 443){
        return 301 https://www.example.com$request_uri;
    }
    #将一级域名重定向到带www的HTTPS站点
    if ($host = 'example.com') {
        return 301 https://www.example.com$request_uri;
    }
  • 添加完毕如图所示。重启Nginx和PHP即可。
    配置文件详情

结果测试

我来叭叭一下