我们应该在.Htaccess文件中为第十段写什么?

时间:2015-07-10 08:19:55

标签: php .htaccess redirect

RewriteRule ^products/(\d+)/(.*)/(.*)/(.*)/([^_]+)-_([^.]+)_([^.]+)_([^.]+)_([^.]+)_([^.]+).html$  /$5-$6-$7-$8-$9-$10/p$1 [L,NC,R=301]

上述重定向规则会将我从此网址重定向

http://www.example.com/products/44/category/sub_category/sub_to_sub_category/product_name_with_multiple_under_scores.html

http://www.example.com/product-name-with-multiple-under-440/p44

在上述重定向规则中,产品名称(分数)的最后一个字符被读作段$ 1,即44和" 0"附加到它。

我的问题是我们应该为第十段写些什么?

1 个答案:

答案 0 :(得分:3)

根据mod_rewrite docs,您无法在RewriteRule中访问超过9个分组部分:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

因此,要实现您所追求的目标,您可以将一些现有组合在一起,使总数低于10.在您的示例中,您不使用$ 2,$ 3和$ 4匹配,因此您可以进行分组那些没有问题:

RewriteRule ^products/(\d+)/((.*)/(.*)/(.*))/([^_]+)-_([^.]+)_([^.]+)_([^.]+)_([^.]+)_([^.]+).html$  /$3-$4-$5-$6-$7-$8/p$1 [L,NC,R=301]