Apache 正则表达式重定向/301

Apache 正则表达式重定向/301,apache,redirect,Apache,Redirect,我正在处理一个有趣的情况。下面是发生的事情: 当前URL示例1: www.domain.com/red-widgets-cid-1234.html www.domain.com/red-widgets-cid-1234-1.html www.domain.com/red-widgets-cid-1234-1-1.html 以上所有URL上的规范: www.domain.com/red-widgets-cid-1234.html New URL: www.domain.com/red-wi

我正在处理一个有趣的情况。下面是发生的事情:

当前URL示例1:

www.domain.com/red-widgets-cid-1234.html

www.domain.com/red-widgets-cid-1234-1.html

www.domain.com/red-widgets-cid-1234-1-1.html
以上所有URL上的规范:

www.domain.com/red-widgets-cid-1234.html

New URL:
www.domain.com/red-widgets-cid-4567.html
www.domain.com/red-widgets-cid-1234+10.html

New URL:
www.domain.com/red-widgets-cid-6789.html

当前URL示例2:

www.domain.com/red-widgets-cid-1234+10.html

www.domain.com/red-widgets-cid-1234+10-1.html

www.domain.com/red-widgets-cid-1234+10-1-1.html
以上所有URL上的规范:

www.domain.com/red-widgets-cid-1234.html

New URL:
www.domain.com/red-widgets-cid-4567.html
www.domain.com/red-widgets-cid-1234+10.html

New URL:
www.domain.com/red-widgets-cid-6789.html
我想确保上述URL的所有变体都重定向到新的URL。我可以使用什么通配符301重定向/正则表达式来解决这些问题

试试这个(还没有测试):

最主要的是先测试最长的“通用”URL。
%1
表示最后一个
RewriteCond
中的第一个regexp表达式
$1
表示当前
重写规则
中的第一个regexp表达式


NB如果新URL对于重写条件捕获的所有URL都应该相同,那么您应该跳过
%1
,这只有在您想要的情况下才是必要的,例如,对于
red-widgets-cid-1234+10+5-1.html
REWRITERRULE语句中的
red-widgets-cid-6789+5-1.html
,我们使用%1还是$1?也,如果我们也在处理:当前URL示例3:www.domain.com/red-widgets-cid-1234+10+5.html www.domain.com/red-widgets-cid-1234+10+5-1.html www.domain.com/red-widgets-cid-1234+10+5-1.html所有上述URL的规范:www.domain.com/red-widgets-cid-1234+10+5.html新URL:www.domain.com/american-red-widgets-cid-6789+5.html我们是否也可以在URL的“red widgets”区域中使用通配符来重写COND规则?应用程序只查看cid之后的内容。我更新了我的答案,但你应该在原始问题中添加新问题,否则会有点混乱。