重写 URL 以删除某些字符

Rewriting a URL to remove certain characters

我需要重写一些博客 URL 以删除某些字符。这些是 "a556" 的行(a 总是存在,数字总是 3 位数字并且是随机的)。这是由一个或两个连字符开始的,我也需要删除它。

这些需要重定向自:

[domain]/blog/[article_name]-a556

[domain]/blog/[article_name]--a556

[domain]/blog/[article_name_with_characters_removed]

认为 检测要删除的文本的正则表达式是:

([-]{1,2}a[0-9])\w+

但我不知道如何将其放入重写规则中。

有人能帮忙吗?

您是否正在寻找将旧网址处理为新网址的功能?如果您有一个 URL 数组,这样的事情应该可以解决问题:

var processedURLs = oldURLs.map(function(url) {
  return url.replace(/[-]{1,2}a[0-9]+/, '');
})

这条重写规则可以解决问题:

blog/(.+[a-zA-Z0-9])-+a[0-9]+      blog/

您可以简化 [a-zA-Z0-9],删除所有不能出现在文章名称 slug 末尾的字符范围(即 [a-z0-9] 或 [a-z])。

请试试这个:

RewriteEngine On
RewriteRule (.*)-{1,2}a\d{3}(.*)  [R]