推荐建站项目

Typecho设置可多域名访问

本文阅读 2 分钟
首页 建站项目 正文
暂无AI摘要
摘要由智能技术生成

  想给网站开启个新域名,原以为只需在宝塔的原站点新增一个域名即可,不过该方法不行,因为一个域名的https访问是需要对应唯一的ssl证书,所以只能新建站点,单独配置ssl。新站点的根目录还是原网站。也就是只是公用服务和资源。问题在于新站点都配置完了,域名也解析了。但是访问该网站时静态资源报跨域问题使用不了。

解决方法

  查看./var/Widget/Options.php文件时有个初始化站点信息的代码。

/** 动态获取根目录 */
$this->rootUrl = defined('__TYPECHO_ROOT_URL__') ? __TYPECHO_ROOT_URL__ : $this->request->getRequestRoot();
if (defined('__TYPECHO_ADMIN__')) {
    /** 识别在admin目录中的情况 */
    $adminDir = '/' . trim(defined('__TYPECHO_ADMIN_DIR__') ? __TYPECHO_ADMIN_DIR__ : '/admin/', '/');
    $this->rootUrl = substr($this->rootUrl, 0, - strlen($adminDir));
}

/** 初始化站点信息 */
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;
}

  啥意思嘞,就是Typecho自定义了个全局参数TYPECHO_DYNAMIC_SITE_URL,默认是不启用的。如果你配置了启用,则会替换站点所有访问路径下的访问域名为你请求的域名。所以如果我配置开启这个参数,我就能在访问qq.ht时候,不会产生跨域,且所有链接前缀都是qq.ht,不受后台那个站点地址的约束。这样就能对多域名访问有很好的体验。

  了解原理后只需要在网站根目录config.inc.php文件中后台路径下换行追加两行配置代码即可:

/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

/** 开启动态域名(跨域补救) */
define('__TYPECHO_DYNAMIC_SITE_URL__', true);
本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
中国色-中国传统颜色
« 上一篇 08-30
随机波浪背景样式
下一篇 » 09-29

发表评论

V注册会员 L评论等级
R7 条回复
  1. 橘长  中国甘肃省白银市景泰县移动
    2025-11-23     Win 10 /    Chrome

    学习到了,虽然目前没这需求!

  2. Teacher Du  中国北京市联通
    2025-10-02     Win 10 /    Chrome

    这样弄,容易被克隆吧?

  3. wu先生  中国湖北省黄冈市英山县联通
    2025-09-28     Win 10 /    Chrome

    不明觉历呀。

  4. 满心  中国湖北省武汉市联通
    2025-09-26     MacOS /    Chrome

    过来学习下

    1. 喜闻乐见  中国河北省唐山市电信
      2025-09-26     Win 10 /    Chrome

      @满心

      欢迎

  5. 乙未极客  中国河北省唐山市电信
    2025-09-17     Win 10 /    Chrome

    不错

  6. 乙未极客  中国天津市电信
    2025-09-17     Win 10 /    Chrome

    亲测可用

没有更多评论了
竖屏随机


博客

图床

工具

主页

标签TAG

AI
AI在线
以确保在用户需要帮助时能够及时提供解答和技术支持
您好,这里是『乙未极客』,请问有什么能帮到您?