You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.1 KiB
29 lines
1.1 KiB
--- a/modules/proxy/mod_proxy.c 2014/03/03 17:28:10 1573625 |
|
+++ b/modules/proxy/mod_proxy.c 2014/03/03 17:28:17 1573626 |
|
@@ -927,8 +927,25 @@ |
|
struct dirconn_entry *list = (struct dirconn_entry *)conf->dirconn->elts; |
|
|
|
/* is this for us? */ |
|
- if (!r->proxyreq || !r->filename || strncmp(r->filename, "proxy:", 6) != 0) |
|
+ if (!r->filename) { |
|
return DECLINED; |
|
+ } |
|
+ |
|
+ if (!r->proxyreq) { |
|
+ /* We may have forced the proxy handler via config or .htaccess */ |
|
+ if (r->handler && |
|
+ strncmp(r->handler, "proxy:", 6) == 0 && |
|
+ strncmp(r->filename, "proxy:", 6) != 0) { |
|
+ r->proxyreq = PROXYREQ_REVERSE; |
|
+ r->filename = apr_pstrcat(r->pool, r->handler, r->filename, NULL); |
|
+ apr_table_setn(r->notes, "rewrite-proxy", "1"); |
|
+ } |
|
+ else { |
|
+ return DECLINED; |
|
+ } |
|
+ } else if (strncmp(r->filename, "proxy:", 6) != 0) { |
|
+ return DECLINED; |
|
+ } |
|
|
|
/* handle max-forwards / OPTIONS / TRACE */ |
|
if ((str = apr_table_get(r->headers_in, "Max-Forwards"))) {
|
|
|