2011-01-09 20 views
7

यह प्रश्न बहुत समान है: Is it possible to redirect post data? (ईयरलर से पूछा गया) लेकिन यह उत्तर मेरे लिए काम नहीं कर रहा है।POST htaccess को रीडायरेक्ट करें

मैं एक रूप है:

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

और एक ऐड-ऑन डोमेन के भीतर, (test.com कोई एडऑन है), एक उप डोमेन है (। एक) एक है, और वहाँ के अंदर मेरे पास है 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] 

टिप्पणी: मैं [एनसी, एल] के रूप में यह छोड़ दिया है क्योंकि जब मैं इसे [एनसी, पी] कर दिया गया यह मुझे देता है एक 500 सर्वर त्रुटि।

और मेरे item.php

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

और कोई बात नहीं क्या रूप होता है, $ _POST खाली अगर मैं कार्रवाई के रूप में http://a.test.com/item.php?user=contact करना है ... फिर भी,।

सब ठीक हो जाता है। पोस्टिंग htaccess skips, और SO पर समाधान काम नहीं लग रहा है।

अग्रिम

+1

तुम क्यों ** तो अनुप्रेषित है ** ग्राहक? यदि आप रीडायरेक्ट नहीं करना चाहते हैं, तो अपने रीडायरेक्ट नियम को निकालें (या केवल रीडायरेक्ट ध्वज हटाएं), इस प्रकार POST डेटा खो दें। – zerkms

+0

[.htaccess का संभावित डुप्लिकेट - क्या पोस्ट डेटा को रीडायरेक्ट करना संभव है?] (Http://stackoverflow.com/questions/358263/htaccess-is-it-possible-to-redirect-post-data) –

उत्तर

17

धन्यवाद आपके नियम एक हैडर रीडायरेक्ट बलों "स्लेश अनुगामी जोड़ने":

[R=301,L] 

एक हैडर रीडायरेक्ट पोस्ट मूल्यों छोड़ देंगे।

आप उस नियम ड्रॉप, या पोस्ट प्रस्तुतियाँ के लिए इसे अक्षम करना होगा:

# 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] 
+5

मैं अक्सर देखता हूं कि लोग केवल रेगेक्स-आधारित तुलना का उपयोग करते हैं, लेकिन स्ट्रिंग-आधारित नहीं: 'पुनर्लेखन% {REQUEST_METHOD}! = POST'। क्यूं कर? ;-) – zerkms

+1

@zerkms मेला बिंदु :) ईमानदार होने के लिए, मुझे यह भी पता नहीं था कि नोटेशन संभव था। धन्यवाद, तय है –

संबंधित मुद्दे