wordpress修改了固定链接后404怎么办?

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错

wordpress修改了固定链接后404怎么办?

今天修改了下固定链接做成了多域名。
原来的固定链接http://go2live.cn/archives/191637.html

现在对应的页面是http://dev.go2live.cn/python/python%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C.html。

还没有研究过wordpress的api。
查了下404的页面是在 wp-content/themes/你的主题/404.php

我的页面是

<?php get_header(); ?>

<div class="content-wrap">
        <div class="content">
                <?php hui_404() ?>
        </div>
</div>

<?php get_footer(); ?>

代码好简单。就是显示了下找不到内容,然后一个链接回首页。
观察到新的页面和id没有关系,是不可能通过apache或者nginx的rewrite直接重定向过去的。
只有写代码实现了。

今天编辑文章的时候注意到一个短链接形式 http://www.go2live.cn/?p=191637
然后这个链接会跳转到http://dev.go2live.cn/python/python%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C.html。

好事,这样省略了我根据id去生成链接的过程,毕竟我还没有研究过wordpress api。
办法找到了。

1. http://go2live.cn/archives/191637.html
2. http://www.go2live.cn/?p=191637
3. http://dev.go2live.cn/python/python%E5%AD%A6%E4%B9%A0%E6%89%8B%E5%86%8C.html

很简单的解决方案,直接从链接1中正则解析出id,然后拼成链接2,跳转到链接2,就会重定向到链接3.
达到目的。

从Dash上搜了下redirect,发现真有一个函数wp_redirect做url跳转的事。
最后的代码:

<?php get_header(); ?>

<div class="content-wrap">
        <div class="content">
                <?php 
                if (preg_match('~/archives/(\d*)\.html.*~',$_SERVER['REQUEST_URI'],$matches))
                {   
                $postid = $matches[1];  
                wp_redirect( get_bloginfo('url').'?p='.$postid );
                exit;
                }   
                ?>  
                <?php hui_404() ?>
        </div>
</div>

<?php get_footer(); ?>

改固定链接容易,但是之前的链接可就全404了,这对seo来说可不是好事。。找办法重定向回正确的地址吧。
我干了两次这种事。
第一次通过rewrite规则解决。
第二次改写404.php解决。

文章简单,希望能帮助到你。

未经允许不得转载:演道网 » wordpress修改了固定链接后404怎么办?

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册