【问题标题】:API to access referrer field in Apache Module用于访问 Apache 模块中的引用者字段的 API
【发布时间】:2011-11-16 19:07:27
【问题描述】:

我在 request_rec* 结构中找不到它?有没有办法可以在 Apache 模块中访问它?

谢谢!

【问题讨论】:

    标签: apache2 apache-modules


    【解决方案1】:

    referer 存储在请求标头中,因此您应该从那里获取referer:

    const char* referer = apr_table_get(request->headers_in, "Referer");
    

    【讨论】:

      【解决方案2】:

      你应该

      #apt-get install apache2-prefork-dev
      

      然后

      #apxs2 -gn Somename
      

      mod_Somename.c 位于您的 Somename 目录中。在这个 .c 文件中包含 request_rec* 结构。 如果您想尝试 request_rec* 的完整参考,请点击链接

      http://ci.apache.org/projects/httpd/trunk/doxygen/httpd_8h.html

      【讨论】:

        【解决方案3】:

        您可以在 Apache 2.x 模块的输入/输出过滤器函数中访问 request_rec*:

        用于输入过滤器

        int do_nothing_input_filter(ap_filter_t *f, apr_bucket_brigade *bb, ap_input_mode_t mode, apr_read_type_e block,
        apr_off_t readbytes)
        {
            request_rec *r = f->r;
            (...)
        }
        

        对于输出过滤器:

        apr_status_t my_output_filter_func(ap_filter_t* f, apr_bucket_brigade* bb)
        {
            request_rec *r = f->r;
            (...)
        }
        

        结构定义在httpd.h reference of Apache 2.x doxygen documentation

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-28
          • 1970-01-01
          • 2021-10-28
          • 1970-01-01
          相关资源
          最近更新 更多