У нас есть приложение, работающее на IIS 6, которое использует собственный HttpModule для перезаписи URL. Это прекрасно работает (хорошо сделано нами), за исключением случая, когда назначение Context.RewritePath представляет собой файл .php. Файл php выполняется должным образом, однако коллекция $ _POST пуста, что означает, что она не может получить доступ ни к каким формам, переданным в переписанные URL-адреса. Проблема не существует при перезаписи в файлы .aspx, так как коллекция Request.Form в порядке.
Поэтому мой вопрос состоит из двух частей:
Почему коллекция $ _POST не заполняется?
Есть ли способ обеспечить правильное заполнение коллекции .php $ _POST после перезаписи?
Мне нечего показать в коде. Там просто:
context.RewritePath(newPath);
как только HttpModule определил, куда отправить запрос.
Edit:
Интересно, что если я сделаю var_dump(file_get_contents('php://input'));
в файле PHP (метод , описанный здесь ), отобразится содержимое формы. Таким образом, данные достигают сценария PHP, но не массива $ _POST.