2012-10-06 69 views
0

我目前正在爲客戶端在IIS 7上託管的站點上工作,並且該站點被配置爲重定向任何裸站請求以重定向到「www」子域。但是,這對站點上的一些表單造成了問題,這些表單指向裸域。提交表單時,它會轉發到'www'subdomain上的正確頁面,但POST參數丟失 - 不管原始請求的請求類型如何,'www'子域中的頁面都會請求HTTP GET請求。我非常不熟悉IIS及其配置,所以我想這是一件很容易解決的問題,但我如何確保POST請求保留在IIS上的301重定向上?配置IIS通過301重定向傳遞POST數據

回答

1

如果您通過301發佈帖子數據將被刪除。您需要創建eq php腳本,重新解析數據並重新發送

/* FOR test */ 

$_POST['value'] = 123; 
$_POST['key'] = 888; 
# Online $_POST check 
$_GET['redirect'] = 'https://posttestserver.com/post.php'; 
/* END: FOR test */ 


if(filter_var($_GET['redirect'], FILTER_VALIDATE_URL)) { 

    if (is_array($_POST)) : 

     echo '<form method="post" action="'. $_GET['redirect'] .'" name="f">'; 

     foreach($_POST as $i => $v){ 
      echo '<input type="hidden" name="'. $i .'" value="'. $v .'">'; 
     } 

     echo '</form> <script> document.f.submit(); </script>'; 

    else : // IF _GET 

     $tmp = $_GET['redirect']; 
     unset($_GET['redirect']); 
     $ur = http_build_query($_GET); 
     header("Location: " . $tmp . '?' . $ur); 
    endif; 
}