[英]Redirect 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]
注意:我將其保留為[NC,L],因為當我將其更改為[NC,P]時,它會給我500服務器錯誤。
和我的item.php
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
並且無論表單包含什么內容,$ _ POST都是空白...但是,如果我執行http://a.test.com/item.php?user=contact作為操作。
一切順利。 POST會跳過htaccess,因此SO上的解決方案似乎不起作用。
提前致謝
您的“添加結尾斜杠”規則將強制標題重定向:
[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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.