с передачей массива post
Почитайте на википедии что такое HTTP и что такое тело запроса. То что вы видите в PHP под этими суперглобальными $_SERVER/$_POST/$_GET/$_FILES и т.д. это все благодаря такой чудной вещи как SAPI (Server Application Programming Interface). То есть заболтивый PHP берет ваш HTTP запрос (который ему дали обработать WEB-сервера, апач тот же или nginx или еще кто) и вызывает соответствующее SAPI. То есть если у нас mod_php апачевский, то там все чуть по другому (SAPI для PHP много всяких разных). Если у нас php-fpm, то у нас там самый что нинаесть запрос, который нам проксировал какой nginx или тот же апач. Этот самый SAPI берет заголовки запроса и распихивает все по суперглобальным массивам. Он берет заголок с куками и распихивает его в $_COOKIE или видит что у нас POST запрос и он помечен как multipart/formdata и разбирает запрос, выковыривает файлики и сохраняет на диск заполняет массивы $_POST/$_FILES. Скажем если чувак отправит запрос с Content-Type: application/json (что модно стильно молодежно для мобильных клиентов) то PHP SAPI разобрать его будет не в состоянии и вам придется брать тело запроса и разбирать его самому.
Работа вашего скрипта происходит только ПОСЛЕ того как SAPI все подготовит. а htaccess влияет на работу только до того как SAPI начнет работу, так что никаких POST массивов и т.д. Только HTTP запросы.
Редиректы намного интереснее, так как это результат запроса. Ну то есть... у него нету тела. нет возможности сохранить тело запроса (ну как... есть... но клиент тоже это должен уметь и одним htaccess тут не обойтись) так что при редиректе сохранить и передать на новый урл исходные данные уже не выйдет. То есть можно, но повторюсь - это должно быть реализовано с двух сторон и тогда это не совсем редирект а больше похоже на то что вы отправляете форму двумя запросами. Один - узнает куда слать данные формы, второй отправляет.
Такие дела.