mirror of
https://github.com/apache/httpd.git
synced 2025-08-15 23:27:39 +00:00
Interpolation worked within the scheme portion of URLs for
ProxyPass and ProxyPassReverse until a fix to apr_uri_parse() in APR-Util 1.5.2 closed the hole that had previously allowed the necessary {} characters within the scheme. Lack of support for interpolation within the scheme will be a permanent limitation. The mod_proxy documentation is updated to provide an alternate configuration solution. PR: 55315 Submitted by: Mike Rumph <mike.rumph oracle.com> Tweaked by: trawick git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1532816 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -1238,15 +1238,6 @@ ProxyPass / balancer://hotcluster/
|
||||
removes the normal limited protection against URL-based attacks
|
||||
provided by the proxy.</p>
|
||||
|
||||
<p>The optional <var>interpolate</var> keyword (available in
|
||||
httpd 2.2.9 and later), in combination with
|
||||
<directive>ProxyPassInterpolateEnv</directive> causes the ProxyPass
|
||||
to interpolate environment variables, using the syntax
|
||||
<var>${VARNAME}</var>. Note that many of the standard CGI-derived
|
||||
environment variables will not exist when this interpolation happens,
|
||||
so you may still have to resort to <module>mod_rewrite</module>
|
||||
for complex rules.</p>
|
||||
|
||||
<p>Normally, mod_proxy will include the query string when
|
||||
generating the <var>SCRIPT_FILENAME</var> environment variable.
|
||||
The optional <var>noquery</var> keyword (available in
|
||||
@ -1268,6 +1259,30 @@ ProxyPass / balancer://hotcluster/
|
||||
<directive module="mod_rewrite">RewriteRule</directive> directive with the
|
||||
<code>[P]</code> flag.</p>
|
||||
|
||||
<p>The optional <var>interpolate</var> keyword (available in
|
||||
httpd 2.2.9 and later), in combination with
|
||||
<directive>ProxyPassInterpolateEnv</directive> causes the ProxyPass
|
||||
to interpolate environment variables, using the syntax
|
||||
<var>${VARNAME}</var>. Note that many of the standard CGI-derived
|
||||
environment variables will not exist when this interpolation happens,
|
||||
so you may still have to resort to <module>mod_rewrite</module>
|
||||
for complex rules. Also note that interpolation is not supported
|
||||
within the scheme portion of a URL. Dynamic determination of the
|
||||
scheme can be accomplished with <module>mod_rewrite</module> as in the
|
||||
following example.</p>
|
||||
|
||||
<highlight language="config">
|
||||
RewriteEngine On
|
||||
|
||||
RewriteCond %{HTTPS} =off
|
||||
RewriteRule . - [E=protocol:http]
|
||||
RewriteCond %{HTTPS} =on
|
||||
RewriteRule . - [E=protocol:https]
|
||||
|
||||
RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
|
||||
ProxyPassReverse /mirror/foo/ http://backend.example.com/
|
||||
ProxyPassReverse /mirror/foo/ https://backend.example.com/
|
||||
</highlight>
|
||||
</usage>
|
||||
</directivesynopsis>
|
||||
|
||||
@ -1399,7 +1414,8 @@ ProxyPassReverseCookiePath / /mirror/foo/
|
||||
httpd 2.2.9 and later), used together with
|
||||
<directive>ProxyPassInterpolateEnv</directive>, enables interpolation
|
||||
of environment variables specified using the format <var>${VARNAME}</var>.
|
||||
</p>
|
||||
Note that interpolation is not supported within the scheme portion of a
|
||||
URL.</p>
|
||||
|
||||
<p>When used inside a <directive type="section" module="core"
|
||||
>Location</directive> section, the first argument is omitted and the local
|
||||
|
Reference in New Issue
Block a user