typecho

如何给你的typecho博客添加多站点


前言

目前typecho后台只能设置一个站点,比如我设置的是kevindurant.cn,这就会导致www.kevindurant.cn这个域名

访问网站时出现问题,比如引用的一些文件就无法加载,因为网站后台只认不带www的域名,于是我上网搜寻一些解决方法

原因

typecho 中所有 使用 siteUrl 的地方 都是通过 Widget_Options 类内一个变量 siteUrl 实现的.

在 Widget_Options->execute() 中, 它从 数据库 读出 typecho_options 表.

siteUrl 存储进了 Widget_Options->row,

Widget_Options 的 父类 Typecho_Widget 中 通过 __get() __set() 实现
$this->xxx 直接 访问 $this->row['xxx'] 的效果.

所以直接在 Widget_Options 中 print_r($this) 是看不到 siteUrl 的, 但在 $this->row 能看到他们的踪影

解决方法

打开程序目录var//Widget/Options.php这个文件

找到下面这行代码

    if (defined('__TYPECHO_SITE_URL__')) {
        $this->siteUrl = __TYPECHO_SITE_URL__;
    } else if (defined('__TYPECHO_DYNAMIC_SITE_URL__') && __TYPECHO_DYNAMIC_SITE_URL__) {
        $this->siteUrl = $this->rootUrl;
    }

在这一行的上面添加如下代码

if($_SERVER['SERVER_NAME']=='你的域名'){//chen added
$this->siteUrl = 'http://你的域名';    

}

转载自QQ爹博客~

回复

  1. 儿子 儿子
    Chrome 70 10

    大佬大佬୧(๑•̀⌄•́๑)૭

This is just a placeholder img.