在运行typecho系统时,因为域名不固定,当你换域名时网站页面就会出现附件、图片打不开,解决办法要么开启相对地址,要么想办法固定域名,这里介绍开启相对地址的二个方法:
这里整理了几种方法,可以根据自己的情况选择。
1、修改数据库 (推荐)
如果不怕操作数据库,这是相对直接的一种。
使用 phpMyAdmin 等工具登录数据库。
找到 typecho_options 这个表。
在 name 列里,找到 siteUrl 那一行。
把对应 value 列里的内容,改成 / (一个斜杠) 并保存。
2、修改核心文件 (请提前做好备份)
这是一种更“硬核”的方法,通过修改文件来绕过系统校验。
打开 /var/Widget/Options/General.php 文件。
找到第 87 行左右的代码
('url', _t('请填写一个合法的URL地址'))
把代码中的 'url' 改成 'xssCheck',保存文件。
之后就可以进入后台,在“设置” -> “基本”里,把“站点地址”改成 / 了。
3、使用配置变量 (兜底方案)
这个方法不会强制改变后台显示的地址,而是让程序在运行时动态调整,适合对代码不熟悉的朋友。
打开网站根目录下的 config.inc.php 文件。
在文件末尾,?> 的前面(如果没有?>,就直接加在最后),加上下面这行代码并保存:
Helper::options()->siteUrl = "//".$_SERVER['HTTP_HOST'];
4、修改后台文件 (用于让附件地址也变相对)
前面的方法主要修改站点链接,如果想让文章里上传的图片等附件地址也变成相对的,可以接着改这个文件:
打开 /admin/js/pagedown.js 文件。
搜索代码 t = "http://" + t。
把它改成 t = "" + t 后保存即可。
⚠️ 需要注意
内部调用可能乱掉:改成相对地址后,站点内部调用的地址都变成了相对路径。如果有些主题或插件里写了硬编码的绝对路径,可能会导致图片或样式加载不出来。需要开启伪静态,永久链接也可能会受影响。
备用域名会失效:改成相对地址后,所有链接都会跟着当前访问的域名走。如果你的网站配置了备用域名(比如带 www 和不带 www 的),或者打算将来换域名,这种设置反而可能会带来一些不便。
操作失误,如何恢复?
如果修改后发现网站打不开或者后台进不去了,可以通过下面两种方法快速恢复:
通过数据库恢复:参考“方法一”,用 phpMyAdmin 进入数据库,把 typecho_options 表里 siteUrl 的值,重新改回你的完整网站地址。
通过配置文件恢复:如果方法三失效,同样进入 config.inc.php 文件,删除或注释掉之前添加的那行代码就可以了。
以上这些方法通常涉及修改核心文件,在更新Typecho版本时可能会失效,操作前请务必备份好文件和数据库。
