Как насчет:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/script.php.*$
RewriteRule ^([^\/]{8,})[^\/]*$ "/script.php?id=$1" [R,L]
- Использование RewriteCond в качестве дополнительной защиты от цикла перенаправления
По умолчанию исходная строка запроса отбрасывается при добавлении новойпоэтому, если вы хотите сохранить оригинал (например, example.com/12345678?utm_campaign=foo
переходит на example.com/script.php?id=12345678&utm_campaign=foo
), используйте флаг [ QSA ], например:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/script.php.*$
RewriteRule ^([^\/]{8,})[^\/]*$ "/script.php?id=$1" [QSA,R,L]
Если идентификаторвсегда просто числа, вы можете изменить регулярное выражение на ^(\d{8,})[^\/]*$
, чтобы сделать его более надежным.