Typecho修改旧链接301跳转新链接
前言
本文章讲解将链接结构从
https://www.yamdr.cn/index.php/archives/{cid}/修改为https://www.yamdr.cn/archives/{cid}.html
其他链接结构修改方法可参考上面的链接
开启永久链接
开启伪静态并添加下面的伪静态配置,这是Apache的配置
<IfModule rewrite_module>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
typecho后台开启永久链接
启用地址重写功能
修改旧链接跳转
打开主题的404.php文件,在合适的位置添加以下代码
<?php
$error_url = '//'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$id = strstr($error_url, 'index.php/archives'); //截取以posts开始的字符串
if($id != "" ||$id != null){//判断是否不等于空或者null
$str = substr($id,18);
$id2 = substr($str,-1);
if($id2 != '/'){
header('HTTP/1.1 301 Moved Permanently'); //添加301状态码
header("location://".$_SERVER['HTTP_HOST']."/archives".$str.".html");//跳转页面
} //https://www.yamdr.cn
elseif($id2 == '/'){
$nameid = substr($str,0,-1);
header('HTTP/1.1 301 Moved Permanently'); //添加301状态码
header("location://".$_SERVER['HTTP_HOST']."/archives".$nameid.".html");//跳转页面
}
}
?>
也可以在config.inc.php文件中
/** 载入路由器支持 */
require_once 'Typecho/Router.php';
的上面放上面的代码,不过在这放要去掉<?php和?>最后去百度进行网站改版