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

标签 regex .htaccess wordpress

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

旧网址示例: /this_is_a_test

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

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

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

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

我需要使用哪个正则表达式才能将所有带下划线的 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/

相关文章:

php - 在 PHP 中,将字符串与关键字列表进行匹配的最有效方法是什么?

regex - 新手正则表达式问题 - 检测垃圾邮件

java - 删除ArrayList中每个索引的前导空格

wordpress - 为什么 WordPress 允许在不触发 404 的情况下在 url 中使用多个 page-slug?

php - 隐藏服务器的内部文件结构不在源中列出

php - Woocommerce - 添加优惠券未扣除总计

java - 如何为 java replaceall 函数编写正则表达式?

php - HTTPS 子域不断重定向到 HTTPS 主域

java - 可以在 Google App Engine 下运行的 WordPress 类似\克隆有哪些?

php - 由于 PHP-FPM 监听队列,站点无法访问,CPU 达到 100%