Попробуйте это:
# redirect mail posting to index
RewriteRule send-mail index.php?send-mail [NC,P]
"P" действует как "L", в котором он останавливает правила обработки, но он также говорит модулю, что запрос должен быть выдан к неповрежденному модулю прокси (значение, что данные POST сохраняются).
Пока Вы только используете внутреннее, переписывают, не перенаправление HTTP, Вы не должны терять данные POST. Вот правило, которое я использую на своем сайте:
RewriteRule ^(.*)$ index.php/$1 [L]
Попытка с помощью расширения HTTPLiveHeaders для Firefox (или что-то подобное) и дорожка весь запрос страницы. Удостоверьтесь, что Вы не получаете перенаправление HTTP. Если Вы добираетесь HTTP/1.1 3xx ответ и Местоположение: http://address заголовок, который является проблемой. Ваш переписывать правило, что Вы отправили, не должен заставлять это происходить. Если Вы перенаправляетесь, существует, вероятно, или ошибка в Вашем коде PHP, или другой переписывает правило, которое применяется.
Необходимо смочь просто перенаправить к index.php
, и затем в том сценарии, доступе $_SERVER['REQUEST_URI']
видеть исходный запрос, с неповрежденной "отправлять-почтой".
Между прочим, "не может отправить, такой же информацией" не является причина использовать POST. Причина использовать POST состоит в том, что запрос изменит данные по Вашему сайту, вместо того, чтобы просто получить данные.
Предположим, что Вы помещаете гиперссылку на своей странице с ПОЛУЧИТЬ запросом как"/delete_user?id=1234
," и затем некоторая поисковая система невинно переходит по ссылке, поскольку она индексирует Ваш сайт. Вот почему ДОБЕРИТЕСЬ, запросы не хороши для запросов, которые изменяют данные.