修改 apache 中的 POST 参数的名称

修改 apache 中的 POST 参数的名称

我想使用 apache 将 POST 参数的名称从“SURNAME”更改为“LASTNAME”。

原因是我们有旧客户端向旧服务器发送帖子。两者都无法修改,这就是我想在 Apache 中进行翻译的原因。我使用 mod_rewrite 来翻译一些查询字符串值,但帖子超出了 mod_rewrite 的范围。

那么,有人知道如何操作帖子参数的名称吗?

答案1

是的,这是一个糟糕的情况。mod_rewrite 无法帮助您处理 POST 数据,mod_filter 和 mod_ext_filter 仅适用于输出,而 mod_reflector 会立即返回更改后的请求。

因此,除非您想编写一个 apache 模块(mod_filter_request.so 或其他什么),否则无论如何,您都必须在客户端请求到达服务器之前对其进行处理,更糟糕的是,它需要在传输级别不可见(这让我想起,您没有提到这是否通过 SSL - 如果是这样,那么您的 mangler 现在将负责所有 SSL,因为您必须“查看内部”来更改变量)。

因此,粗略地说(具体情况很大程度上取决于您当前的设置方式):

步骤 1:建立一个面向公众的非常简单的网站,只需将所有请求传递给一个脚本

(编辑:我所做的将不起作用,因为它将丢失 POST 变量;只需将所有内容映射到这个脚本作为处理程序...)

步骤 2:编写 pass.pl(或其他)。它应该 a) 接受请求 b) 存储所有变量 c) 向旧服务器生成新请求 d) 接收响应 e) 将该响应发送回原始客户端

(那里有太多的设置假设,我甚至不会尝试代码示例。)

坦率地说,这可能不值得,并且您最好在旧式服务器写入的任何系统中更改变量名称(它是否有您可以访问的钩子)?

相关内容