如何为typecho站点设置多个域名

Typecho杂文 typecho 域名 2016-10-25

前言

typecho后台只能设置一个域名,比如我设置了个http://qqdie.com,嗯这个域名就是被程序认知的域名,但是呢,这个http://www.qqdie.com带www的域名访问我的博客会出现问题,因为程序只认http://qqdie.com,所以会导致代带www的域名访问无法加载字体文件,那么如何解决这个问题呢?

解决方法

最初我告诉模板用户的解决方法是让http://www.qqdie.com重定向到http://qqdie.com,这样确实解决了问题。但是呢,如何让两个域名同时存在呢?

方法一:

config.inc.php中定义Helper::options()->siteUrl='http://www.qqdie.com';(要放在数据库初始化之后,也就是最后)
感谢空樱酱评论中告知

麻烦的方法二:

需要修改typecho的源代码
参考地址http://note.yurenchen.com/archives/typecho_siteUrl.html
步骤一
打开程序目录的这个文件/var/Widget/Options.php
步骤二
使用搜索找到这个位置

 /** 初始化站点信息 */
        if (defined('__TYPECHO_SITE_URL__')) {
            $this->siteUrl = __TYPECHO_SITE_URL__;
        }

步骤三
在步骤二中的代码最前面加入下面的代码(域名改成你自己的)

if($_SERVER['SERVER_NAME']=='www.qqdie.com'){//chen added
    $this->siteUrl = 'http://www.qqdie.com';    
}

步骤四
保存修改,体验成功的喜悦吧,还有就是希望对插件很懂的大牛做成插件,毕竟修改源码这种事情不太友好。

25条评论

    Ai

    很棒!想问问有插件了嘛~

    游客 Windows10 55天前回复

      泽泽社长
      @Ai

      没有插件,看隔壁这个文章吧 https://qqdie.com/archives/as-typecho-moreyumi.html

      作者 MacOS 55天前回复

        Ai
        @泽泽社长

        改代码好复杂昂,我这种伸手党还是等等插件吧,先301用着

        游客 Windows10 55天前回复

    boer

    既然借鉴了方法一,这个配置文件是在初始化之后修改吗?能说一下具体步骤吗?

    游客 安卓奥利奥 293天前回复

    qiqi

    这个版本试了第一个方法没有用,第二个方法阔以~感谢帮助(づ ̄ ³ ̄)づ抱

    游客 Windows10 346天前回复

    ShoSe

    不知道现在的版本有没有变
    不过看上面的代码
    个人觉得可以在config.inc.php里面 定义常量

    TYPECHO_SITE_URL

    游客 Windows10 400天前回复

    鼎鑫金融

    方法一不行;我默认带www是可以加载;按方法一在config.inc.php最后添加一个不带www的;然后变成不带www能加载;带www就不加载了;方法二添加一个不带www;带不带www都会加载!

    游客 Windows7 726天前回复

      Jrotty
      @鼎鑫金融

      方法都是我测试过的应该都可行,或者用个支持多域名的模板,比如说我的 @(滑稽)

      作者 安卓奥利奥 725天前回复

    吾名彼萌

    不错不错。。

    游客 Windows10 1083天前回复

      Jrotty
      @吾名彼萌

      (づ ̄ ³ ̄)づ抱

      游客 Windows10 1083天前回复

    工控资料窝

    看完评论感觉收获更多了。。。

    游客 Windows10 1084天前回复

    kkou

    我好像也遇到这样的问题.自定义的404页面无法加载外部字体,于是干脆不用404页面了……(也不清楚是不是强制https的锅).Access to Font at 'https://softfly.site/font/kwwt-404/kwwt-404.woff'
    from origin 'https://softfly.site' has been blocked by CORS policy:
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    Origin 'http://softfly.site' is therefore not allowed access

    游客 Windows10 1084天前回复

      Jrotty
      @kkou

      这我就不太清楚啦

      游客 Windows10 1084天前回复

    空樱酱

    不用改源码,也不用插件,直接在config.inc.php中定义Helper::options()->siteUrl='http://www.qqdie.com'(要放在数据库初始化之后,也就是最后)

    游客 Windows10 1085天前回复

      Jrotty
      @空樱酱

      谢谢,明天试试龴ↀ◡ↀ龴

      游客 Windows10 1085天前回复

    王忘杰

    游客 Windows10 1088天前回复

      王忘杰
      @王忘杰

      我怎么觉得,只要把数据库里的网址删掉,就行了,用哪个打开就是哪个

      游客 Windows10 1088天前回复

      Jrotty
      @王忘杰

      这个还是蛮有用的哈,虽然最后还是用的重定向#[太开心]

      游客 Windows10 1088天前回复

智能推荐