当前位置: 首页 > 网站建设 > HTTPS相关 > Nginx强制https,HTTP 301重定向到HTTPS

Nginx强制https,HTTP 301重定向到HTTPS

发布于:2016-5-24 最后更新:2018-11-4 HTTPS相关 19条评论 31,677 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

全站启用https让您的网站更安全,但是在过程中总会遇到一些麻烦,分享这篇文章希望对需要的童鞋有帮助,我们不需要去过多的修改程序设置,直接在WEB服务器(Nginx)中配置一下,将80端口(HTTP)全部301重定向到HTTPS,目前小z博客就是使用的这个方法。

nginx_580

一、前提条件

此方法仅适用于Nginx WEB服务,推荐安装军哥LNMPOneinStack,自己编译安装的Nginx也是可以的。

二、修改主机配置文件

军哥LNMP或OneinStack的配置文件在/usr/local/nginx/conf/vhost/youdomain.com.conf,将下面的配置添加到文件中。

server
{
        listen 80;
        server_name xiaoz.me www.xiaoz.me;
        rewrite ^(.*) https://blog.xiaoz.org$1 permanent;
}

上面的配置含义是当我们去使用HTTP请求xiaoz.me或www.xiaoz.me的时候全部301重定向到https://blog.xiaoz.org,下面是完整的配置文件供参考:

server {
listen 443;
ssl on;
ssl_certificate /data/ssl/xiaoz.me.crt;
ssl_certificate_key /data/ssl/xiaoz.me.key;
server_name xiaoz.me www.xiaoz.me;
index index.html index.htm index.php;
...
...
}

server
{
        listen 80;
        server_name xiaoz.me www.xiaoz.me;
        rewrite ^(.*) https://blog.xiaoz.org$1 permanent;
}

配置修改后别忘记重载一下Nginx:service nginx reload

三、CURL测试

最后我们可以测试下访问HTTP是否会301重定向到HTTPS,可以使用CURL测试一下:curl -I www.xiaoz.me,Nginx配置SSL的教程可以参考:Nginx怎样部署SSL证书

curl_test

推荐阅读:CentOS申请Let’s Encrypt免费SSL证书
沃通免费SSL证书申请

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


已有19条评论


  1. 请问作者:
    如果想过滤某一目录怎么写,比如过滤目录名为“KKK”,怎么写规则呢?

  2. 请问怎样将https://xiaoz.me/ 的全部网址重定向到 https://www.xiaoz.me/ ?我也是按你教程那样设置,最多只能把http的域名都重定向到https://www.xiaoz.me/ ,但访问https://xiaoz.me/时,没有任何跳转

    1. 我只做了下面的就可以了,注意看server_name需要把www和不带www都填写上。

      
      server
      {
              listen 80;
              server_name xiaoz.me www.xiaoz.me;
              rewrite ^(.*) https://www.xiaoz.me$1 permanent;
      }
      
        1. 您好,如果是.htaccess文件可以加入下面的规则:

          
          RewriteCond %{SERVER_PORT} !^443$
          RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
          
          1. 那您再加入一条这样的试试呢:

            
            RewriteCond %{HTTP_HOST} ^a.com [NC]
            RewriteRule ^(.*)$ https://www.a.com/$1 [L,R=301]