确保两个Apache过滤器的执行顺序

确保两个Apache过滤器的执行顺序,apache,apache2-module,Apache,Apache2 Module,我需要确保我的自定义过滤器总是在修改之前执行。根据,过滤器不会以确定性顺序运行: 请求处理轴很简单:各阶段严格按顺序进行。但数据轴出现了混乱。为了获得最大效率,这是流水线的,因此内容生成器和过滤器不会以确定的顺序运行。因此,例如,通常不能在输入过滤器中设置某些内容,并期望它应用于生成器或输出过滤器 如何确保两个过滤器的执行顺序,还是可能 更新: 必须有人mod_info才能显示有关模块及其顺序的详细信息。了解这一点的最佳方法是查看apache源代码。ap_hook_fixups的mod_pro

我需要确保我的自定义过滤器总是在
修改之前执行。根据,过滤器不会以确定性顺序运行:

请求处理轴很简单:各阶段严格按顺序进行。但数据轴出现了混乱。为了获得最大效率,这是流水线的,因此内容生成器和过滤器不会以确定的顺序运行。因此,例如,通常不能在输入过滤器中设置某些内容,并期望它应用于生成器或输出过滤器

如何确保两个过滤器的执行顺序,还是可能


更新:
必须有人
mod_info
才能显示有关模块及其顺序的详细信息。

了解这一点的最佳方法是查看apache源代码。ap_hook_fixups的mod_proxy和mod_rewrite用法是如何在特定模块之前或之后插入钩子的完美示例

假设你想在mod_重写之前插入一个钩子,你可以这样做:

static int my_fixup(request_rec *r)
{
    /* do something with request headers before it goes to the mod_rewrite */
    return OK;
}

static void register_hooks(apr_pool_t *p) {
    static const char * const aszSucc[] = {"mod_rewrite.c", NULL};
    ap_hook_fixups(my_fixup, NULL, aszSucc, APR_HOOK_FIRST);
}
此外,您还可以查看页面中其他类型的钩子,或者更好地了解如何控制钩子调用顺序