【问题标题】:mod_rewrite to remove underscores from URLSmod_rewrite 从 URLS 中删除下划线
【发布时间】:2023-03-17 21:35:02
【问题描述】:

我的网站包含旧网址,例如 /news/story/MasterCard_-Accounts-Don_t-Need-To-Own-Accounts-Until-Volume-Hits-_maximum

这需要 /news/story/MasterCard-Accounts-Dont-Need-To-Own-Accounts-Until-Volume-Hits-maximum

网址来自以前的网站版本,该版本将特殊字符转换为下划线。新网站只是省略了在任何索引和内部链接上导致 404 的下划线

因此,基本上,我希望将它们重写为不带下划线。我发现的所有内容都只显示了如何将它们更改为另一个字符,例如破折号,但这不符合我的要求。它们可以简单地被擦掉吗?我可以通过 htaccess 或在重定向插件中使用正则表达式来做到这一点。任何帮助都将不胜感激,因为此时我正把头撞在桌子上。

【问题讨论】:

  • This 可以帮助您找到合适的解决方案

标签: php regex wordpress mod-rewrite


【解决方案1】:

您可以在站点根目录 .htaccess 中使用这组递归规则:

RewriteEngine On

RewriteRule ^([^_]*)_+([^_]*)$ /$1$2 [L,R=301,NE]
RewriteRule ^([^_]*)_+(.*)$ $1$2 [N,DPI]

【讨论】:

  • 在这里评论,以防您遇到任何问题。
猜你喜欢
  • 2019-11-25
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多