Да. Хитрость в том, чтобы написать RewriteRule , который заменяет один символ (знак равенства или амперсанд) косой чертой, а затем использовать флаг «next», который перезапускает процесс перезаписи.
Следующее может быть хорошим началом:
RewriteRule ^/index.php - [chain]
RewriteRule ^(.*)[=&](.*)$ $1/$2 [next]
RewriteRule ^/index.php\? "/"
Если я понял это правильно, первое правило ничего не изменит, но совпадет, только если путь начинается с "/index.php". Опция «цепочка» означает, что второе правило не будет работать, если первое правило не совпадает. Второе правило попытается заменить = или & на /, и, если оно выполнится успешно, оно перезапустит весь процесс перезаписи. Третье правило, которое будет достигнуто только после замены всех символов = и &, удалит "/index.php?" в начале.