First I'd like to thank you very much Joe for help...
I have a "begineer" question:
*3) allow apache to handle the rest of the request*. Is that mean return
1???? because when I tried this I had an error...and when I tried return OK
I had nothing...
that's my code:
*static int my_module_handler (request_rec *r) {
char *url = apr_pstrdup(r->pool,"http:\\10.12.23.5\irj\test");
r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
return 1;
}
static void **my_module**_hooks(apr_pool_t *pool){
ap_hook_handler(**my_module**_handler, NULL, NULL, APR_HOOK_FIRST);
}
module AP_MODULE_DECLARE_DATA **my_module**_module = {
STANDARD20_MODULE_STUFF,
NULL,
NULL,
auth_chorus_config,
NULL,
**my_module**_cmds,
**my_module**_hooks
};*
Thanks
On Jan 17, 2008 4:01 PM, Joe Lewis < joe@joe-lewis.com> wrote:
> karim Bendadda wrote:
> > Hi All;
> >
> > I tried this
> >
> > *request_rec *subr = ap_sub_req_lookup_uri(url, r, NULL);
> > apr_table_set( subr->headers_out, "Location", url );
> > ap_log_rerror( APLOG_MARK, APLOG_ERR, 0,r, "sub request status:
> > %i",subr->status );
> > ap_run_sub_req(subr);*
> >
> > I have the following error:
> >
> > *[Thu Jan 17 07:11:25 2008] [error] [client 10.75.197.168 ] File does
> not
> > exist: /usr/local/apache2/htdocs/my_module*
> >
> > I think because the external server is not on the same site..I read the
> > paragraph 6.3 Diverting a Request: The internal redirect ...I think
> there is
> > no external redirect for http requests...
> > Any suggestion please??
> >
>
> That error and assumption are correct. As Ray stated, the
> ap_sub_req_lookup_uri only works if the URI is on the local server's
> apache. (It is a URI vs. URL concept - the URI does not include the
> http://servername piece of the URL.)
>
> Instead, try a simple :
>
> r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
> return 1;
>
> (this example was stolen from mod_rewrite, which was the only core
> module that I was aware of that included a "send to proxy" command).
> Just set the URL to what the client would have been grabbing if it was
> redirected to the right page. For example, if the client is trying to
> get the page http://corvette.sharktooth.org/status.html , the resulting
> line would be :
>
> url = apr_pstrdup(r->pool,"http://corvette.sharktooth.org/status.html");
> r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
> return 1;
>
> (this could also be shortened - what the three lines do are 1) get/set
> the URL, which should be set in your case already, 2) preface the URL
> with "proxy:", which is an indicator to proxy the request elsewhere, and
> 3) allow apache to handle the rest of the request).
>
> Try it and let us know if that works for you.
>
> Joe
> --
> Joseph Lewis <http://sharktooth.org/ >
> "Divide the fire, and you will sooner put it out." - Publius Syrus
>
--
Karim
|