php - WordPress 更改永久链接 404 消息 - 301 重定向

标签 php wordpress .htaccess redirect

我的问题类似于Wordpress (Postname Permalink) 404 error但这超出了问题的范围。

我的客户在默认的 WordPress 博客结构 YYYY/MM/post-name 中拥有数百个页面

他们想将其移动到永久链接结构/post-name

但是,Google 和其他搜索引擎中的现有链接必须重定向到正确的"new"页面,而不是 404 页面,也不是主页。

我的问题是,使用最新版本的 WordPress(在撰写本文时为 4.6.1) - 如果您只需进入“设置”>“固定链接”>“帖子名称”,它会正常工作吗?

或者

您是否仍需要修改 .htaccess 文件以便“旧页面”重定向到新页面?

如果是这样 - 正确的 .htaccess 文件语法是什么,以便每个新链接都是“301 重定向”,告诉搜索引擎该页面已永久移动?

谢谢!

另请参阅Wordpress Codex on Permalink Structure

最佳答案

在您的functions.php中使用此模板作为替代方案

add_action('template_redirect','check404');
function check404(){

     if (is_404() ) {

        $url = $_SERVER['REQUEST_URI'];
        $url = esc_url_raw( $url );

        //FIND IF THERE IS A POST...
        $e = explode("/", $url);

        $reversed = array_reverse($e);
        $number = $reversed[0];

        $link = get_permalink($number);
        if(!empty($link)){
            wp_redirect( $link, 301 );
            exit;
        }
        else
            return;
     }

}

这将重定向 /YYYY/MM/post-name/ ->/post-name/

关于php - WordPress 更改永久链接 404 消息 - 301 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063255/

相关文章:

C#使用UTF8编码发送unicode短信

php - Stripe s2Member Pro 插件在实时模式下返回 card_declined

php - 无法使 Laravel 4 的 Validator 类在框架外工作

php - 如何将 MongoDB 与 Solr 集成?

php - 基于用户角色的 Woocommerce 最小订单总额

javascript - 提交表单后我的焦点并未从输入中移除

php - mod_rewrite PHP $_GET 空

php - Opencart 重定向到 www.localhost.com

php - Web.config 将所有路径重定向到 index.php - 不工作

mysql - 将用户添加到多站点中的 WordPress 站点