• 微信
您当前的位置:首页  > 文章 >  帝国CMS转换Wordpress或伪静态变更后301永久定向问题的解决方案-PHP方案

帝国CMS转换Wordpress或伪静态变更后301永久定向问题的解决方案-PHP方案

作者:admin 时间:2023-03-01 阅读数:112人

我当时的问题就是帝国转成wordpress后由于伪静态规则无法匹配而研究出来的这套方案

写下来也算是一个心德体会和记录,以便以后查看,不喜欢的可以不看

说实话,当时想到过很多方法,但觉的最好的也就只有这一种了

帝国由于伪静态里必须有栏目ID和文章ID,但WP里可以实现只有文章ID的方法

我帝国原来的伪静态设置的是 域名加/page栏目ID_文章ID_分页.html

新的WP伪静态设置的是 域名加/文章ID.html

我用wordpress采集工具将文章按ID采集将帝国的新闻模型原样采集到WP里,所以文章ID是匹配的

这样的样式伪静态规则就可以实现如下:

rewrite ^/page(.+?)_(.+?)_(.+?).html$ http://www.dnwfb.com/$2.html permanent;

但由于还有下载模弄,下载模型文章ID也是从1开始,意味着与新闻模型有重复,比如新闻模型第一篇文章ID是1,下载模型的第一篇文章ID也是1,在帝国里是通过栏目ID来区分的,而我采集到WP里,文章ID只能叠加,由于我下载模型文章相对较少,我就把下载的文章放到了之后采集

假如新闻模型有1800篇文章,文章ID 到1800,下载模型有200篇文章,最后就是下载文章ID采集过来后是从1801开始2000的ID,当然以前帝国下载模型的文章有删除的,所以文章ID不是连续的

顺便说一下,采集插件可以用我用的这个,感觉很不错,Wordpress采集插件传送门

先区分下载和新闻栏目再区分中间删除文章的ID

经过反复测试代码如下解决:

preg_match("#/page(.+?)_(.+?)_(.+?).html#sU", $_SERVER["REQUEST_URI"],$arr);
if($arr[1]=="3"||$arr[1]=="5"||$arr[1]=="7"||$arr[1]==="8"||$arr[1]=="10"||$arr[1]=="12"||$arr[1]=="15"||$arr[1]=="16"){
    //1-29,32-58,74-118此数字是文章ID出现不连续的地方
if($arr[2]>="1"&&$arr[2]<="29"){
    $arr301= $arr[2]+1569;
header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: https://www.dnwfb.com/$arr301.html");//跳转到我的新域名地址
exit();
}elseif($arr[2]>="32"&&$arr[2]<="58"){
    $arr301= $arr[2]+1567;
    header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: https://www.dnwfb.com/$arr301.html");//跳转到我的新域名地址
exit();
}elseif($arr[2]>="74"&&$arr[2]<="118"){
    $arr301= $arr[2]+1552;
    header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: https://www.dnwfb.com/$arr301.html");//跳转到我的新域名地址
exit();
}
}else{
$arr301= $arr[2];
if($arr301){
header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: https://www.dnwfb.com/$arr301.html");//跳转到我的新域名地址
exit();
}

}

以上代码放到当前使用的模板目录的functions.php的相应位置即可

还好以前删除的文章不多,总算是实现了301跳转

接下来是栏目列表了,帝国栏目伪静态是域名加/list栏目ID_分页.html

WP栏目伪静态设置成了/article-1.html

代码如下

(¥:0.01)查看隐藏内容

声明

源码下载不顺利,比如源码在百度网盘的有时会被无故取消等,请联系QQ:46667551
本站大部分下载资源收集于网络,但除特别说明之外,基本全部亲自测试可用!
但由于某些源码的更新迭代,比如微信小程序官方接口的变动等原因,
如时间过长,可能会造成本可以使用的代码出现问题,下载前请斟酌!
本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。

原文链接:https://www.dnwfb.com/5759.html,转载请注明出处