Commit 42615ffd authored by elukey's avatar elukey
Browse files

mod_rewrite.xml: add an example about override behavior

A user in PR 63051 was confused about the default behavior
of mod_rewrite (override) when merging two sections in the
directory context at the same nesting level. I was confused
as well, but after a quick look at the code I figured out that
RewriteOptions Inherit seems to solve the issue (naming is,
in this case, a bit counter intuitive).



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1853417 13f79535-47bb-0310-9956-ffa450edef68
parent ef57563b
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -1134,7 +1134,35 @@ type="section" module="core">Files</directive> sections
(including their regular expression counterparts), this
should never be necessary and is unsupported. A likely feature
to break in these contexts is relative substitutions.</li>

<li>The <directive module="core">If</directive> blocks
follow the rules of the <em>directory</em> context.</li>

<li>By default, mod_rewrite overrides rules when <a href="../sections.html#merging">
merging sections</a> belonging to the same context. The <directive
module="rewrite">RewriteOptions</directive> directive can change this behavior,
for example using the <em>Inherit</em> setting.</li>

<li>The <directive module="rewrite">RewriteOptions</directive> also regulates the
behavior of sections that are stated at the same nesting level of the configuration. In the
following example, by default only the RewriteRules stated in the second 
<directive module="core">If</directive> block
are considered, since the first ones are overridden. Using <directive
module="rewrite">RewriteOptions</directive> Inherit forces mod_rewrite to merge the two
sections and consider both set of statements, rather than only the last one.</li>
</ul>
<example>
<highlight language="config">
&lt;If "true"&gt;
  # Without RewriteOptions Inherit, this rule is overridden by the next
  # section and no redirect will happen for URIs containing 'foo'
  RewriteRule foo http://example.com/foo [R]
&lt;/If&gt;
&lt;If "true"&gt;
  RewriteRule bar http://example.com/bar [R]
&lt;/If&gt;
</highlight>
</example>
</note>

      <p>For some hints on <glossary ref="regex">regular