Changes with Apache 2.0.31-dev
+ *) New Directive Option for ProxyPass. It now can block a location
+ from being proxied [Jukka Pihl <jukka.pihl@entirem.com>]
*) Don't let the default handler try to serve a raw directory. At
best you get gibberish. Much worse things can happen depending
<A
HREF="directive-dict.html#Syntax"
REL="Help"
-><STRONG>Syntax:</STRONG></A> ProxyPass <EM>path url</EM><br>
-or: ProxyPass <EM>url</EM> when placed in a <location> directive <em>(Apache 2.0 only)</em>
-<br>
+><STRONG>Syntax:</STRONG></A> ProxyPass <EM>path url</EM><BR>
+or: ProxyPass <EM>url</EM> when placed in a <location> directive <em>(Apache 2.0 only)</EM><br>
+or: ProxyPass <EM>path !</EM> to exclude a path from being proxied.
+<BR>
<A
HREF="directive-dict.html#Default"
REL="Help"
<<SAMP>http://wibble.org/mirror/foo/bar</SAMP>> to be
internally converted into a proxy request to
<<SAMP>http://foo.com/bar</SAMP>>.
-
-
+<P>
+The ! directive is usefull in situations where you don't want to reverse-proxy
+a subdirectory. eg.
+<PRE>
+ ProxyPass /mirror/foo http://foo.com
+ ProxyPass /mirror/foo/i !
+</PRE>
+will proxy all requests to /mirror/foo to foo.com EXCEPT requests made to /mirror/foo/i
+</P>
<HR>
<H2><A NAME="proxypassreverse">ProxyPassReverse</A> directive</H2>
len = alias_match(r->uri, ent[i].fake);
if (len > 0) {
+ if ((ent[i].real[0] == '!' ) & ( ent[i].real[1] == 0 )) {
+ return DECLINED;
+ }
+
r->filename = apr_pstrcat(r->pool, "proxy:", ent[i].real,
(r->uri + len ), NULL);
r->handler = "proxy-server";