httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Gruno <rum...@cord.dk>
Subject Re: Change Request-Header before mod_rewrite
Date Mon, 04 Jun 2012 22:09:19 GMT
On 06/04/2012 10:53 PM, Marc apocalypse17 wrote:
> Hi all,
>
> I just developed my first apache module following the tutorial on the apache website.
The module is responsible for adding one header value to the active request which must be
checked in a mod_rewrite ReWriteCondition.
> The problem is, that this value never reaches the mod_rewrite Rule. The Header just behaves
the same as the original request. Does anyone know why? What am I doing wrong?
>
> My module looks like this:
>
> static int helloworld_handler(request_rec* r){
>     if (!r->main) {
>         apr_table_setn(r->headers_in, "X-CUSTOM-HEADER", "1");
>     }
>     return DECLINED;
> }
>
> static void register_hooks(apr_pool_t* pool){
>     ap_hook_handler(helloworld_handler, NULL, NULL, APR_HOOK_FIRST);
> }
>
> module AP_MODULE_DECLARE_DATA helloworld_module = {
>     STANDARD20_MODULE_STUFF,
>     NULL,
>     NULL,
>     NULL,
>     NULL,
>     example_directives,
>     register_hooks
> };
>
> The .htacces file looks like this:
>
> RewriteEngine on
> RewriteCond %{HTTP:X-CUSTOM-HEADER} 1 [NC]
> RewriteRule from.html to.html
>
> The Rewrite-Rule is never executes fine. It always show the content of from.html.
>
>
> Thank you in advance,
> Marc
>
As Ben said, mod_rewrite is invoked far earlier than your handler
(handlers are invoked last), since it hooks onto the translation part of
the http process. If you intend for your module to do the same, you
change your hook function accordingly:

static void register_hooks(apr_pool_t* pool){
    ap_hook_translate_name(helloworld_handler, NULL, NULL, APR_HOOK_FIRST-1);
}
 

This will eventually be covered by the module guide in the docs (as soon
as I get some time off to write it)

With regards,
Daniel.

Mime
View raw message