【问题标题】:Use regex to replace underscore with dash in URLs of Wordpress blog在 Wordpress 博客的 URL 中使用正则表达式将下划线替换为破折号
【发布时间】:2014-10-15 13:11:56
【问题描述】:

我最近用破折号替换了我的 Wordpress 博客中包含下划线的所有 URL。

旧网址示例: /this_is_a_test

新网址示例:
/这是一个测试

但是,Google 仍然使用下划线将我的错误网址编入索引。不幸的是,这会导致 404 错误。

如何使用 Wordpress 中的重定向插件通过正则表达式设置 301 重定向来解决此问题?

插件为我提供以下设置:

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

谢谢。

【问题讨论】:

  • 如果您没有更改 Wordpress 发布 slug 制作的默认行为,那么 [\w_]+ 将完成这项工作。如果源 URL 字段是您编写表达式的字段,您应该尝试基于永久链接设置中定义的帖子 URL 结构。您应该先查看插件文档。

标签: regex .htaccess wordpress


【解决方案1】:

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

添加新的重定向:

  • 来源网址:^(.*)
  • 匹配:URL and custom filter
  • 过滤器名称:redirect_has_underscores
  • 匹配目标:[dashes]$1[/dashes]

并添加过滤器:

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

过滤器只匹配那些包含下划线的 URL,所以它是绝对需要的,否则它将是一个无限重定向。

我使用了这些指南:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2010-11-19
    • 2011-12-24
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多