On Jan 17, 2008 7:30 PM, karim Bendadda <[EMAIL PROTECTED]> wrote: > 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, > **my_module**_config, > NULL, > **my_module**_cmds, > **my_module**_hooks > };* > > Thanks > > > > On Jan 17, 2008 4:01 PM, Joe Lewis < [EMAIL PROTECTED]> 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
-- Karim