URL을 다시 쓰는 데 사용자 지정 HttpModule을 사용하는 IIS 6에서 실행되는 응용 프로그램이 있습니다. 이것은 Context.RewritePath 대상이 .php 파일 인 경우를 제외하고는 훌륭하게 작동합니다. PHP 파일은 예상대로 실행되지만 $ _POST 콜렉션은 비어 있으므로 다시 작성된 URL에 제출 된 양식에는 액세스 할 수 없습니다. Request.Form 컬렉션에 문제가 없으므로 .aspx 파일을 다시 작성할 때 문제가 없습니다.
그럼 내 질문에는 두 부분이 있습니다. $ _POST 모음이 채워지지 않는 이유는 무엇입니까? 재 작성 후 .php $ _POST 콜렉션이 올바르게 채워지는 방법이 있습니까?
코드의 방식으로 많이 표시하지 않습니다. 단순한 것일뿐입니다. 일단 HttpModule이 요청을 보낼 곳을 찾으면,
context.RewritePath(newPath);
이 있습니다.
편집 : 나는 PHP 파일 (방법 described here)을 var_dump(file_get_contents('php://input'));
을 할 경우 는 흥미롭게도, 양식의 내용이 표시됩니다. 따라서 데이터는 PHP 스크립트에는 도달하지만 $ _POST 배열에는 도달하지 못합니다.
믿어지지 않는 정도로 빠른 답변 주셔서 감사합니다. .aspx 페이지는 양식 모음에 액세스 할 수 있지만 .php 파일은 액세스 할 수 없습니다. – jammus
내 생각에 ASP.NET은 backchannel을 투명하게 구현합니다. –
좋은 이전 ASP.NET. 재미있는 file_get_contents ('php : // input') 호출은 POST 데이터가 어떻게 든 통과하고 있음을 보여줍니다. $ _POST 배열에 데이터가 채워지지 않는다는 것입니다. – jammus