301重定向短代码

您听说过301重定向吗?如果您正在运营WordPress网站,可以通过短代码来实现这一点,我将整理出使用301重定向短代码实现的方法。

301重定向短代码是什么?

在我们运营网站时,有时用户可能会打开某个特定页面,但该页面可能不再存在。从搜索引擎的角度来看,如果这种情况频繁发生,网站的信任度可能会降低。

在这种情况下,使用301重定向可以自动将访客引导到其他页面。301重定向是指告知访客(搜索引擎)当前访问的URL内容已移至其他URL,并将其连接到更改后的URL页面。这样可以改善用户体验,并有助于搜索引擎优化(SEO)。

为什么需要301重定向短代码?

让我们更深入地探讨一下301重定向短代码的必要性。网站管理员设置重定向的原因如下:

  • 页面删除:当删除不再使用的页面时,可以将用户引导到主页或其他有用的页面。
  • URL更改:当更改网站结构或URL时,即使访问旧URL,也可以自动跳转到新URL。
  • SEO优化:防止用户在寻找不存在的页面时出现404错误,从而提高网站的信任度并提升SEO分数。

如何编写301重定向短代码

现在让我们编写可以实现301重定向的短代码。以下代码是一个示例:


add_action( 'template_redirect', function () {
    $request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
    $request_uri = trim( $request_uri, '/' );

    $blocked_paths = [
        'login',
        'sample-page',
    ];

    if ( in_array( $request_uri, $blocked_paths, true ) ) {
        wp_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

代码说明

这段代码非常简单。它检查用户请求的URI,如果该URI是被阻止的路径(记录在$blocked_path中的路径)之一,则将用户301重定向到主页。在这里,将路径添加到’blocked_paths’变量中,最好加上注释以便于后续管理。

template_redirect

add_action( ‘template_redirect‘, function () {..} 是函数的开始。

  • template_redirect是WordPress在加载模板文件之前执行的动作钩子(action hook)。’动作钩子’隐藏在WordPress源代码的各个地方,以便于开发者为网站添加所需的功能。
  • 也就是说,当用户访问某个URL时,WordPress决定适当的模板(single.php, page.php, archive.php, 404.php等),并在加载该文件之前发生的时刻。
  • 在这个时刻,function() { … }中编写的函数会被执行。
  • template_redirect动作钩子在WordPress页面打开时内部执行的函数列表中执行的时机如下所示。
index.php
  -> wp-blog-header.php
    -> wp-load.php
      -> wp-config.php
        ...
          -> wp()
            -> $wp->main()
              -> parse_request()
              -> query_posts()
              -> handle_404()
              -> template_redirect() //← 就在这里!
              -> load_template()

您也可以将add_action()内使用的回调函数分离,并按如下方式编写代码。

function my_custom_redirect_logic() {
    // 重定向逻辑
}
add_action( 'template_redirect', 'my_custom_redirect_logic' );

功能详情

  • $_SERVER['REQUEST_URI']获取请求的路径,去掉斜杠(/)后进行检查。
  • 当尝试访问名为’login’或’sample-page’的页面时,此短代码会自动将用户重定向到主页。通过这种方式,可以为用户提供更好的体验,提升网站的使用率。
  • template_redirect钩子在主题模板加载之前运行,因此适合拦截页面处理。

使用方法

  • 将上述代码直接添加到当前使用的主题文件夹中的functions.php中。
  • 将’login’,’sample-page’部分更改为实际需要的URL,或进行添加。

注意事项

  • 如果希望不区分URL的大小写,可以使用strtolower()
  • 即使包含查询字符串,也会忽略,只识别路径(例如:/login?redirect=true/)。
  • wp_safe_redirect()也可以使用,但由于只能重定向到相同域名,因此在这里使用wp_redirect()更合适。
  • wp_redirect()是执行重定向的WordPress提供的基本函数。

实际使用案例

使用这些301重定向短代码的情况是多种多样的。例如,有时网站会进行更新,或在停止某项服务时,之前使用的页面将不再可用。这时,如果设置了301重定向,即使用户点击错误的页面,也不会迷失方向,而是能获取到其他有用的信息。

总结

301重定向短代码在提升用户体验和对SEO产生积极影响方面发挥着重要作用。网站管理员通过这些短代码可以更系统地管理页面,并避免不必要的404错误,因此强烈建议您加以利用。

如果您使用像Rank Math这样的SEO插件,也可以利用它们。(相关内容将另行整理)

 


[SEO] : 搜索引擎优化,提高网站在搜索引擎中的可见性过程。
[wp_redirect] : WordPress的函数,用于将用户引导至特定URL,处理重定向。

Updated : April 8, 2025
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.