今天在群里聊到了永久链接的问题,正好我准备把我的网站链接结构修改一下,变的更加简洁一点。

我在某度上搜索了很久,只找到了一篇文章是关于固定链接修改并且不影响SEO的,只是这篇文章的是2011年发布的,对现在的typecho貌似不起作用。

https://www.ikk.me/archives/default/seo_before_typecho_change_permalink.html

本来我是打算将链接修改成https://url.com/{category}/{cid}.html的,参考上面的这篇文章从数据库提取分类的司slug然后做301跳转,但是最后并没有这样做,在萧瑟大哥的建议下改成了https://url.com/{cid}.html

这样做的好处就是修改很方便,不需要走数据库,并且使得网站更加的简洁,只需要在404页面做修改就可以了。

链接结构

之前的链接结构https://url.com/posts/{cid}.html

1
https://eas1.cn/posts/71.html

修改后的链接结构https://url.com/{cid}.html

1
https://eas1.cn/71.html

修改方式

这个方法理论上对所有的typecho主题都适用,但是还要根据自己的链接结构做适当的修改。

我是参考萧瑟大哥的文章然后根据自己链接结构做的修改:

https://qsh5.cn/304.html

打开主题的404.php文件,在合适的位置添加以下代码,然后根据自己的需求修改第3行和第5行

1
2
3
4
5
6
7
8
9
<?php
$error_url = '//'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$id = strstr($error_url, 'posts'); //截取以posts开始的字符串
if($id != "" ||$id != null){//判断是否不等于空或者null
$nameid = substr($id,5);// 截取posts之后的字符串
header('HTTP/1.1 301 Moved Permanently'); //添加301状态码
header("location://".$_SERVER['HTTP_HOST'].$nameid);//跳转页面
}
?>

如果你的链接是这个样子:

1
https://eas1.cn/index.php/posts/71.html

建议你先在后台设置伪静态,然后将第三行的posts修改为index.php/posts,然后第五行的数字5修改为15,这个其实就是index.php/posts的长度。

如果你的链接不带后面的.html,比如:

1
https://eas1.cn/index.php/archives/33/

可以参考zeruns的这篇文章:
https://blog.zeruns.tech/archives/454.html

如果你是其他的链接结构,那就要根据自己的情况修改喽!不过还是建议先在本地测试一下代码,以免出现不可挽回的损失。

百度网站改版

打开:https://ziyuan.baidu.com/rewrite/

然后添加改版规则,等待规则生效即可。

如果不知道如何填写正则规则,可以参考:

https://ziyuan.baidu.com/college/courseinfo?id=267&page=5#h2_article_title22