确保两个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);
}
此外,您还可以查看页面中其他类型的钩子,或者更好地了解如何控制钩子调用顺序