RewriteRule检测大于9的数字

时间:2011-11-03 09:23:44

标签: .htaccess mod-rewrite

我正在尝试在网址末尾检测到大于9的网址中的数字。例如:

” ... COM /凯尔特珠宝/传统/ 10"

我在我的.htaccess中使用两条单​​独的线作为组合工作(第一行检测数小于10,第二检测数超过9,但我想知道正确的方法是什么?我的.htaccess在下面,谢谢!

RewriteRule ^ celtic-jewelry /([a-z - '/] +)/([0-9])$ /product.php?flags=$1&page=$2 [L]

RewriteRule ^ celtic-jewelry /([a-z - '/] +)/(。[0-9])$ /product.php?flags=$1&page=$2 [L]

2 个答案:

答案 0 :(得分:0)

如何仅使用以下单一规则来替换您的两条规则:

RewriteRule ^celtic-jewelry/([a-z'/-]+)/([0-9]+)$ /product.php?flags=$1&page=$2 [L]

此处[0-9]+表示“一个或多个数字0-9”。因此,只需一个规则即可捕获所有数字的1,2或更多数字。虽然您的问题的标题是关于大于9的数字,但上下文清楚地表明您正在尝试捕获所有数字,无论是1,2还是更多数字。

另请注意,在[a-z'/-]+中,我将第二个-移到了括号的末尾。你把它写成[a-z-'/]+,但问题是第二个-可以作为范围操作符,而我认为你的意图是将它用作文字短划线字符。要使-不作为范围运算符,您必须将其放在括号中的第一个或最后一个,或者使用反斜杠(\-)将其转义。

答案 1 :(得分:0)

如果我做对了:

RewriteRule ^celtic-jewelry/([a-z-'/]+)/([1-9][0-9]+)$ product.php?flags=$1&page=$2 [L]