重定向并更改单个 URL 段

redirect and change a single URL segment

我们有多个 URL,并希望根据其中一个分段进行重定向。

通常我们有重写规则,然后是这样的:

redirect permanent /home/category/feline /home/category/cat

挑战是有 50 多个 url 和分段变化,所以我想知道是否有更简单的匹配和重定向方法?

这里有几个例子:

redirect permanent /home/category/feline /home/category/cat
redirect permanent /content/category/feline /home/category/cat
redirect permanent /channel/segment/category/feline /channel/segment/category/cat
redirect permanent /segment/category/feline/entry /segment/category/cat/entry

是否可以将任何带有 feline 的 URL 重定向到 cat?

我目前正在测试以下有效的方法,但我想澄清一下:

RewriteRule (.*)feline(.*)$ cat [R=301,NE,L]

您可以使用 RedirectMatch 支持正则表达式:

RedirectMatch 301 ^(.*/)?feline(/.*)?$ cat

测试此规则前清除浏览器缓存。

使用mod_rewrite

RewriteEngine On
RewriteRule ^(.*/)?feline(/.*)?$ /cat [R=301,NE,NC,L]