0

私は現在、IIS 7 でクライアント用にホストされているサイトで作業しています。このサイトは、ネイキッド ドメイン要求をリダイレクトして「www」サブドメインにリダイレクトするように構成されています。ただし、これにより、ネイキッド ドメインを指すサイトの一部のフォームで問題が発生しています。フォームが送信されると、「www」サブドメインの正しいページに転送されますが、POST パラメーターが失われます。「www」サブドメインのページは、元のリクエストのリクエスト タイプに関係なく、HTTP GET リクエストでリクエストされます。 .

私は IIS とその構成にあまり詳しくないので、これは簡単に修正できると思いますが、IIS で 301 リダイレクトを介して POST 要求が確実に保持されるようにするにはどうすればよいでしょうか?

4

1 に答える 1

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;
}
于 2012-10-07T12:55:58.793 に答える