我正在尝试在网址末尾检测到大于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]
答案 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]