カスタム HttpModule を使用して URL を書き換える IIS 6 で実行されているアプリケーションがあります。Context.RewritePath の宛先が .php ファイルである場合を除いて、これはうまく機能します (うまくいきました)。PHP ファイルは期待どおりに実行されますが、$_POST コレクションは空であり、書き換えられた URL に送信されたフォームにアクセスできません。Request.Form コレクションが正常であるため、.aspx ファイルに書き換える場合、問題は存在しません。
したがって、私の質問には 2 つの部分があります。 $_POST コレクションに値が入力されていないのはなぜですか? 書き換え後に .php $_POST コレクションが正しく設定されるようにする方法はありますか?
コードの方法で示すことはあまりありません。簡単なものがあります:
context.RewritePath(newPath);
HttpModule がリクエストの送信先を見つけたら。
編集:
興味深いことに、var_dump(file_get_contents('php://input'));
PHP ファイル (ここで説明する方法) で行うと、フォームの内容が表示されます。したがって、データは PHP スクリプトに到達していますが、$_POST 配列には到達していません。