2010-03-31 93 views
0

我使用下面的代码尝试重定向动态URL到一个新的动态URL,同一个域下:的.htaccess重定向动态URL

RewriteRule ^products/item/^\d([^/]+) /product/$1/ [R=301,L] 

我已经试过这太:

RewriteRule ^products/item/[^\d]([^/]+) /product/$1/ [R=301,L] 
RewriteRule ^products/item/[0-9]([^/]+) /product/$1/ [R=301,L] 

但是,这是重定向/products/item/342//product/42/,我测试这在更大的数量(例如123456789),并将其重定向到/product/23456789/

这似乎是我的规则没有拿起第一位数字,任何人都可以帮我解决这个问题吗?

我也试过使用[\d]安装了[0-9],但是这有同样的问题。

干杯!

回答

3

尝试

RewriteRule ^products/item/(\d[^/]+) /product/$1/ [R=301,L] 
+0

天才!这就是了;),非常感谢您的回答! – 2010-03-31 08:57:55

+0

这是导致问题的正则表达式中的组。 $ 1将匹配括号内的所有内容。 – yogsototh 2010-03-31 09:00:50

0
RewriteRule ^products/item/([0-9]+) /product/$1/ [R=301,L]