匹配4位htaccess重写的最后一次出现

时间:2015-06-10 17:59:34

标签: regex .htaccess mod-rewrite

我想知道我可以用什么样的正则表达式来匹配我的网址中一组4位数字的最后一次出现。

我的网址格式正是这样

/ARTIST/ALBUM-4 DIGITS-EXTRA STUFF

在网址中,“4 DIGITS”将是最后可能出现的4位数字。事情是ALBUM可能包含4位数的集合,因此它需要匹配url中的最后一个匹配项。

基本上我需要我的重写规则如下操作

RewriteRule ^(.*)/(.*)-(.* MATCH LAST OCCURENCE OF 4 DIGITS)-(.*)?$ album.php?artist=$1&album=$2&releaseyear=$3&EXTRA=$4

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteRule ^([^/]+)/(.+?)-(\d{4})-(\D*)$ album.php?artist=$1&album=$2&releaseyear=$3&EXTRA=$4 [L,QSA,NC]

答案 1 :(得分:1)

我会使用这条规则:

RewriteRule ^(.*)\/(.*)-(\d{4})(?:-(.*))?$ album.php?artist=$1&album=$2&releaseyear=$3&EXTRA=$4

<强> Try it