Да, RewriteRule
использует Perl-совместимое регулярное выражение. Это то же самое, что PHP делает в preg_match()
.
Разница в том, что в ModRewrite
вы можете поставить префикс !
, чтобы не совпадать с чем-либо.
Другое дело, что когда вы добавляете флаг NC
, они не чувствительны к регистру. В регулярных выражениях PHP это может быть достигнуто с помощью модификатора i
.
Итак, прежде чем начать заново изобретать колесо, почему бы не выбрать эту функцию? Это работает так:
$url = 'Oval-Shape.html';
$regexp = '([^/]+)-([^/]+).html';
$result = preg_match("({$regexp})i", $url, $params);
print_r($params);
И это вывод:
Array
(
[0] => Oval-Shape.html
[1] => Oval
[2] => Shape
)
Итак, $params[1]
- это то, что вы знаете как $1
в .htacces и т. Д.