From: Ian Holsman Date: Tue, 26 Jun 2001 22:32:49 +0000 (+0000) Subject: ProxyPass & ProxyPass Reverse now can be specified in directives X-Git-Tag: 2.0.19~41 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=acf70983381ed3d65697c02dbf9f576e0a37b785;p=apache ProxyPass & ProxyPass Reverse now can be specified in directives git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89424 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 57f5370d10..adfe60b3bd 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -496,11 +496,22 @@ static const char * proxy_server_conf *conf = (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module); struct proxy_alias *new; - - new = apr_array_push(conf->aliases); - new->fake = f; - new->real = r; - return NULL; + if (r!=NULL && cmd->path == NULL ) { + new = apr_array_push(conf->aliases); + new->fake = f; + new->real = r; + } else if (r==NULL && cmd->path != NULL) { + new = apr_array_push(conf->aliases); + new->fake = cmd->path; + new->real = f; + } else { + if ( r== NULL) + return "ProxyPass needs a path when not defined in a location"; + else + return "ProxyPass can not have a path when defined in a location"; + } + + return NULL; } static const char * @@ -512,9 +523,21 @@ static const char * conf = (proxy_server_conf *)ap_get_module_config(s->module_config, &proxy_module); - new = apr_array_push(conf->raliases); - new->fake = f; - new->real = r; + if (r!=NULL && cmd->path == NULL ) { + new = apr_array_push(conf->raliases); + new->fake = f; + new->real = r; + } else if (r==NULL && cmd->path != NULL) { + new = apr_array_push(conf->raliases); + new->fake = cmd->path; + new->real = f; + } else { + if ( r == NULL) + return "ProxyPassReverse needs a path when not defined in a location"; + else + return "ProxyPassReverse can not have a path when defined in a location"; + } + return NULL; } @@ -709,9 +732,9 @@ static const command_rec proxy_cmds[] = "on if the true proxy requests should be accepted"), AP_INIT_TAKE2("ProxyRemote", add_proxy, NULL, RSRC_CONF, "a scheme, partial URL or '*' and a proxy server"), - AP_INIT_TAKE2("ProxyPass", add_pass, NULL, RSRC_CONF, + AP_INIT_TAKE12("ProxyPass", add_pass, NULL, RSRC_CONF|ACCESS_CONF, "a virtual path and a URL"), - AP_INIT_TAKE2("ProxyPassReverse", add_pass_reverse, NULL, RSRC_CONF, + AP_INIT_TAKE12("ProxyPassReverse", add_pass_reverse, NULL, RSRC_CONF|ACCESS_CONF, "a virtual path and a URL for reverse proxy behaviour"), AP_INIT_ITERATE("ProxyBlock", set_proxy_exclude, NULL, RSRC_CONF, "A list of names, hosts or domains to which the proxy will not connect"),