Loading...

前言

本文仅用于开启typecho地址重写且适合本站跳转路径的情况下。

在建站时,因认为 /{文章分类}/{文章ID}.html 的文章路径好看。所以一直都没有去修改过,导致被百度收录久了之后又想改文章路径怕百度的收录全掉了,现在带来 301跳转 的教程,让百度认为文章只是迁移到了新的地方而不是删除了文章。(记得去提交 百度改版哦)

代码

适用路径:website.com/{文章分类}/{文章ID}.html

适用路径:website.com/{文章分类}/{文章ID}.html/

适用路径:website.com/{文章分类}/{文章ID}.html/comment-page-{评论页}

跳转路径:website.com/{文章ID}.html

跳转路径:website.com/{文章ID}.html/comment-page-{评论页}#comments

  1. 打开所使用的主题下的 404.php 文件(一般页面不存在会使用主题的404错误页面),在 适合的位置插入以下代码
<?php // 旧链接 301跳转 新链接 // 适用于 {文章分类}/{文章ID}.html 跳转到 {文章ID}.html $Host = $_SERVER['HTTP_HOST']; // 获取当前主机域 $Url = $_SERVER['REQUEST_URI']; // 获取当前访问网页的相对路径 $pattern = '/^\/([a-z]+)\/([0-9]+).html\/?(comment-page-[0-9]+)?$/'; // 正则匹配规则(包含各种情况,如 1.html/、1.html/comment-page1) if (strpos($Url, 'comment-page') !== false) { // 检查访问路径是否包含 comment-page 字符串 $replacement = '/$2.html/$3#comments'; // 正则替换规则(包含评论路径) } else { $replacement = '/$2.html'; // 正则替换规则(默认) } if (preg_match($pattern, $Url)) { // 访问路径与正则匹配成功匹配时 $newUrl = preg_replace($pattern, $replacement, $Url); // 进行字符串替换 header('HTTP/1.1 301 Moved Permanently'); // 请求HTTP头301 header("location://".$Host.$newUrl); // 跳转至新页面 } ?>
  1. 保存此次修改后,访问之前的链接即可跳转到新的地址啦!~如果有什么不明白的欢迎评论。

百度改版

打开 https://ziyuan.baidu.com/rewrite/,点击添加 改版规则>规则改版 填入以下内容(推荐尽量填写百度有收录的链接哦)

参考文章

typecho更改文章路径后做301跳转以匹配百度收录的改版规则 - YLEEN的魔导书

最后修改:2025 年 03 月 12 日
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。