Перенаправить POST htaccess

Этот вопрос очень похож на: возможно ли перенаправить почтовые данные? (спросил ухаживатель), но этот ответ, похоже, не работает для меня.

У меня есть форма:

<form action="http://a.test.com/contact" name="contact" method="post"> 

и внутри дополнительного домена (test.com является аддоном), есть субдомен (a.), и внутри там у меня есть файл item.php и .htaccess

мой htaccess выглядит следующим образом:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^([^/]+)/$ $1.php # Forces a trailing slash to be added RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ RewriteRule (.*)$ /$1/ [R=301,L] #normal rewrites RewriteRule ^[~|-]?([a-zA-Z0-9]+)[/]*$ item.php?user=$1 [NC,L] 

note: Я оставил его как [NC, L], потому что, когда я изменил его на [NC, P], он дал мне ошибку 500 серверов.

и мой item.php

 <?php echo "<pre>"; print_r($_POST); echo "</pre>"; 

и независимо от того, что содержит форма, $ _POST пуст … однако, если я делаю http://a.test.com/item.php?user=contact как действие.

Все хорошо. POSTing пропускает htaccess, и решение на SO не работает.

заранее спасибо

Solutions Collecting From Web of "Перенаправить POST htaccess"

Правило «добавить конечную косую черту» заставляет перенаправить заголовок:

  [R=301,L] 

перенаправление заголовка приведет к сбросу значений POST.

Вам придется отказаться от этого правила или отключить его для отправки POST:

 # Forces a trailing slash to be added RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ RewriteRule (.*)$ /$1/ [R=301,L]