diff options
author | Rich Bowen <rbowen@apache.org> | 2011-11-09 01:34:39 +0100 |
---|---|---|
committer | Rich Bowen <rbowen@apache.org> | 2011-11-09 01:34:39 +0100 |
commit | 9c698e96a0ab0a6db402dca7e146f33328ee9c18 (patch) | |
tree | 423dfc7edd2e5467ec7fa8edce4c447b51ebf36a /docs/manual/rewrite/tech.xml | |
parent | mod_authn_socache: tidy up r1199565. (diff) | |
download | apache2-9c698e96a0ab0a6db402dca7e146f33328ee9c18.tar.xz apache2-9c698e96a0ab0a6db402dca7e146f33328ee9c18.zip |
Further clarification to address bug #30021
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1199568 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/rewrite/tech.xml')
-rw-r--r-- | docs/manual/rewrite/tech.xml | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/docs/manual/rewrite/tech.xml b/docs/manual/rewrite/tech.xml index bd2dc078b9..d30f8748a5 100644 --- a/docs/manual/rewrite/tech.xml +++ b/docs/manual/rewrite/tech.xml @@ -81,7 +81,9 @@ and URL matching.</p> <directive module="mod_rewrite">RewriteBase</directive> directive to see how you can further manipulate how this is handled.) Then, a new internal subrequest is issued with the new URL. This restarts - processing of the API phases.</p> + processing of the request phases. (Be careful to avoid rules that + can cause looping. See <a href="http://wiki.apache.org/httpd/RewriteLooping">RewriteLooping</a> + for further discussion of this problem.</p> <p>Because of this further manipulation of the URL in per-directory context, you'll need to take care to craft your rewrite rules @@ -149,16 +151,17 @@ and URL matching.</p> alt="Flow of RewriteRule and RewriteCond matching" /><br /> <dfn>Figure 1:</dfn>The control flow through the rewriting ruleset </p> - <p>As you can see, first the URL is matched against the - <em>Pattern</em> of each rule. When it fails mod_rewrite - immediately stops processing this rule and continues with the + <p>First the URL is matched against the + <em>Pattern</em> of each rule. If it fails, mod_rewrite + immediately stops processing this rule, and continues with the next rule. If the <em>Pattern</em> matches, mod_rewrite looks - for corresponding rule conditions. If none are present, it - just substitutes the URL with a new value which is - constructed from the string <em>Substitution</em> and goes on + for corresponding rule conditions (RewriteCond directives, + appearing immediately above the RewriteRule in the configuration). + If none are present, it substitutes the URL with a new value, which is + constructed from the string <em>Substitution</em>, and goes on with its rule-looping. But if conditions exist, it starts an inner loop for processing them in the order that they are - listed. For conditions the logic is different: we don't match + listed. For conditions, the logic is different: we don't match a pattern against the current URL. Instead we first create a string <em>TestString</em> by expanding variables, back-references, map lookups, <em>etc.</em> and then we try |