]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Docco updates
authorJim Jagielski <jim@apache.org>
Thu, 17 Apr 2008 14:14:21 +0000 (14:14 +0000)
committerJim Jagielski <jim@apache.org>
Thu, 17 Apr 2008 14:14:21 +0000 (14:14 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@649122 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mod_substitute.html.en
docs/manual/mod/quickreference.html.de
docs/manual/mod/quickreference.html.en
docs/manual/mod/quickreference.html.es
docs/manual/mod/quickreference.html.ja.utf8
docs/manual/mod/quickreference.html.ko.euc-kr
docs/manual/mod/quickreference.html.ru.koi8-r
docs/manual/mod/quickreference.html.tr.utf8
docs/manual/rewrite/rewrite_guide_advanced.html.en

index a109d449547397b4726b9f11ffe860d5ea7bb8a1..d865f0fbfcfbaaec69b7d5f2ad6f6bf9fd3bd149 100644 (file)
@@ -43,7 +43,7 @@
 <div class="directive-section"><h2><a name="Substitute" id="Substitute">Substitute</a> <a name="substitute" id="substitute">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Pattern to filter the response content</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Substitute <var>s/pattern/substitution/[inf]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Substitute <var>s/pattern/substitution/[infq]</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
         <dt><code>f</code></dt>
         <dd>The <code>f</code> flag causes mod_substitute to flatten the
         result of a substitution allowing for later substitutions to
-        take place on the boundary of this one.</dd>
+        take place on the boundary of this one. This is the default.</dd>
+        <dt><code>q</code></dt>
+        <dd>The <code>q</code> flag causes mod_substitute to not
+        flatten the buckets after each substitution. This can
+        result in much faster response and a decrease in memory
+        utilization, but should only be used if there is no possibility
+        that the result of one substitution will ever match a pattern
+        or regex of a subsequent one.</dd>
     </dl>
     
     <div class="example"><h3>Example</h3><p><code>
index f26a25dda9f0f80a2be95add95cb7987bc70cdc6..86ff688663eaf6e8afda15c40257be3e79b41362 100644 (file)
@@ -732,7 +732,7 @@ Certificate verification</td></tr>
 <tr><td><a href="mpm_common.html#startservers">StartServers <var>Anzahl</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Anzahl der Kindprozesse des Servers, die beim Start erstellt
   werden</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startthreads">StartThreads <var>Anzahl</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Anzahl der Threads, die beim Start erstellt werden</td></tr>
-<tr><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr class="odd"><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">User and group permissions for CGI programs</td></tr>
 <tr><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>Anzahl</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads
   pro Kindprozess</td></tr>
index af1a09b63ca472e9d2e2dceb7e6ff7d3354b91bf..ddf704bc575a7d4b77359bebf6aa650c78868970 100644 (file)
@@ -715,7 +715,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Number of child server processes created at startup</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of threads created on startup</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">User and group permissions for CGI programs</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Sets the upper limit on the configurable number of threads
 per child process</td></tr>
index e258340b898d348eb3caedbb2d71e04476d9968e..98519648e8cba42a2c8433181a0b9f82f611ff20 100644 (file)
@@ -722,7 +722,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Number of child server processes created at startup</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of threads created on startup</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">User and group permissions for CGI programs</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Sets the upper limit on the configurable number of threads
 per child process</td></tr>
index fec5d17ec7dc19bf05ab1269466d30af38afcb45..8e18ebb74355244c2c83be865b2cb0f1f70afa99 100644 (file)
@@ -640,7 +640,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">起動時に生成される子サーバプロセスの数</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">起動時に生成されるスレッドの数</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">CGI プログラムのユーザパーミッション、グループパーミッション</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">設定可能な子プロセス毎のスレッド数の上限を
 設定します</td></tr>
index 15b570383563297d637cf8d2e345a04154d1a3fe..354e06eef57babee0b752abd8442f64b9f1dcd79 100644 (file)
@@ -658,7 +658,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Number of child server processes created at startup</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of threads created on startup</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">CGI ÇÁ·Î±×·¥ÀÌ »ç¿ëÇÒ »ç¿ëÀÚ¿Í ±×·ì ±ÇÇÑ</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Sets the upper limit on the configurable number of threads
 per child process</td></tr>
index ab0f9929ddad48e72ac88ee034200cf5c05762f9..ca3dc80b9ca0c607748af8cdf7ab7c6936cd9826 100644 (file)
@@ -720,7 +720,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Number of child server processes created at startup</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of threads created on startup</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">User and group permissions for CGI programs</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Sets the upper limit on the configurable number of threads
 per child process</td></tr>
index 153936536a924d3f318d402b6f35cff9233dcba4..2c7ee51c2389198430445c0cda907a0da8f12f2d 100644 (file)
@@ -708,7 +708,7 @@ in the Session Cache</td></tr>
 Certificate verification</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#startservers">StartServers <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Number of child server processes created at startup</td></tr>
 <tr><td><a href="mpm_common.html#startthreads">StartThreads <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Number of threads created on startup</td></tr>
-<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[inf]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
+<tr class="odd"><td><a href="mod_substitute.html#substitute">Substitute <var>s/pattern/substitution/[infq]</var></a></td><td></td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pattern to filter the response content</td></tr>
 <tr><td><a href="mod_suexec.html#suexecusergroup">SuexecUserGroup <em>User Group</em></a></td><td></td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">User and group permissions for CGI programs</td></tr>
 <tr class="odd"><td><a href="mpm_common.html#threadlimit" id="T" name="T">ThreadLimit <var>number</var></a></td><td></td><td>s</td><td>M</td></tr><tr class="odd"><td class="descr" colspan="4">Sets the upper limit on the configurable number of threads
 per child process</td></tr>
index 085977af496b3f6d77b5a7b1a67582e2fc3c77bd..211dedf4991eacb122a0d46a7aedaa8362dd5c8d 100644 (file)
     solve each problem by configuring URL rewriting rulesets.</p>
 
     <div class="warning">ATTENTION: Depending on your server configuration
-    it may be necessary to slightly change the examples for your
-    situation, e.g. adding the <code>[PT]</code> flag when
-    additionally using <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> and
+    it may be necessary to adjust the examples for your
+    situation, <em>e.g.,</em> adding the <code>[PT]</code> flag if
+    using <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> and
     <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code>, etc. Or rewriting a ruleset
-    to fit in <code>.htaccess</code> context instead
+    to work in <code>.htaccess</code> context instead
     of per-server context. Always try to understand what a
-    particular ruleset really does before you use it. This
+    particular ruleset really does before you use it; this
     avoids many problems.</div>
 
   </div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cluster">Webcluster through Homogeneous URL Layout</a></li>
+<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cluster">Web Cluster with Consistent URL Space</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#structuredhomedirs">Structured Homedirs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#filereorg">Filesystem Reorganization</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#redirect404">Redirect Failing URLs To Other Webserver</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#redirect404">Redirect Failing URLs to Another Webserver</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#archive-access-multiplexer">Archive Access Multiplexer</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#browser-dependent-content">Browser Dependent Content</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dynamic-mirror">Dynamic Mirror</a></li>
@@ -64,7 +64,7 @@ introduction</a></li><li><a href="rewrite_guide.html">Rewrite Guide - useful
 examples</a></li><li><a href="rewrite_tech.html">Technical details</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
-<h2><a name="cluster" id="cluster">Webcluster through Homogeneous URL Layout</a></h2>
+<h2><a name="cluster" id="cluster">Web Cluster with Consistent URL Space</a></h2>
 
       
 
@@ -73,23 +73,23 @@ examples</a></li><li><a href="rewrite_tech.html">Technical details</a></li></ul>
 
         <dd>
           <p>We want to create a homogeneous and consistent URL
-          layout over all WWW servers on a Intranet webcluster, i.e.
-          all URLs (per definition server local and thus server
-          dependent!) become actually server <em>independent</em>!
-          What we want is to give the WWW namespace a consistent
-          server-independent layout: no URL should have to include
-          any physically correct target server. The cluster itself
-          should drive us automatically to the physical target
-          host.</p>
+          layout across all WWW servers on an Intranet web cluster, <em>i.e.,</em>
+          all URLs (by definition server-local and thus
+          server-dependent!) become server <em>independent</em>!
+          What we want is to give the WWW namespace a single consistent
+          layout: no URL should refer to
+          any particular target server. The cluster itself
+          should connect users automatically to a physical target
+          host as needed, invisibly.</p>
         </dd>
 
         <dt>Solution:</dt>
 
         <dd>
-          <p>First, the knowledge of the target servers come from
-          (distributed) external maps which contain information
-          where our users, groups and entities stay. They have the
-          form</p>
+          <p>First, the knowledge of the target servers comes from
+          (distributed) external maps which contain information on
+          where our users, groups, and entities reside. They have the
+          form:</p>
 
 <div class="example"><pre>
 user1  server_of_user1
@@ -99,7 +99,7 @@ user2  server_of_user2
 
           <p>We put them into files <code>map.xxx-to-host</code>.
           Second we need to instruct all servers to redirect URLs
-          of the forms</p>
+          of the forms:</p>
 
 <div class="example"><pre>
 /u/user/anypath
@@ -115,8 +115,8 @@ http://physical-host/g/group/anypath
 http://physical-host/e/entity/anypath
 </pre></div>
 
-          <p>when the URL is not locally valid to a server. The
-          following ruleset does this for us by the help of the map
+          <p>when any URL path need not be valid on every server. The
+          following ruleset does this for us with the help of the map
           files (assuming that server0 is a default server which
           will be used if a user has no entry in the map):</p>
 
@@ -147,9 +147,9 @@ RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\
         <dt>Description:</dt>
 
         <dd>
-          <p>Some sites with thousands of users usually use a
-          structured homedir layout, i.e. each homedir is in a
-          subdirectory which begins for instance with the first
+          <p>Some sites with thousands of users use a
+          structured homedir layout, <em>i.e.</em> each homedir is in a
+          subdirectory which begins (for instance) with the first
           character of the username. So, <code>/~foo/anypath</code>
           is <code>/home/<strong>f</strong>/foo/.www/anypath</code>
           while <code>/~bar/anypath</code> is
@@ -160,7 +160,7 @@ RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\
 
         <dd>
           <p>We use the following ruleset to expand the tilde URLs
-          into exactly the above layout.</p>
+          into the above layout.</p>
 
 <div class="example"><pre>
 RewriteEngine on
@@ -186,7 +186,7 @@ RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</stro
           adjusted. Background: <strong><em>net.sw</em></strong> is
           my archive of freely available Unix software packages,
           which I started to collect in 1992. It is both my hobby
-          and job to to this, because while I'm studying computer
+          and job to do this, because while I'm studying computer
           science I have also worked for many years as a system and
           network administrator in my spare time. Every week I need
           some sort of software so I created a deep hierarchy of
@@ -215,11 +215,11 @@ drwxrwxr-x  10 netsw  users    512 Jul  9 14:08 X11/
           the world via a nice Web interface. "Nice" means that I
           wanted to offer an interface where you can browse
           directly through the archive hierarchy. And "nice" means
-          that I didn't wanted to change anything inside this
+          that I didn't want to change anything inside this
           hierarchy - not even by putting some CGI scripts at the
-          top of it. Why? Because the above structure should be
-          later accessible via FTP as well, and I didn't want any
-          Web or CGI stuff to be there.</p>
+          top of it. Why? Because the above structure should later be
+          accessible via FTP as well, and I didn't want any
+          Web or CGI stuff mixed in there.</p>
         </dd>
 
         <dt>Solution:</dt>
@@ -247,8 +247,8 @@ drwxr-xr-x   2 netsw  users     512 Jul  8 23:47 netsw-img/
 </pre></div>
 
           <p>The <code>DATA/</code> subdirectory holds the above
-          directory structure, i.e. the real
-          <strong><em>net.sw</em></strong> stuff and gets
+          directory structure, <em>i.e.</em> the real
+          <strong><em>net.sw</em></strong> stuff, and gets
           automatically updated via <code>rdist</code> from time to
           time. The second part of the problem remains: how to link
           these two structures together into one smooth-looking URL
@@ -257,7 +257,7 @@ drwxr-xr-x   2 netsw  users     512 Jul  8 23:47 netsw-img/
           for the various URLs. Here is the solution: first I put
           the following into the per-directory configuration file
           in the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
-          of the server to rewrite the announced URL
+          of the server to rewrite the public URL path
           <code>/net.sw/</code> to the internal path
           <code>/e/netsw</code>:</p>
 
@@ -307,7 +307,7 @@ RewriteRule   (.*)                     netsw-lsdir.cgi/$1
 
           <ol>
             <li>Notice the <code>L</code> (last) flag and no
-            substitution field ('<code>-</code>') in the forth part</li>
+            substitution field ('<code>-</code>') in the fourth part</li>
 
             <li>Notice the <code>!</code> (not) character and
             the <code>C</code> (chain) flag at the first rule
@@ -320,7 +320,7 @@ RewriteRule   (.*)                     netsw-lsdir.cgi/$1
 
     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
-<h2><a name="redirect404" id="redirect404">Redirect Failing URLs To Other Webserver</a></h2>
+<h2><a name="redirect404" id="redirect404">Redirect Failing URLs to Another Webserver</a></h2>
 
       
 
@@ -330,18 +330,18 @@ RewriteRule   (.*)                     netsw-lsdir.cgi/$1
         <dd>
           <p>A typical FAQ about URL rewriting is how to redirect
           failing requests on webserver A to webserver B. Usually
-          this is done via <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI-scripts in Perl, but
+          this is done via <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI scripts in Perl, but
           there is also a <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> solution.
-          But notice that this performs more poorly than using an
+          But note that this performs more poorly than using an
           <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code>
-          CGI-script!</p>
+          CGI script!</p>
         </dd>
 
         <dt>Solution:</dt>
 
         <dd>
           <p>The first solution has the best performance but less
-          flexibility, and is less error safe:</p>
+          flexibility, and is less safe:</p>
 
 <div class="example"><pre>
 RewriteEngine on
@@ -352,7 +352,7 @@ RewriteRule   ^(.+)                             http://<strong>webserverB</stron
           <p>The problem here is that this will only work for pages
           inside the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. While you can add more
           Conditions (for instance to also handle homedirs, etc.)
-          there is better variant:</p>
+          there is better variant:</p>
 
 <div class="example"><pre>
 RewriteEngine on
@@ -362,11 +362,11 @@ RewriteRule   ^(.+)          http://<strong>webserverB</strong>.dom/$1
 
           <p>This uses the URL look-ahead feature of <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
           The result is that this will work for all types of URLs
-          and is a safe way. But it does a performance impact on
-          the webserver, because for every request there is one
+          and is safe. But it does have a performance impact on
+          the web server, because for every request there is one
           more internal subrequest. So, if your webserver runs on a
           powerful CPU, use this one. If it is a slow machine, use
-          the first approach or better a <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI-script.</p>
+          the first approach or better an <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> CGI script.</p>
         </dd>
       </dl>
 
@@ -383,17 +383,17 @@ RewriteRule   ^(.+)          http://<strong>webserverB</strong>.dom/$1
           <p>Do you know the great CPAN (Comprehensive Perl Archive
           Network) under <a href="http://www.perl.com/CPAN">http://www.perl.com/CPAN</a>?
           This does a redirect to one of several FTP servers around
-          the world which carry a CPAN mirror and is approximately
-          near the location of the requesting client. Actually this
-          can be called an FTP access multiplexing service. While
-          CPAN runs via CGI scripts, how can a similar approach
+          the world which each carry a CPAN mirror and (theoretically)
+          near the requesting client. Actually this
+          can be called an FTP access multiplexing service.
+          CPAN runs via CGI scripts, but how could a similar approach
           be implemented via <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>?</p>
         </dd>
 
         <dt>Solution:</dt>
 
         <dd>
-          <p>First we notice that from version 3.0.0
+          <p>First we notice that as of version 3.0.0,
           <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> can
           also use the "<code>ftp:</code>" scheme on redirects.
           And second, the location approximation can be done by a
@@ -435,9 +435,9 @@ com       ftp://ftp.cxan.com/CxAN/
         <dd>
           <p>At least for important top-level pages it is sometimes
           necessary to provide the optimum of browser dependent
-          content, i.e. one has to provide a maximum version for the
-          latest Netscape variants, a minimum version for the Lynx
-          browsers and a average feature version for all others.</p>
+          content, <em>i.e.,</em> one has to provide one version for
+          current browsers, a different version for the Lynx and text-mode
+          browsers, and another for other browsers.</p>
         </dd>
 
         <dt>Solution:</dt>
@@ -450,9 +450,9 @@ com       ftp://ftp.cxan.com/CxAN/
           begins with "Mozilla/3", the page <code>foo.html</code>
           is rewritten to <code>foo.NS.html</code> and the
           rewriting stops. If the browser is "Lynx" or "Mozilla" of
-          version 1 or 2 the URL becomes <code>foo.20.html</code>.
+          version 1 or 2, the URL becomes <code>foo.20.html</code>.
           All other browsers receive page <code>foo.32.html</code>.
-          This is done by the following ruleset:</p>
+          This is done with the following ruleset:</p>
 
 <div class="example"><pre>
 RewriteCond %{HTTP_USER_AGENT}  ^<strong>Mozilla/3</strong>.*
@@ -482,13 +482,13 @@ RewriteRule ^foo\.html$         foo.<strong>32</strong>.html          [<strong>L
           the <code>mirror</code> program which actually maintains an
           explicit up-to-date copy of the remote data on the local
           machine. For a webserver we could use the program
-          <code>webcopy</code> which acts similar via HTTP. But both
+          <code>webcopy</code> which runs via HTTP. But both
           techniques have one major drawback: The local copy is
-          always just as up-to-date as often we run the program. It
+          always just as up-to-date as the last time we ran the program. It
           would be much better if the mirror is not a static one we
           have to establish explicitly. Instead we want a dynamic
           mirror with data which gets updated automatically when
-          there is need (updated data on the remote host).</p>
+          there is need (updated on the remote host).</p>
         </dd>
 
         <dt>Solution:</dt>
@@ -612,7 +612,7 @@ RewriteRule ^/home/([^/]+)/.www/?(.*) http://<strong>www2</strong>.quux-corp.dom
               <p>The simplest method for load-balancing is to use
               the DNS round-robin feature of <code>BIND</code>.
               Here you just configure <code>www[0-9].foo.com</code>
-              as usual in your DNS with A(address) records, e.g.</p>
+              as usual in your DNS with A(address) records, <em>e.g.,</em></p>
 
 <div class="example"><pre>
 www0   IN  A       1.2.3.1
@@ -638,13 +638,13 @@ www   IN  A       1.2.3.5
               - but in a slightly permutated/rotated order every time.
               This way the clients are spread over the various
               servers. But notice that this is not a perfect load
-              balancing scheme, because DNS resolve information
+              balancing scheme, because DNS resolution information
               gets cached by the other nameservers on the net, so
               once a client has resolved <code>www.foo.com</code>
-              to a particular <code>wwwN.foo.com</code>, all
+              to a particular <code>wwwN.foo.com</code>, all its
               subsequent requests also go to this particular name
               <code>wwwN.foo.com</code>. But the final result is
-              ok, because the total sum of the requests are really
+              okay, because the requests are collectively
               spread over the various webservers.</p>
             </li>
 
@@ -674,7 +674,7 @@ www    IN  CNAME   www0.foo.com.
 
               <p>entry in the DNS. Then we convert
               <code>www0.foo.com</code> to a proxy-only server,
-              i.e. we configure this machine so all arriving URLs
+              <em>i.e.,</em> we configure this machine so all arriving URLs
               are just pushed through the internal proxy to one of
               the 5 other servers (<code>www1-www5</code>). To
               accomplish this we first establish a ruleset which
@@ -772,7 +772,7 @@ RewriteRule ^/[uge]/<strong>([^/]+)</strong>/\.www/(.+)\.scgi(.*) ...
           subtree). We have to provide the URL area to these
           programs so they know on which area they have to act on.
           But usually this is ugly, because they are all the times
-          still requested from that areas, i.e. typically we would
+          still requested from that areas, <em>i.e.,</em> typically we would
           run the <code>swwidx</code> program from within
           <code>/u/user/foo/</code> via hyperlink to</p>
 
@@ -829,7 +829,7 @@ HREF="*"
 
         <dd>
           <p>Here comes a really esoteric feature: Dynamically
-          generated but statically served pages, i.e. pages should be
+          generated but statically served pages, <em>i.e.,</em> pages should be
           delivered as pure static pages (read from the filesystem
           and just passed through), but they have to be generated
           dynamically by the webserver if missing. This way you can