用mod_substitute解决网站搬家中的玄学问题

给一个Typecho建的站搬家,从域名A换到域名B。

起初一切顺利,搬家后在Typecho的设置里也修改了地址(Typecho使用的是绝对路径,若不修改,页面上的链接还是指向域名A)。可主题的CSS等加载的地址却还是域名A,没有变成域名B。

由于不能加载CSS、JS等,导致网页排版错乱。折腾了许久也未能解决。

而后却发现可以直接用HTTP服务器的配置来解决——Apache的一个模块,mod_substitute,就是用于替换HTTP报文中的指定内容。

阅读官方文档后,经实践,在...块之间添加如下内容,即可解决。

SetOutputFilter SUBSTITUTE
Substitute "s|{域名A}|{域名B}|ni"

当然,要先在配置文件中,用LoadModule加载mod_filtermod_substitute

这样一来,Apache就修改了页面上所有未修改的链接,使之指向新地址