Как насчет только одного единственного правила, которое заменит ваши два правила:
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-'/]+
, но проблема в том, что второй -
мог бы действовать как оператор диапазона, в то время как я думаю, что вы намеревались использовать его как буквальный символ тире. Чтобы -
не действовал как оператор диапазона, вы должны либо поставить его первым или последним в скобках, либо экранировать его обратной косой чертой (\-
).