diff options
author | Luca Toscano <elukey@apache.org> | 2019-02-09 15:14:43 +0100 |
---|---|---|
committer | Luca Toscano <elukey@apache.org> | 2019-02-09 15:14:43 +0100 |
commit | 0191ebe90bcf39836a5a800a6ec483fa868ddef4 (patch) | |
tree | 49e24862d59f8095eb94359c6da17d1ee2720daf /docs | |
parent | Fix a race condition. (diff) | |
download | apache2-0191ebe90bcf39836a5a800a6ec483fa868ddef4.tar.xz apache2-0191ebe90bcf39836a5a800a6ec483fa868ddef4.zip |
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). I hope that I added
a good clarification in the code, if not please amend it as
you think it's best!
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1853280 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs')
-rw-r--r-- | docs/manual/mod/mod_rewrite.xml | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/docs/manual/mod/mod_rewrite.xml b/docs/manual/mod/mod_rewrite.xml index 28b7799ae7..c3816eb149 100644 --- a/docs/manual/mod/mod_rewrite.xml +++ b/docs/manual/mod/mod_rewrite.xml @@ -1141,7 +1141,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"> +<If "true"> + # 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] +</If> +<If "true"> + RewriteRule bar http://example.com/bar [R] +</If> +</highlight> +</example> </note> <p>For some hints on <glossary ref="regex">regular |