RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login$1 [R=301,L]
UPDATE: Фактически вы ничего не захватываете, поэтому обратная ссылка $1
всегда пуста. Вам нужно либо создать группу захвата в шаблоне RewriteRule
(ie. В скобках), либо использовать обратную ссылку $0
, которая содержит полное совпадение.
Вы также перенаправляют на /login{md5}
, тогда как вы указали, что вам нужно перенаправить на /login?md5={md5}
(чтобы «сохранить этот md5 как переменную get»), поэтому вам нужно будет настроить последнюю часть правила так, чтобы она читалась как /login?md5=$1
. Другими словами:
RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login?md5=$0 [R=301,L]
Вам нужно будет очистить кеш браузера, так как 301 (постоянное) перенаправление будет кэшировано браузером.
Я предполагаю, что старые и новые домены указывают на разные серверы, в противном случае вам может потребоваться условие, которое явно проверяет запрошенное имя хоста. Например:
RewriteCond %{HTTP_HOST} ^old\.example\.com [NC]
RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login?md5=$0 [R=301,L]