如何从各种?page_id=重定向到主页?

时间:2019-05-31 作者:twelvell

我有一个网站,我需要301重定向从旧URL传入的所有旧页面,如/?page_id=261, /?page_id=204, /?page_id=2677 依此类推到主主页。

正确的做法是什么?这样的东西会进来吗.htaccess 工作我不想重定向所有404的-只是这些类型的旧链接。

RedirectMatch 301 ^/?page_id=4&n=$1 https://www.example.com/

2 个回复
最合适的回答,由SO网友:MrWhite 整理而成

无法使用mod\\u别名匹配查询字符串RedirectMatch 指令。此指令仅与URL路径匹配。您需要改用mod\\u rewrite,条件是检查QUERY_STRING 服务器变量。

例如,在.htaccess 文件,请尝试以下操作:

RewriteCond %{QUERY_STRING} ^page_id=\\d+$
RewriteRule ^$ / [QSD,R=302,L]
TheQSD 从目标URL中删除查询字符串需要标志(Apache 2.4)。

然而,从SEO的角度来看,像这样的大规模重定向可能会被搜索引擎视为软404。您应该尝试在每页的基础上重定向到新的URL。如果内容不再存在,则返回404。

SO网友:Johansson

如果你想用文字印刷的方式来做,动作挂钩就是这样做的方式。下面是一段不言自明的代码:

// We hook into the template_redirect action hook, which is the proper
// hook to be used for redirections
add_action(\'template_redirect\',\'wpse339255_redirect_old_urls\');

/**
 * Check whether the page_id query string has been set,
 * and if so, redirect the user to homepage
 */
function wpse339255_redirect_old_urls(){
    // Check if the page_id query string is set
    if( isset( $_GET[\'page_id\'] ) && ! empty( $_GET[\'page_id\'] ) ){
        // Do the redirect
        wp_redirect( home_url() );
        die;
    }

}

相关推荐

wp_redirect doen't work

我正在编写一个简单的插件来接受一个用户号码,显示一个包含用户信息的表单,然后发布一个付款金额。用户编号是从这个http文件include\\u once(PLCOA\\u ADMIN\\u PATH.“views/PLCOA payment start.php”)获得的;而且装载得很好。信息表单使用php文件include\\u once(PLCOA\\u ADMIN\\u路径“views/PLCOA payment add.php”)填写;它只有一个字段-表单中的付款金额。当按下提交按钮时,它将运行此功