2012-09-12 43 views
0

我需要编写一个正则表达式来从URL的末尾删除大量数字。.htacess urlrewrite删除号码

下面是一些例子:

/uk/futsal-cosmos-10-panel-match-football-white-purple-24100787502654/ 
/uk/escape-t400-individual-rubber-dumbbells-up-to-50kg-2289101502719397/ 
/uk/golds-gym-standard-hammertone-plate-25-4mm-1-25kg-x-12-1736702088365877/ 

所以基本上我需要去掉最终的数字,包括仪表板。

在第三示例中,这应该成为:

/uk/golds-gym-standard-hammertone-plate-25-4mm-1-25kg-x-12/ 

即12应该保持。

回答

1

如果最后的数字总是已经先通过 - ,试试这个

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteRule ^(.*)-[0-9]+/$ /$1/ [L,QSA] 
</IfModule> 

由[R = 301,L]替换[L,QSA]如果你想有一个301重定向

对于10位仪表

RewriteRule ^(.*)-[0-9]{10}/$ /$1/ [L,QSA] 
+0

感谢喜之后 - 这是一个很好的答案,但: /英国/枚金牌的健身房,标准锤纹板,25-4mm-1-25kg-X-12-1736702088365877/ 新ü RL的这将是/ uk/golds-gym-standard-hammertone-plate-25-4mm-1-25kg-x-12 /你的改写网址将会改变/ uk/golds-gym-standard-hammertone -plate-25-4mm-1-25kg-x/which which a 404 –

+0

是否有可能使重写规则只匹配短划线之后的数字超过10位的数字? –

+0

我只是在破折号后面编辑了10位数字。请测试第一种形式,只有最后一个破折号将被删除任何最后一个号码 – mabarroso