mod_rewrite规则丢失一个变量(正则表达式问题)

时间:2013-02-02 20:42:54

标签: regex apache mod-rewrite

我得到了以下mod_rewrite规则

Rewriterule ^products/([0-9]+)/([a-zA-Z0-9]+)[^a-zA-Z0-9]+([a-zA-Z0-9]+) /products/$2-$3-C$1 [R=301,L]

所以当有这样的链接时:

http://www.domain.com/products/2930/Monet, Claude

它应翻译为

http://www.domain.com/products/Monet-Claude-C2930

然而,它以某种方式得到Claude的rids并将其翻译为:

http://www.domain.com/products/Monet-C2930

这不奇怪吗?怎么了?

更新

我刚刚注意到问题是由上面的规则引起的: Rewriterule ^products/([0-9]+)/([a-zA-Z0-9]+) /products/$2-C$1 [R=301,L]我忘了以$ sign

结束它

1 个答案:

答案 0 :(得分:1)

它必须是工作测试

RewriteRule ^products/([0-9]*)/([a-zA-Z0-9]+)[^a-zA-Z0-9]+([a-zA-Z0-9]*)$  /products/$2-$3-C$1 [R=301,L]