代码之家  ›  专栏  ›  技术社区  ›  jammus

当.NET HttpModule RewritePath调用的目标是PHP文件时,$\u POST数组为空

  •  0
  • jammus  · 技术社区  · 14 年前

    我们有一个在IIS 6上运行的应用程序,它使用自定义HttpModule重写url。这很好(我们做得很好),除非Context.RewritePath目标是一个.php文件。php文件按预期执行,但是$u POST集合为空,这意味着它无法访问提交给重写url的任何表单。当Advest.Form集合重写为.ASPX文件时,问题不存在。

    因此,我的问题分为两部分: 为什么没有填充$u POST集合?

    在代码方面我没有太多要展示的东西。有一个简单的:

    context.RewritePath(newPath);
    

    一旦HttpModule找到了发送请求的位置。

    有趣的是,如果我 var_dump(file_get_contents('php://input')); 在PHP文件中(方法 described here )显示表单的内容。因此,数据到达的是PHP脚本,而不是$u POST数组。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ignacio Vazquez-Abrams    14 年前

    重定向将POST操作转换为GET操作,这意味着最初发送的任何POST参数都将丢失。为了传递变量,必须使用backchannel方法(例如sessions)。