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