Ну, вам нужны скобки вокруг бита, который вы хотите сопоставить, если вы используете его в качестве замены, $1
говорит о первой соответствующей группе скобок, также вам не нужно []
вокруг тире -
.
RewriteRule /([0-9]{1,10}-[0-9a-z]{5,9})/?$ realpage.php?id=$1 [QSA,L]
В качестве альтернативы, если вы хотите это по-другому, ваши «маски URL-адресов из» сбивают с толку.
Нельзя сопоставить параметры строки запроса с RewriteRule
напрямую.
Вы должны использовать RewriteCond
, чтобы сопоставить его, затем используйте RewriteRule
, чтобы сделать переписывание.
RewriteCond %{QUERY_STRING} id=([0-9]{1,10}[-][0-9a-z]{5,9})
RewriteRule ^realpage.php$ /%1/ [L]