Typecho 修改固定链接后的SEO技巧
前两天将博客固定链接中最后的那个 id 换成了文章的缩略名,这下可惨了,搜索引擎们都得重新抓取一遍,我可懒得等他,当然,也怕给谷歌百度神马的降权了,于是有了这篇文章:
首先我的思路是通过 PHP 插入一段代码,识别到链接中最后一个参数为数字 id 则自动到数据库中查询并 301 到新地址。
于是问了问 Google 大哥,PHP 怎么获得伪静态的地址,这点问题对谷歌来说毫无压力——$_SERVER['ORIG_PATH_INFO']
——就是他,然后便轮到正则了,由于是数字,这部分也很简单:.+\/([0-9]+)\.html
完成了,接下来的步骤便是用 PHP 将这堆东西整理起来:
1 | /* KK's 301 */ |
然后——最后一步当然是找个地方放这段代码啦,根据我对 Typecho 的一些了解,应该放在 index.php 中,这是 Typecho 的核心,所有页面都会被伪静态到这个 PHP 中。
因为我们这里用到了 Typecho 的数据库类,所以代码应该放在 include config.inc.php
的后面(这个 config 文件初始化了数据库类) 其次留意到 Typecho 注释:
1 | /** 开始路由分发 */ |
显然,我们的代码应该放在它前面,不然系统会比你先输出个 404 页面。
好了,我们再打开个以“文章id.html”结尾的页面,看看代码是否正常即可。
(PS:由于我忘了更新CDN缓存,还以为代码错了⊙﹏⊙b)
Typecho 修改固定链接后的SEO技巧