Redirecting POST Data in PHP with .htaccess
Question:
Can POST data be submitted to a fake address that redirects to an index page?
Scenario:
A website uses a .htaccess file to redirect all requests to index.php. However, when using a form with the POST method to submit data to a fake address, the POST data is lost during redirection.
Analysis:
The default .htaccess rule used in this scenario is:
RewriteRule send-mail index.php?send-mail [NC,L]
This rule correctly redirects the request to index.php, but the [L] (last) flag stops further processing and discards any POST data.
Solution:
To preserve POST data during redirection, change the [L] flag to [P] (proxy):
RewriteRule send-mail index.php?send-mail [NC,P]
Explanation:
The [P] flag acts similarly to [L] by stopping rule processing, but it also instructs the proxy module to handle the request intact, including any POST data.
Additional Notes:
# serve files and dirs if they exist please, otherwise send to index RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php
The above is the detailed content of How to Preserve POST Data During Redirection in PHP with .htaccess?. For more information, please follow other related articles on the PHP Chinese website!