Принимая во внимание рекомендации @Eraklon, чтобы избежать жадных проверок, я нашел решение:
RewriteRule ^first-part\/([^\/]+(\/)?)(.*) https://example.com/alt/$1 [R=301,L]
Можно проверить здесь: https://htaccess.madewithlove.be?share=8973fe68-f137-59a5-b27b-0cbbe3d842bc
Точно соответствует первой части с ^ first-part /, а затем входит в группу:
([^\/]+(\/)?)
, которая проверяет 1 или более символов, которые не являются sla sh /. Когда он находит первый параметр sh, это может быть следующий раздел URL или конец URL.
Не уверен, что это лучше, но идея в том, что он соответствует всего 1 шаблону за 1 доллар, который включает в себя оба конца: sla sh и not-sla sh для второго блока URL-адреса .
Мне не удалось удалить последний бит из URL-адреса (параметры? Parameter = a)
Таким образом, результат с этой формой URL, например:
https://example.com/first-part/second-part/third-part/?parameter=a
Будет
https://example.com/alt/second-part/?parameter=a
К счастью, параметры не так уж плохи, но я предпочел бы полное решение.