重写 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]
我需要重写一些博客 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]