簡體   English   中英

重定向POST htaccess

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM