typecho多域名301重定向跳转单域名https的解决思路

有多个域名绑定了一个网站,同时启用了https,例如:www.iyuu.cn和iyuu.cn都绑定了typecho博客。
如何实现统一跳转至https://www.iyuu.cn ,实现单域名访问呢?

解决方案

1、进入 typecho后台 - 设置 -站点地址 为:https://www.iyuu.cn
2、复制以下代码,另存为301.php,并放入网站根目录

<?php
$Main_domain = 'www.iyuu.cn';            //主域名
$On_https = false;    //强制跳转https 可选true false
if(($_SERVER['HTTP_HOST'] != $Main_domain) || (!is_HTTPS() && $On_https)){
    $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';    //判断地址后面是否有参数
    header('HTTP/1.1 301 Moved Permanently');    //发出301头部
    header('Location: https://'.$Main_domain.$request_uri);    //跳转到你希望的地址格式
    exit;
}

function is_HTTPS()
{
    if (!isset($_SERVER['HTTPS'])) return FALSE;
    if ($_SERVER['HTTPS'] === 1) {  //Apache
        return TRUE;
    } elseif ($_SERVER['HTTPS'] === 'on') { //IIS
        return TRUE;
    } elseif ($_SERVER['SERVER_PORT'] == 443) { //其他
        return TRUE;
    }
    return FALSE;
}

3、打开config.inc.php,在首行引用:require_once '301.php';

适用环境

1.Linux + Nginx + php + mysql
2.linux + apache + php + mysql
3.linux + nginx + apache + php + mysql
4.windows + iis + php + mysql

其他情况

模板层面typecho兼容多个域名地址
关于 Typecho 静态资源路径的问题

最后修改:2019 年 09 月 01 日 02 : 18 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论