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

我在某度上搜索了很久,只找到了一篇文章是关于固定链接修改并且不影响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

今天就大年二十九了,明天除夕就算是开始过年了。说起来也奇怪,随着慢慢长大,年味就越来越淡了。回想起小的时候,和一群小屁孩一起满村子乱跑,想想还是哪个时候开心呐,那个时候唯一不爽的就是还要写作业。

关于新冠肺炎

回家的感觉就是舒服啊,今天看到很多消息,武汉已经开始封城了,感觉有点害怕,毕竟我刚从武汉回来没几天,于是我就量了一下体温,还好,没有发热的症状。希望这次风波快点过去,祝愿大家都平平安安的。

吐槽

不知道你有没有发现,最近我的更新没那么频繁了。因为百度的原因,我对搜索引擎的收录之类的彻底放弃了,好不容易收录的几条,现在又没了,算了,就随他吧,反正我也不指望这个网站能给我带来收益,加上广告存粹是抱着侥幸心理,为我巨大的开销回点血吧!

展望明天

最近想给网站换成中文名称了,也想换个网名,还没想好换什么,管他蛇么收录、SEO,劳资无所谓了。。

关于SEO这点,网站内部有大量的外链会影响网站的权重,不利于SEO。

什么是“nofollow”?

​ “nofollow” 标签是Google、Yahoo和微软公司前几年一起提出的一个标签,链接加上这个标签后就不会被计算权值,搜索引擎支持nofollow属性,在很大程度上抑制博客或论坛的垃圾留言。对站长来说是一件大好事。

​ nofollow是HTML元标签(meta)的content属性和链接标签(a)的rel属性的一个值,告诉机器(爬虫)无需追踪目标页,为了对抗blogspam(博客垃圾留言信息),Google推荐使用nofollow,告诉搜索引擎爬虫无需抓取目标页,同时告诉搜索引擎无需将的当前页的Pagerank传递到目标页。但是如果你是通过sitemap直接提交该页面,爬虫还是会爬取,这里的nofollow只是当前页对目标页的一种态度,并不代表其他页对目标页的态度。

什么是“_blank”?

​ 为文章内的a标签添加target=“_blank”属性时,用户点击链接就会在浏览器的新一个窗口打开,这样可以防止浏览的流失,延长用户访问时间。

步骤

打开typecho根目录下 var/HyperDown.php 文件,找到大概第386行,如以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
// link
$text = preg_replace_callback(
"/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
function ($matches) use ($self) {
$escaped = $self->parseInline(
$self->escapeBracket($matches[1]), '', false, false
);
$url = $self->escapeBracket($matches[2]);
$url = $self->cleanUrl($url);
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
},
$text
);

将代码中的:

1
return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");

注释掉,然后在下方添加以下代码:

1
2
3
4
5
if (strstr($url,'//siteurl.com') == false ) {    //url后的内容替换为自己的域名
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\" rel=\"nofollow\">{$escaped}</a>");
} else {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
}

修改之后的成品:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// link
$text = preg_replace_callback(
"/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
function ($matches) use ($self) {
$escaped = $self->parseInline(
$self->escapeBracket($matches[1]), '', false, false
);
$url = $self->escapeBracket($matches[2]);
$url = $self->cleanUrl($url);
// return $self->makeHolder("<a href=\"{$url}\">{$escaped}</a>");
if (strstr($url,'//kaygb.top') == false ) {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\" rel=\"nofollow\">{$escaped}</a>");
} else {
return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
}
},
$text
);

然后可以新建文章测试一下。