使用正则表达式将WordPress博客中URL中的下划线替换为破折号

3

我最近把我的WordPress博客中所有带下划线的URL替换成了破折号。

以前的URL示例: /this_is_a_test

新的URL示例:
/this-is-a-test

然而,Google仍然使用下划线索引我的错误URL。不幸的是,这会导致404错误。

我该如何通过在WordPress中使用重定向插件设置正则表达式来解决这个问题?

该插件提供了以下设置:Redirection plugin settings

我需要使用哪个正则表达式才能正确地将所有带下划线的URL转换为带破折号的URL?

谢谢。


如果您没有更改WordPress文章短链接生成的默认行为,那么[\w_]+就可以胜任。如果源URL字段是您编写表达式的字段,则应根据永久链接设置中定义的文章URL结构进行尝试。您应该首先查看插件文档。 - revo
1个回答

3

需要使用的插件:https://wordpress.org/plugins/redirection/(至少需要版本:3.2)

新增重定向:

  • 源URL:^(.*)
  • 匹配类型:URL和自定义过滤器
  • 过滤器名称:redirect_has_underscores
  • 匹配目标:[dashes]$1[/dashes]

然后添加过滤器:

add_filter( 'redirect_has_underscores', function ( $result, $url ) {
    return ( strpos( $url, '_' ) !== false );
}, 10, 2 );

该过滤器仅匹配包含下划线的URL,因此它是绝对必需的,否则会出现无限重定向。

我使用了以下指南:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接