我最近把我的WordPress博客中所有带下划线的URL替换成了破折号。
以前的URL示例: /this_is_a_test
新的URL示例:
/this-is-a-test
然而,Google仍然使用下划线索引我的错误URL。不幸的是,这会导致404错误。
我该如何通过在WordPress中使用重定向插件设置正则表达式来解决这个问题?
该插件提供了以下设置:
我需要使用哪个正则表达式才能正确地将所有带下划线的URL转换为带破折号的URL?
谢谢。
需要使用的插件:https://wordpress.org/plugins/redirection/(至少需要版本:3.2)
新增重定向:
^(.*)
URL和自定义过滤器
redirect_has_underscores
[dashes]$1[/dashes]
然后添加过滤器:
add_filter( 'redirect_has_underscores', function ( $result, $url ) {
return ( strpos( $url, '_' ) !== false );
}, 10, 2 );
该过滤器仅匹配包含下划线的URL,因此它是绝对必需的,否则会出现无限重定向。
我使用了以下指南:
[\w_]+
就可以胜任。如果源URL字段是您编写表达式的字段,则应根据永久链接设置中定义的文章URL结构进行尝试。您应该首先查看插件文档。 - revo