[建站教程]解决网站改版老域名301重定向新域名提示不是私密链接的方法

网站更换新域名,之前的老域名收录了老大一堆的内容,需要将权重转移到新站,除了需要去百度提交网站改版还需要将自己的老域名重定向至新域名,这是站长基本上都知道的问题。不过其中涉及到的一些关键内容,确实令人头疼。

前段时间搭建了自己的新站,主要是DIY电脑主机这一块儿的内容,几乎每一篇内容都是自己纯手工写的,虽然内容不多,但是截至到现在也已经有了一百多篇的内容,并且百度收录良好。由于老域名不知道是dns的缘故还是由于未备案的缘故,所以在腾讯QQ上面都会提示不安全的内容,这不,打算给网站换一个域名。(虽然换了域名依旧没能摆脱不安全的网站)

文章插图
downsize_200k_v1.jpg

一般网站改版除了上百度站长中心提交自己网站改版的需求以后,还需要将网站的旧域名使用301重定向到新站的域名。就在这一步墨轩遇到了令人头疼的问题。

文章插图
2019110904471666.png

提示您的链接不是私密链接,由于墨轩之前的老域名做了https ssl证书,所以直接在宝塔面板后台直接添加域名是没有https数字证书,所以浏览器才会有这样的报错。

解决办法,简单一想就知道,给老域名加上一个数字证书。

可是问题来了,宝塔面板一个网站只能添加一张证书,想要增加证书也没有地方填写。当然对于我这样的小白来说是这样的,运维高手可以轻松在NGINX当中添加多个证书。

所以昨天在网上找了一下午的内容,终于找到一个可行并且比较适合新手的办法。就是在网站的配置文件当中修改。(不难,后面我会将全部内容都贴出来)

NGINX配置文件在这里

NGINX配置文件代码

server
{
    listen 80;
    listen 443 ssl http2;
    server_name zmxcn.cn www.zmxcn.cn;#1、填写新站的域名
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/pcdiyweb.com;#2、网站路径
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #301-START#3、301重定向网站和被重定向域名按照原格式修改
        if ($host ~ '^imi.li'){
            return 301 https://zmxcn.cn$request_uri;
        }
    #301-END
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END#4、新站的域名数字证书
    ssl_certificate    /www/server/panel/vhost/cert/pcdiyweb.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/pcdiyweb.com/privkey.pem; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    #SECURITY-START 防盗链配置#5、这里填写新域名和旧域名,不然新站如果没有将防盗链列为白名单会不显示css图片
    location ~ .*\.(jpg|jpeg|gif|png|js|css|webp)$
    {
        expires      30d;
        access_log /dev/null;
        valid_referers none blocked www.zmxcn.cn zmxcn.cn imi.li www.imi.li;
        if ($invalid_referer){
           return 404;
        }
    }
    #SECURITY-END
    include enable-php-72.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/pcdiyweb.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }#6、将网站路径改成你新站的路径
    access_log  /www/wwwlogs/zmxcn.cn.log;
    error_log  /www/wwwlogs/zmxcn.cn.error.log;
}
 
server
{
    listen 80;
    listen 443 ssl http2;
    server_name imi.li;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/pcdiyweb.com;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #7、将域名改成你自己的老域名和新域名
    #error_page 404/404.html;
    #301-START
        if ($host ~ '^imi.li'){
            return 301 https://zmxcn.cn$request_uri;
        }
    #301-END
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END#9、网站路径改为您自己的
    ssl_certificate    /www/server/panel/vhost/cert/imi.li/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/imi.li/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    access_log  /www/wwwlogs/zmxcn.cn.log;
    error_log  /www/wwwlogs/zmxcn.cn.error.log;
}

以上代码就是我的NGINX的配置文件,没有做任何掩饰,您在使用的时候,记得将自己的域名和网站地址都修改成您自己的。

文章插图
2019110904570984.jpg

上图的最后的框选,是数字证书的路径,在宝塔当中的文件管理中,找到您自己的网站数字证书,将途经改成您自己的。

上面的域名和网站存放路径改成您自己的。

说说我折腾的思路,没有搭建ssl的域名301重定向有ssl的域名,浏览器默认会报错没有加密的内容,解决办法就是两个域名都配置https数字证书。

老域名搭建数字证书的思路,可以在下方的这个数字证书的路径中获得灵感,就是新站的数字证书路径文件夹,新建一个文件夹,然后将地址改成旧域名的数字证书存放路径即可。

ssl_certificate /www/server/panel/vhost/cert/imi.li/fullchain.pem; ssl_certificate_key /www/server/panel/vhost/cert/imi.li/privkey.pem;

这里记得时刻关注浏览器的变化,搭建好了数字证书,浏览器的报错是不一样的,所以具体还是需要仔细观察。

搭建好了数字证书以后,遇到一个新的问题,就是网站虽然做了301重定向,并且重定向已经成功到新域名,不过在防盗链当中,新域名并未加进来,所以还需要将新域名加到防盗链的白名单当中。
301重定向虽然在宝塔当中很好设置,(记得使用旧版的重定向,新版测试版的不能用。)301的重定向代码;就是老域名重定向新域名写法我是复制我的。这种重定向方式,可以保存URL参数,就是说您以前的网页是什么样重定向之后还是什么样,只是换了前面的根域名。

#301-START#3、301重定向网站和被重定向域名按照原格式修改 if ($host ~ '^imi.li'){ return 301 https://pcdiyweb.com$request_uri; }

大致上遇到的所有问题都在这里了,希望对新手有用,毕竟我就是一个菜鸟,将自己遇到的问题,通过文字的方式留存于世。希望能够帮到一些。

最后说一句,记得将我的注释删除,随便写的,可能不符合NGINX的应用规则,我的每一个注释都有一个数字标记如“#1、XXXXX”

Last modification:November 10th, 2019 at 04:10 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment