我最近将我的 Wordpress 博客中包含下划线的所有 URL 替换为破折号。
旧网址示例: /this_is_a_test
新网址示例:
/这是一个测试
但是,Google 仍然使用下划线为我的错误 URL 编制索引。不幸的是,这会导致 404 错误。
如何使用 Wordpress 中的重定向插件通过正则表达式设置 301 重定向来解决此问题?
该插件为我提供了以下设置:
我需要使用哪个正则表达式才能将所有带下划线的 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,因此它是绝对必需的,否则它将是无限重定向。
我使用了这些指南:
关于regex - 使用正则表达式将 Wordpress 博客 URL 中的下划线替换为破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25434178/