]> granicus.if.org Git - apache/commitdiff
Further clarification to address bug #30021
authorRich Bowen <rbowen@apache.org>
Wed, 9 Nov 2011 00:34:39 +0000 (00:34 +0000)
committerRich Bowen <rbowen@apache.org>
Wed, 9 Nov 2011 00:34:39 +0000 (00:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1199568 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/rewrite/tech.xml

index bd2dc078b909bbeb9de4c5ce280227e642315153..d30f8748a54b6a03ab3d698a672133b220a4eec8 100644 (file)
@@ -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