]> granicus.if.org Git - apache/commitdiff
* Remove trailing whitespace from a bunch of *.xml files
authorKen Coar <coar@apache.org>
Wed, 15 Apr 2015 20:04:05 +0000 (20:04 +0000)
committerKen Coar <coar@apache.org>
Wed, 15 Apr 2015 20:04:05 +0000 (20:04 +0000)
* Quoted arguments to Rewrite{Base,Cond,Map,Rule}.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673945 13f79535-47bb-0310-9956-ffa450edef68

189 files changed:
docs/manual/content-negotiation.html.en
docs/manual/content-negotiation.html.fr
docs/manual/content-negotiation.xml.fr
docs/manual/content-negotiation.xml.ja
docs/manual/content-negotiation.xml.ko
docs/manual/content-negotiation.xml.meta
docs/manual/content-negotiation.xml.tr
docs/manual/developer/lua.html.en
docs/manual/developer/lua.xml
docs/manual/env.html.en
docs/manual/env.xml
docs/manual/expr.html.en
docs/manual/expr.xml
docs/manual/handler.xml
docs/manual/howto/access.html.en
docs/manual/howto/access.html.fr
docs/manual/howto/access.xml
docs/manual/howto/access.xml.fr
docs/manual/howto/access.xml.meta
docs/manual/howto/auth.html.en
docs/manual/howto/auth.xml.fr
docs/manual/howto/auth.xml.ja
docs/manual/howto/auth.xml.ko
docs/manual/howto/auth.xml.tr
docs/manual/howto/cgi.xml
docs/manual/howto/public_html.xml.fr
docs/manual/howto/public_html.xml.ja
docs/manual/howto/public_html.xml.ko
docs/manual/howto/public_html.xml.tr
docs/manual/misc/perf-scaling.html.en
docs/manual/misc/perf-scaling.xml
docs/manual/misc/perf-tuning.html.en
docs/manual/misc/perf-tuning.xml.fr
docs/manual/misc/perf-tuning.xml.ko
docs/manual/misc/perf-tuning.xml.tr
docs/manual/misc/security_tips.html.en
docs/manual/misc/security_tips.xml.fr
docs/manual/misc/security_tips.xml.ko
docs/manual/misc/security_tips.xml.tr
docs/manual/mod/core.html.en
docs/manual/mod/core.xml.de
docs/manual/mod/core.xml.es
docs/manual/mod/core.xml.fr
docs/manual/mod/core.xml.ja
docs/manual/mod/core.xml.tr
docs/manual/mod/mod_access_compat.html.en
docs/manual/mod/mod_access_compat.xml
docs/manual/mod/mod_alias.html.en
docs/manual/mod/mod_alias.xml
docs/manual/mod/mod_allowmethods.xml
docs/manual/mod/mod_asis.html.fr
docs/manual/mod/mod_asis.xml.fr
docs/manual/mod/mod_asis.xml.ja
docs/manual/mod/mod_asis.xml.ko
docs/manual/mod/mod_asis.xml.meta
docs/manual/mod/mod_authn_socache.xml
docs/manual/mod/mod_authnz_fcgi.html.en
docs/manual/mod/mod_authnz_fcgi.xml
docs/manual/mod/mod_authnz_ldap.html.en
docs/manual/mod/mod_authnz_ldap.xml.fr
docs/manual/mod/mod_autoindex.html.en
docs/manual/mod/mod_autoindex.xml
docs/manual/mod/mod_cache.html.en
docs/manual/mod/mod_cache.xml
docs/manual/mod/mod_cern_meta.html.fr
docs/manual/mod/mod_cern_meta.xml.fr
docs/manual/mod/mod_cern_meta.xml.ko
docs/manual/mod/mod_cern_meta.xml.meta
docs/manual/mod/mod_deflate.html.en
docs/manual/mod/mod_deflate.html.ja.utf8
docs/manual/mod/mod_deflate.html.ko.euc-kr
docs/manual/mod/mod_deflate.xml
docs/manual/mod/mod_deflate.xml.fr
docs/manual/mod/mod_deflate.xml.ja
docs/manual/mod/mod_deflate.xml.ko
docs/manual/mod/mod_dialup.xml
docs/manual/mod/mod_dir.html.en
docs/manual/mod/mod_dir.xml
docs/manual/mod/mod_ext_filter.html.en
docs/manual/mod/mod_ext_filter.xml
docs/manual/mod/mod_filter.html.en
docs/manual/mod/mod_imagemap.xml.ko
docs/manual/mod/mod_journald.html.en
docs/manual/mod/mod_journald.xml
docs/manual/mod/mod_ldap.html.en
docs/manual/mod/mod_ldap.xml
docs/manual/mod/mod_log_config.html.en
docs/manual/mod/mod_log_config.xml
docs/manual/mod/mod_lua.html.en
docs/manual/mod/mod_lua.xml
docs/manual/mod/mod_macro.html.en
docs/manual/mod/mod_macro.xml
docs/manual/mod/mod_mime.xml.ja
docs/manual/mod/mod_policy.html.en
docs/manual/mod/mod_policy.xml
docs/manual/mod/mod_proxy.html.en
docs/manual/mod/mod_proxy.xml.fr
docs/manual/mod/mod_proxy.xml.ja
docs/manual/mod/mod_proxy_ajp.html.en
docs/manual/mod/mod_proxy_ajp.xml
docs/manual/mod/mod_proxy_ajp.xml.ja
docs/manual/mod/mod_proxy_balancer.xml.ja
docs/manual/mod/mod_proxy_fcgi.html.en
docs/manual/mod/mod_proxy_fcgi.xml
docs/manual/mod/mod_proxy_html.html.en
docs/manual/mod/mod_proxy_html.xml
docs/manual/mod/mod_proxy_scgi.html.en
docs/manual/mod/mod_proxy_scgi.xml
docs/manual/mod/mod_proxy_wstunnel.html.en
docs/manual/mod/mod_proxy_wstunnel.xml
docs/manual/mod/mod_ratelimit.html.en
docs/manual/mod/mod_ratelimit.xml
docs/manual/mod/mod_rewrite.html.en
docs/manual/mod/mod_rewrite.xml
docs/manual/mod/mod_so.html.en
docs/manual/mod/mod_so.html.fr
docs/manual/mod/mod_so.html.ja.utf8
docs/manual/mod/mod_so.xml.fr
docs/manual/mod/mod_so.xml.ja
docs/manual/mod/mod_so.xml.ko
docs/manual/mod/mod_so.xml.meta
docs/manual/mod/mod_so.xml.tr
docs/manual/mod/mod_ssl.html.en
docs/manual/mod/mod_ssl.xml
docs/manual/mod/mod_status.xml
docs/manual/mod/mod_substitute.html.en
docs/manual/mod/mod_substitute.xml
docs/manual/mod/mod_syslog.html.en
docs/manual/mod/mod_syslog.xml
docs/manual/mod/mod_vhost_alias.html.en
docs/manual/mod/mod_vhost_alias.xml
docs/manual/mod/mod_xml2enc.xml
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.tr.utf8
docs/manual/mod/quickreference.html.zh-cn.utf8
docs/manual/platform/windows.html.en
docs/manual/platform/windows.xml
docs/manual/rewrite/access.html.en
docs/manual/rewrite/access.xml
docs/manual/rewrite/advanced.html.en
docs/manual/rewrite/advanced.xml
docs/manual/rewrite/flags.html.en
docs/manual/rewrite/flags.xml
docs/manual/rewrite/flags.xml.fr
docs/manual/rewrite/index.xml
docs/manual/rewrite/intro.html.en
docs/manual/rewrite/intro.xml
docs/manual/rewrite/proxy.html.en
docs/manual/rewrite/proxy.xml
docs/manual/rewrite/remapping.html.en
docs/manual/rewrite/remapping.xml
docs/manual/rewrite/rewritemap.html.en
docs/manual/rewrite/rewritemap.xml
docs/manual/rewrite/tech.html.en
docs/manual/rewrite/tech.xml
docs/manual/rewrite/vhosts.html.en
docs/manual/rewrite/vhosts.xml
docs/manual/sections.html.en
docs/manual/sections.xml
docs/manual/sections.xml.fr
docs/manual/sections.xml.ja
docs/manual/sections.xml.ko
docs/manual/sections.xml.tr
docs/manual/ssl/ssl_faq.html.en
docs/manual/ssl/ssl_faq.xml
docs/manual/ssl/ssl_howto.html.en
docs/manual/ssl/ssl_howto.xml
docs/manual/suexec.html.en
docs/manual/suexec.xml
docs/manual/urlmapping.html.en
docs/manual/urlmapping.xml
docs/manual/urlmapping.xml.fr
docs/manual/urlmapping.xml.ja
docs/manual/urlmapping.xml.ko
docs/manual/urlmapping.xml.tr
docs/manual/vhosts/examples.html.en
docs/manual/vhosts/examples.xml
docs/manual/vhosts/examples.xml.fr
docs/manual/vhosts/examples.xml.ja
docs/manual/vhosts/examples.xml.ko
docs/manual/vhosts/examples.xml.tr
docs/manual/vhosts/mass.html.en
docs/manual/vhosts/mass.xml
docs/manual/vhosts/name-based.html.en
docs/manual/vhosts/name-based.xml

index 325f2757618f8f0835275761bc157584b3afb536..8815fcc1c241954ac6f2b4e9917d1a396c7e1dc3 100644 (file)
@@ -134,7 +134,7 @@ Negotiation</a></li>
     defines a file suffix as <code>type-map</code>; this is best done
     with</p>
 
-<pre class="prettyprint lang-config">AddHandler type-map .var</pre>
+    <pre class="prettyprint lang-config">AddHandler type-map .var</pre>
 
 
     <p>in the server configuration file.</p>
@@ -232,7 +232,7 @@ Negotiation</a></li>
     named by the <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> directive, if the
     server is trying to index a directory. If the configuration files
     specify</p>
-<pre class="prettyprint lang-config">DirectoryIndex index</pre>
+    <pre class="prettyprint lang-config">DirectoryIndex index</pre>
 
     <p>then the server will arbitrate between <code>index.html</code>
     and <code>index.html3</code> if both are present. If neither
index f296bc028c38cbe1789d0516385d7e3432655069..d6a7920551e94ae5c9536f0ec25cf705b885af4f 100644 (file)
@@ -27,6 +27,8 @@
 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="./tr/content-negotiation.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 
 
     <p>Apache HTTPD supporte la négociation de
index fe3dcd0892824b13a4c22496652840b661aa9583..a9c384ee6bd141eeec5d140786093bed706eb44a 100644 (file)
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision : 1364312 -->
+<!-- English Revision: 1364312:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index feaa993bb515877a4f02810e93705a33ffa2cd23..a055e08e359fa42a8837350d3a9e0619c39a90c3 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 675610:1364312 (outdated) -->
+<!-- English Revision: 675610:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 0ac426f15f6cd14a2ce1a9f0d9cc976c6ef5c1e7..94082d2b4baa5575145c9d890d23806ff777eccf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='EUC-KR' ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1364312 (outdated) -->
+<!-- English Revision: 151408:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index d9d19c5db379c34611dd55dead1e4ae61d1f2cb2..5ebb3ced68341c77a8e64dc31cf130d4ca2079f0 100644 (file)
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
     <variant outdated="yes">tr</variant>
index a0ceb2c0f48991e551ac95ee6c8b38d18c4c8815..99ca794a0150b9cb3ef05bdcfbc3cb87db4045ab 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1364312 (outdated) -->
+<!-- English Revision: 1174747:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index beec032f7f8b293c28a5db02a10e5b5c99e5e8c0..c3e458dc7a7b87bfdc96023aeeadd56c0993c0b6 100644 (file)
@@ -47,8 +47,8 @@ Stuff about what <code class="module"><a href="../mod/mod_lua.html">mod_lua</a><
 
 <h3><a name="contents" id="contents">What we will be discussing in this document</a></h3>
 <p>
-This document will discuss several cases where <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> can be used 
-to either ease up a phase of the request processing or create more transparency in 
+This document will discuss several cases where <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> can be used
+to either ease up a phase of the request processing or create more transparency in
 the logic behind a decision made in a phase.
 </p>
 
@@ -56,12 +56,12 @@ the logic behind a decision made in a phase.
 
 <h3><a name="prerequisites" id="prerequisites">Prerequisites</a></h3>
 <p>
-First and foremost, you are expected to have a basic knowledge of how the Lua 
-programming language works. In most cases, we will try to be as pedagogical 
-as possible and link to documents describing the functions used in the 
-examples, but there are also many cases where it is necessary to either 
-just assume that "it works" or do some digging yourself into what the hows 
-and whys of various function calls. 
+First and foremost, you are expected to have a basic knowledge of how the Lua
+programming language works. In most cases, we will try to be as pedagogical
+as possible and link to documents describing the functions used in the
+examples, but there are also many cases where it is necessary to either
+just assume that "it works" or do some digging yourself into what the hows
+and whys of various function calls.
 </p>
 
 
@@ -72,20 +72,20 @@ and whys of various function calls.
 
 <h3>Setting a scope for Lua states</h3>
 <p>
-Setting the right <code class="directive"><a href="../mod/mod_lua.html#luascope">LuaScope</a></code> setting 
-for your Lua scripts can be essential to your server's 
-performance. By default, the scope is set to <code>once</code>, which means 
-that every call to a Lua script will spawn a new Lua state that handles that 
-script and is destroyed immediately after. This option keeps the memory 
-footprint of mod_lua low, but also affects the processing speed of a request. 
-If you have the memory to spare, you can set the scope to <code>thread</code>, 
-which will make mod_lua spawn a Lua state that lasts the entirity of a thread's 
-lifetime, speeding up request processing by 2-3 times. Since mod_lua will create 
-a state for each script, this may be an expensive move, memory-wise, so to 
-compromise between speed and memory usage, you can choose the <code>server</code> 
-option to create a pool of Lua states to be used. Each request for a Lua script or 
-a hook function will then acquire a state from the pool and release it back when it's 
-done using it, allowing you to still gain a significant performance increase, while 
+Setting the right <code class="directive"><a href="../mod/mod_lua.html#luascope">LuaScope</a></code> setting
+for your Lua scripts can be essential to your server's
+performance. By default, the scope is set to <code>once</code>, which means
+that every call to a Lua script will spawn a new Lua state that handles that
+script and is destroyed immediately after. This option keeps the memory
+footprint of mod_lua low, but also affects the processing speed of a request.
+If you have the memory to spare, you can set the scope to <code>thread</code>,
+which will make mod_lua spawn a Lua state that lasts the entirity of a thread's
+lifetime, speeding up request processing by 2-3 times. Since mod_lua will create
+a state for each script, this may be an expensive move, memory-wise, so to
+compromise between speed and memory usage, you can choose the <code>server</code>
+option to create a pool of Lua states to be used. Each request for a Lua script or
+a hook function will then acquire a state from the pool and release it back when it's
+done using it, allowing you to still gain a significant performance increase, while
 keeping your memory footprint low. Some examples of possible settings are:
 </p>
 <pre class="prettyprint lang-config">LuaScope once
@@ -93,36 +93,36 @@ LuaScope thread
 LuaScope server 5 40</pre>
 
 <p>
-As a general rule of thumb: If your server has none to low usage, use <code>once</code> 
-or <code>request</code>, if your server has low to medium usage, use the <code>server</code> 
-pool, and if it has high usage, use the <code>thread</code> setting. As your server's 
-load increases, so will the number of states being actively used, and having your scope 
+As a general rule of thumb: If your server has none to low usage, use <code>once</code>
+or <code>request</code>, if your server has low to medium usage, use the <code>server</code>
+pool, and if it has high usage, use the <code>thread</code> setting. As your server's
+load increases, so will the number of states being actively used, and having your scope
 set to <code>once/request/conn</code> will stop being beneficial to your memory footprint.
 </p>
 <p>
-<strong>Note:</strong> The <code>min</code> and <code>max</code> settings for the 
-<code>server</code> scope denotes the minimum and maximum states to keep in a pool per 
+<strong>Note:</strong> The <code>min</code> and <code>max</code> settings for the
+<code>server</code> scope denotes the minimum and maximum states to keep in a pool per
 server <em>process</em>, so keep this below your <code>ThreadsPerChild</code> limit.
 </p>
 
 
 <h3>Using code caching</h3>
 <p>
-By default, <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> stats each Lua script to determine whether a reload 
-(and thus, a re-interpretation and re-compilation) of a script is required. This is managed 
-through the <code class="directive"><a href="../mod/mod_lua.html#luacodecache">LuaCodeCache</a></code> directive. If you are running 
-your scripts on a production server, and you do not need to update them regularly, it may be 
-advantageous to set this directive to the <code>forever</code> value, which will cause mod_lua 
-to skip the stat process and always reuse the compiled byte-code from the first access to the 
-script, thus speeding up the processing. For Lua hooks, this can prove to increase peformance, 
-while for scripts handled by the <code>lua-script</code> handler, the increase in performance 
+By default, <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> stats each Lua script to determine whether a reload
+(and thus, a re-interpretation and re-compilation) of a script is required. This is managed
+through the <code class="directive"><a href="../mod/mod_lua.html#luacodecache">LuaCodeCache</a></code> directive. If you are running
+your scripts on a production server, and you do not need to update them regularly, it may be
+advantageous to set this directive to the <code>forever</code> value, which will cause mod_lua
+to skip the stat process and always reuse the compiled byte-code from the first access to the
+script, thus speeding up the processing. For Lua hooks, this can prove to increase peformance,
+while for scripts handled by the <code>lua-script</code> handler, the increase in performance
 may be negligible, as files httpd will stat the files regardless.
 </p>
 
 
 <h3>Keeping the scope clean</h3>
 <p>
-For maximum performance, it is generally recommended that any initialization of libraries, 
+For maximum performance, it is generally recommended that any initialization of libraries,
 constants and master tables be kept outside the handle's scope:
 </p>
 <pre class="prettyprint lang-lua">--[[ This is good practice ]]--
@@ -151,10 +151,10 @@ end</pre>
 <div class="section">
 <h2><a name="basic_remap" id="basic_remap">Example 1: A basic remapping module</a></h2>
 <p>
-    These first examples show how mod_lua can be used to rewrite URIs in the same 
-    way that one could do using <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> or 
-    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, but with more clarity 
-    on how the decision-making takes place, as well as allowing for more complex 
+    These first examples show how mod_lua can be used to rewrite URIs in the same
+    way that one could do using <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> or
+    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, but with more clarity
+    on how the decision-making takes place, as well as allowing for more complex
     decisions than would otherwise be allowed with said directives.
 </p>
 
@@ -184,9 +184,9 @@ end</pre>
 
 <pre class="prettyprint lang-lua">--[[
     Advanced remap example.
-    This example will evaluate some conditions, and based on that, 
+    This example will evaluate some conditions, and based on that,
     remap a file to one of two destinations, using a rewrite map.
-    This is similar to mixing AliasMatch and ProxyPass, but 
+    This is similar to mixing AliasMatch and ProxyPass, but
     without them clashing in any way. Assuming we are on example.com, then:
 
     http://example.com/photos/test.png will be rewritten as /uploads/www/test.png
@@ -195,8 +195,8 @@ end</pre>
 ]]--
 
 local map = {
-      photos = {   
-                   source = [[^/photos/(.+)\.png$]], 
+      photos = {
+                   source = [[^/photos/(.+)\.png$]],
                    destination = [[/uploads/www/$1.png]],
                    proxy = false
                 },
@@ -210,7 +210,7 @@ local map = {
 function interpolateString(s,v)
     return s:gsub("%$(%d+)", function(a) return v[tonumber(a)] end)
 end
-        
+
 function remap(r)
     -- browse through the rewrite map
     for key, entry in pairs(map) do
@@ -239,11 +239,11 @@ bla bla
 <div class="section">
 <h2><a name="mass_vhost" id="mass_vhost">Example 2: Mass virtual hosting</a></h2>
 <p>
-    As with simple and advanced rewriting, you can use mod_lua for dynamically 
-    assigning a hostname to a specific document root, much like 
-    <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> does, but with more control over what goes 
-    where. This could be as simple as a table holding the information about which 
-    host goes into which folder, or more advanced, using a database holding the 
+    As with simple and advanced rewriting, you can use mod_lua for dynamically
+    assigning a hostname to a specific document root, much like
+    <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> does, but with more control over what goes
+    where. This could be as simple as a table holding the information about which
+    host goes into which folder, or more advanced, using a database holding the
     document roots of each hostname.
 </p>
 
@@ -254,7 +254,7 @@ bla bla
 
 <pre class="prettyprint lang-lua">--[[
     Simple mass vhost script
-    This example will check a map for a virtual host and rewrite filename and 
+    This example will check a map for a virtual host and rewrite filename and
     document root accordingly.
 ]]--
 
@@ -307,13 +307,13 @@ function query_vhosts(r)
         end
         db:close()
     end
-    if cached_vhosts[host] then 
+    if cached_vhosts[host] then
         return cached_vhosts[host].destination
     else
         return nil
     end
 end
-        
+
 function mass_vhost(r)
     -- Check whether the hostname is in our database
     local destination = query_vhosts(r)
@@ -336,15 +336,15 @@ end</pre>
 <div class="section">
 <h2><a name="basic_auth" id="basic_auth">Example 3: A basic authorization hook</a></h2>
 <p>
-    With the authorization hooks, you can add custom auth phases to your request 
-    processing, allowing you to either add new requirements that were not previously 
-    supported by httpd, or tweaking existing ones to accommodate your needs. 
+    With the authorization hooks, you can add custom auth phases to your request
+    processing, allowing you to either add new requirements that were not previously
+    supported by httpd, or tweaking existing ones to accommodate your needs.
 </p>
 <pre class="prettyprint lang-config">LuaHookAuthChecker /path/too/foo.lua check_auth</pre>
 
 
 
-<pre class="prettyprint lang-lua">--[[ 
+<pre class="prettyprint lang-lua">--[[
      A simple authentication hook that checks a table containing usernames and
      passwords of two accounts.
 ]]--
@@ -385,7 +385,7 @@ end</pre>
 
 
 
-<pre class="prettyprint lang-lua">--[[ 
+<pre class="prettyprint lang-lua">--[[
      An advanced authentication checker with a database backend,
      caching account entries for 1 minute
 ]]--
@@ -416,13 +416,13 @@ function fetch_password(user)
         end
         db:close()
     end
-    if accounts[user] then 
+    if accounts[user] then
         return accounts[user].password
     else
         return nil
     end
 end
-    
+
 -- The authentication hook
 function check_auth(r)
     local user, pass = parse_auth(r.headers_in['Authorization'])
@@ -450,9 +450,9 @@ end</pre>
 <div class="section">
 <h2><a name="authz" id="authz">Example 4: Authorization using LuaAuthzProvider</a></h2>
 <p>
-    If you require even more advanced control over your authorization phases, 
-    you can add custom authz providers to help you manage your server. The 
-    example below shows you how you can split a single htpasswd file into 
+    If you require even more advanced control over your authorization phases,
+    you can add custom authz providers to help you manage your server. The
+    example below shows you how you can split a single htpasswd file into
     groups with different permissions:
 </p>
 <pre class="prettyprint lang-config">LuaAuthzProvider rights /path/to/lua/script.lua rights_handler
@@ -464,8 +464,8 @@ end</pre>
 &lt;/Directory&gt;</pre>
 
 
-<pre class="prettyprint lang-lua">--[[ 
-     This script has two user groups; members and admins, and whichever 
+<pre class="prettyprint lang-lua">--[[
+     This script has two user groups; members and admins, and whichever
      is refered to by the "Require rights" directive is checked to see
      if the authenticated user belongs to this group.
 ]]--
@@ -497,16 +497,16 @@ end</pre>
 <div class="section">
 <h2><a name="loadbalancing" id="loadbalancing">Example 5: A rudimentary load balancer</a></h2>
 <p>
-    This is an example of how you can create a load balancing mechanism. 
-    In this example, we will be setting/getting the number of requests served 
-    by each backend using IVM variables, and preferring the backend with least 
+    This is an example of how you can create a load balancing mechanism.
+    In this example, we will be setting/getting the number of requests served
+    by each backend using IVM variables, and preferring the backend with least
     requests served in total:
 </p>
 <pre class="prettyprint lang-config">LuaHookTranslateName /path/to/script.lua proxy_handler</pre>
 
 
-<pre class="prettyprint lang-lua">--[[ 
-     This script uses a basic IVM table to determine where to 
+<pre class="prettyprint lang-lua">--[[
+     This script uses a basic IVM table to determine where to
      send the request.
 ]]--
 
index c85b445a605a12fe2a386f54b4c7d5c163567a61..687071598737defaffe1cc11bf519ece75f3e17f 100644 (file)
@@ -44,8 +44,8 @@ Stuff about what <module>mod_lua</module> is goes here.
 </section>
 <section id="contents"><title>What we will be discussing in this document</title>
 <p>
-This document will discuss several cases where <module>mod_lua</module> can be used 
-to either ease up a phase of the request processing or create more transparency in 
+This document will discuss several cases where <module>mod_lua</module> can be used
+to either ease up a phase of the request processing or create more transparency in
 the logic behind a decision made in a phase.
 </p>
 
@@ -53,12 +53,12 @@ the logic behind a decision made in a phase.
 
 <section id="prerequisites"><title>Prerequisites</title>
 <p>
-First and foremost, you are expected to have a basic knowledge of how the Lua 
-programming language works. In most cases, we will try to be as pedagogical 
-as possible and link to documents describing the functions used in the 
-examples, but there are also many cases where it is necessary to either 
-just assume that "it works" or do some digging yourself into what the hows 
-and whys of various function calls. 
+First and foremost, you are expected to have a basic knowledge of how the Lua
+programming language works. In most cases, we will try to be as pedagogical
+as possible and link to documents describing the functions used in the
+examples, but there are also many cases where it is necessary to either
+just assume that "it works" or do some digging yourself into what the hows
+and whys of various function calls.
 </p>
 
 
@@ -69,20 +69,20 @@ and whys of various function calls.
 
 <section><title>Setting a scope for Lua states</title>
 <p>
-Setting the right <directive module="mod_lua">LuaScope</directive> setting 
-for your Lua scripts can be essential to your server's 
-performance. By default, the scope is set to <code>once</code>, which means 
-that every call to a Lua script will spawn a new Lua state that handles that 
-script and is destroyed immediately after. This option keeps the memory 
-footprint of mod_lua low, but also affects the processing speed of a request. 
-If you have the memory to spare, you can set the scope to <code>thread</code>, 
-which will make mod_lua spawn a Lua state that lasts the entirity of a thread's 
-lifetime, speeding up request processing by 2-3 times. Since mod_lua will create 
-a state for each script, this may be an expensive move, memory-wise, so to 
-compromise between speed and memory usage, you can choose the <code>server</code> 
-option to create a pool of Lua states to be used. Each request for a Lua script or 
-a hook function will then acquire a state from the pool and release it back when it's 
-done using it, allowing you to still gain a significant performance increase, while 
+Setting the right <directive module="mod_lua">LuaScope</directive> setting
+for your Lua scripts can be essential to your server's
+performance. By default, the scope is set to <code>once</code>, which means
+that every call to a Lua script will spawn a new Lua state that handles that
+script and is destroyed immediately after. This option keeps the memory
+footprint of mod_lua low, but also affects the processing speed of a request.
+If you have the memory to spare, you can set the scope to <code>thread</code>,
+which will make mod_lua spawn a Lua state that lasts the entirity of a thread's
+lifetime, speeding up request processing by 2-3 times. Since mod_lua will create
+a state for each script, this may be an expensive move, memory-wise, so to
+compromise between speed and memory usage, you can choose the <code>server</code>
+option to create a pool of Lua states to be used. Each request for a Lua script or
+a hook function will then acquire a state from the pool and release it back when it's
+done using it, allowing you to still gain a significant performance increase, while
 keeping your memory footprint low. Some examples of possible settings are:
 </p>
 <highlight language="config">
@@ -91,36 +91,36 @@ LuaScope thread
 LuaScope server 5 40
 </highlight>
 <p>
-As a general rule of thumb: If your server has none to low usage, use <code>once</code> 
-or <code>request</code>, if your server has low to medium usage, use the <code>server</code> 
-pool, and if it has high usage, use the <code>thread</code> setting. As your server's 
-load increases, so will the number of states being actively used, and having your scope 
+As a general rule of thumb: If your server has none to low usage, use <code>once</code>
+or <code>request</code>, if your server has low to medium usage, use the <code>server</code>
+pool, and if it has high usage, use the <code>thread</code> setting. As your server's
+load increases, so will the number of states being actively used, and having your scope
 set to <code>once/request/conn</code> will stop being beneficial to your memory footprint.
 </p>
 <p>
-<strong>Note:</strong> The <code>min</code> and <code>max</code> settings for the 
-<code>server</code> scope denotes the minimum and maximum states to keep in a pool per 
+<strong>Note:</strong> The <code>min</code> and <code>max</code> settings for the
+<code>server</code> scope denotes the minimum and maximum states to keep in a pool per
 server <em>process</em>, so keep this below your <code>ThreadsPerChild</code> limit.
 </p>
 </section>
 
 <section><title>Using code caching</title>
 <p>
-By default, <module>mod_lua</module> stats each Lua script to determine whether a reload 
-(and thus, a re-interpretation and re-compilation) of a script is required. This is managed 
-through the <directive module="mod_lua">LuaCodeCache</directive> directive. If you are running 
-your scripts on a production server, and you do not need to update them regularly, it may be 
-advantageous to set this directive to the <code>forever</code> value, which will cause mod_lua 
-to skip the stat process and always reuse the compiled byte-code from the first access to the 
-script, thus speeding up the processing. For Lua hooks, this can prove to increase peformance, 
-while for scripts handled by the <code>lua-script</code> handler, the increase in performance 
+By default, <module>mod_lua</module> stats each Lua script to determine whether a reload
+(and thus, a re-interpretation and re-compilation) of a script is required. This is managed
+through the <directive module="mod_lua">LuaCodeCache</directive> directive. If you are running
+your scripts on a production server, and you do not need to update them regularly, it may be
+advantageous to set this directive to the <code>forever</code> value, which will cause mod_lua
+to skip the stat process and always reuse the compiled byte-code from the first access to the
+script, thus speeding up the processing. For Lua hooks, this can prove to increase peformance,
+while for scripts handled by the <code>lua-script</code> handler, the increase in performance
 may be negligible, as files httpd will stat the files regardless.
 </p>
 </section>
 
 <section><title>Keeping the scope clean</title>
 <p>
-For maximum performance, it is generally recommended that any initialization of libraries, 
+For maximum performance, it is generally recommended that any initialization of libraries,
 constants and master tables be kept outside the handle's scope:
 </p>
 <highlight language="lua">
@@ -151,10 +151,10 @@ end
 
 <section id="basic_remap"><title>Example 1: A basic remapping module</title>
 <p>
-    These first examples show how mod_lua can be used to rewrite URIs in the same 
-    way that one could do using <directive module="mod_alias">Alias</directive> or 
-    <directive module="mod_rewrite">RewriteRule</directive>, but with more clarity 
-    on how the decision-making takes place, as well as allowing for more complex 
+    These first examples show how mod_lua can be used to rewrite URIs in the same
+    way that one could do using <directive module="mod_alias">Alias</directive> or
+    <directive module="mod_rewrite">RewriteRule</directive>, but with more clarity
+    on how the decision-making takes place, as well as allowing for more complex
     decisions than would otherwise be allowed with said directives.
 </p>
 
@@ -187,9 +187,9 @@ end
 <highlight language="lua">
 --[[
     Advanced remap example.
-    This example will evaluate some conditions, and based on that, 
+    This example will evaluate some conditions, and based on that,
     remap a file to one of two destinations, using a rewrite map.
-    This is similar to mixing AliasMatch and ProxyPass, but 
+    This is similar to mixing AliasMatch and ProxyPass, but
     without them clashing in any way. Assuming we are on example.com, then:
 
     http://example.com/photos/test.png will be rewritten as /uploads/www/test.png
@@ -198,8 +198,8 @@ end
 ]]--
 
 local map = {
-      photos = {   
-                   source = [[^/photos/(.+)\.png$]], 
+      photos = {
+                   source = [[^/photos/(.+)\.png$]],
                    destination = [[/uploads/www/$1.png]],
                    proxy = false
                 },
@@ -213,7 +213,7 @@ local map = {
 function interpolateString(s,v)
     return s:gsub("%$(%d+)", function(a) return v[tonumber(a)] end)
 end
-        
+
 function remap(r)
     -- browse through the rewrite map
     for key, entry in pairs(map) do
@@ -245,11 +245,11 @@ bla bla
 
 <section id="mass_vhost"><title>Example 2: Mass virtual hosting</title>
 <p>
-    As with simple and advanced rewriting, you can use mod_lua for dynamically 
-    assigning a hostname to a specific document root, much like 
-    <module>mod_vhost_alias</module> does, but with more control over what goes 
-    where. This could be as simple as a table holding the information about which 
-    host goes into which folder, or more advanced, using a database holding the 
+    As with simple and advanced rewriting, you can use mod_lua for dynamically
+    assigning a hostname to a specific document root, much like
+    <module>mod_vhost_alias</module> does, but with more control over what goes
+    where. This could be as simple as a table holding the information about which
+    host goes into which folder, or more advanced, using a database holding the
     document roots of each hostname.
 </p>
 
@@ -262,7 +262,7 @@ LuaHookTranslateName /path/too/foo.lua mass_vhost
 <highlight language="lua">
 --[[
     Simple mass vhost script
-    This example will check a map for a virtual host and rewrite filename and 
+    This example will check a map for a virtual host and rewrite filename and
     document root accordingly.
 ]]--
 
@@ -316,13 +316,13 @@ function query_vhosts(r)
         end
         db:close()
     end
-    if cached_vhosts[host] then 
+    if cached_vhosts[host] then
         return cached_vhosts[host].destination
     else
         return nil
     end
 end
-        
+
 function mass_vhost(r)
     -- Check whether the hostname is in our database
     local destination = query_vhosts(r)
@@ -348,9 +348,9 @@ end
 
 <section id="basic_auth"><title>Example 3: A basic authorization hook</title>
 <p>
-    With the authorization hooks, you can add custom auth phases to your request 
-    processing, allowing you to either add new requirements that were not previously 
-    supported by httpd, or tweaking existing ones to accommodate your needs. 
+    With the authorization hooks, you can add custom auth phases to your request
+    processing, allowing you to either add new requirements that were not previously
+    supported by httpd, or tweaking existing ones to accommodate your needs.
 </p>
 <highlight language="config">
 LuaHookAuthChecker /path/too/foo.lua check_auth
@@ -358,7 +358,7 @@ LuaHookAuthChecker /path/too/foo.lua check_auth
 
 <!-- BEGIN EXAMPLE CODE -->
 <highlight language="lua">
---[[ 
+--[[
      A simple authentication hook that checks a table containing usernames and
      passwords of two accounts.
 ]]--
@@ -400,7 +400,7 @@ end
 
 <!-- BEGIN EXAMPLE CODE -->
 <highlight language="lua">
---[[ 
+--[[
      An advanced authentication checker with a database backend,
      caching account entries for 1 minute
 ]]--
@@ -431,13 +431,13 @@ function fetch_password(user)
         end
         db:close()
     end
-    if accounts[user] then 
+    if accounts[user] then
         return accounts[user].password
     else
         return nil
     end
 end
-    
+
 -- The authentication hook
 function check_auth(r)
     local user, pass = parse_auth(r.headers_in['Authorization'])
@@ -465,9 +465,9 @@ end
 
 <section id="authz"><title>Example 4: Authorization using LuaAuthzProvider</title>
 <p>
-    If you require even more advanced control over your authorization phases, 
-    you can add custom authz providers to help you manage your server. The 
-    example below shows you how you can split a single htpasswd file into 
+    If you require even more advanced control over your authorization phases,
+    you can add custom authz providers to help you manage your server. The
+    example below shows you how you can split a single htpasswd file into
     groups with different permissions:
 </p>
 <highlight language="config">
@@ -481,8 +481,8 @@ LuaAuthzProvider rights /path/to/lua/script.lua rights_handler
 </highlight>
 
 <highlight language="lua">
---[[ 
-     This script has two user groups; members and admins, and whichever 
+--[[
+     This script has two user groups; members and admins, and whichever
      is refered to by the "Require rights" directive is checked to see
      if the authenticated user belongs to this group.
 ]]--
@@ -515,9 +515,9 @@ end
 
 <section id="loadbalancing"><title>Example 5: A rudimentary load balancer</title>
 <p>
-    This is an example of how you can create a load balancing mechanism. 
-    In this example, we will be setting/getting the number of requests served 
-    by each backend using IVM variables, and preferring the backend with least 
+    This is an example of how you can create a load balancing mechanism.
+    In this example, we will be setting/getting the number of requests served
+    by each backend using IVM variables, and preferring the backend with least
     requests served in total:
 </p>
 <highlight language="config">
@@ -525,8 +525,8 @@ LuaHookTranslateName /path/to/script.lua proxy_handler
 </highlight>
 
 <highlight language="lua">
---[[ 
-     This script uses a basic IVM table to determine where to 
+--[[
+     This script uses a basic IVM table to determine where to
      send the request.
 ]]--
 
index 23b95e002503d84ce5ea01def04c84665083d104..659cdb52dc8c5cbf99b80e61fe1f6b82517925fb 100644 (file)
           late during request processing meaning that directives such as
           <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> and <code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> will not see the
           variables set with it.</li>
-          <li>When the server looks up a path via an internal 
-          <a class="glossarylink" href="./glossary.html#subrequest" title="see glossary">subrequest</a> such as looking 
-          for a <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> 
+
+          <li>When the server looks up a path via an internal
+          <a class="glossarylink" href="./glossary.html#subrequest" title="see glossary">subrequest</a> such as looking
+          for a <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
           or generating a directory listing with <code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code>,
-          per-request environment variables are <em>not</em> inherited in the 
-          subrequest. Additionally, 
+          per-request environment variables are <em>not</em> inherited in the
+          subrequest. Additionally,
           <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
           are not separately evaluated in the subrequest due to the API phases
            <code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</li>
       </a></code> and <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> allows you to still accept
       these headers:</p>
 
-<pre class="prettyprint lang-config"># 
+<pre class="prettyprint lang-config">#
 # The following works around a client sending a broken Accept_Encoding
 # header.
 #
index d4375cf6888cd617d669e8be2291973cbba3021b..3cda1acc64036cc8dd3e52c2c365c0cd0d24e837 100644 (file)
           <directive module="mod_setenvif">SetEnvIf</directive> and <directive
           module="mod_rewrite">RewriteCond</directive> will not see the
           variables set with it.</li>
-          <li>When the server looks up a path via an internal 
-          <glossary ref="subrequest">subrequest</glossary> such as looking 
-          for a <directive module="mod_dir" >DirectoryIndex</directive> 
+
+          <li>When the server looks up a path via an internal
+          <glossary ref="subrequest">subrequest</glossary> such as looking
+          for a <directive module="mod_dir" >DirectoryIndex</directive>
           or generating a directory listing with <module>mod_autoindex</module>,
-          per-request environment variables are <em>not</em> inherited in the 
-          subrequest. Additionally, 
+          per-request environment variables are <em>not</em> inherited in the
+          subrequest. Additionally,
           <directive module="mod_setenvif">SetEnvIf</directive> directives
           are not separately evaluated in the subrequest due to the API phases
            <module>mod_setenvif</module> takes action in.</li>
       these headers:</p>
 
 <highlight language="config">
-# 
+#
 # The following works around a client sending a broken Accept_Encoding
 # header.
 #
index 176ca7b8410961c3f61636e0309674c957482b07..c7b9c81db748bf1602fa2117e1132d686e5d0419 100644 (file)
@@ -514,7 +514,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"</pr
 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">Example expressions</a></h2>
-    
+
        
     <p>The following examples show how expressions might be used to
     evaluate requests:</p>
@@ -533,7 +533,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"</pr
 # Only allow access to this content during business hours
 &lt;Directory "/foo/bar/business"&gt;
     Require expr %{TIME_HOUR} -gt 9 &amp;&amp; %{TIME_HOUR} -lt 17
-&lt;/Directory&gt;     
+&lt;/Directory&gt;
 
 # Check a HTTP header for a list of values
 &lt;If "%{HTTP:X-example-header} in { 'foo', 'bar', 'baz' }"&gt;
index 726ec696bcb566ecdebbd663a9667c666cda25ec..8dd44f200f7911111d64f5fc8ad7f9e5d787819a 100644 (file)
@@ -566,7 +566,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
 </section>
 
 <section id="examples">
-    
+
        <title>Example expressions</title>
     <p>The following examples show how expressions might be used to
     evaluate requests:</p>
@@ -586,7 +586,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
 # Only allow access to this content during business hours
 &lt;Directory "/foo/bar/business"&gt;
     Require expr %{TIME_HOUR} -gt 9 &amp;&amp; %{TIME_HOUR} -lt 17
-&lt;/Directory&gt;     
+&lt;/Directory&gt;
 
 # Check a HTTP header for a list of values
 &lt;If "%{HTTP:X-example-header} in { 'foo', 'bar', 'baz' }"&gt;
index fd37d5603efac718c8d0fd769a073c6250c417d1..0600d3f2030087365301ce54cbbc67418de1da4f 100644 (file)
@@ -156,8 +156,3 @@ AddHandler add-footer .html
     as to not invade the media type name-space.</p>
   </section>
 </manualpage>
-
-
-
-
-
index 4fe15647c715bdc2f115271daca09884a3322b56..7817bdd1df5ca4edfb8e534dcb26ec6673bd091d 100644 (file)
@@ -86,7 +86,7 @@ Require ip ip.address</pre>
     syntax.</p>
 
     <p>You can insert <code>not</code> to negate a particular requirement.
-    Note, that since a <code>not</code> is a negation of a value, it cannot 
+    Note, that since a <code>not</code> is a negation of a value, it cannot
     be used by itself to allow or deny a request, as <em>not true</em>
     does not constitute <em>false</em>. Thus, to deny a visit using a negation,
     the block must have one element that evaluates as true or false.
@@ -101,11 +101,12 @@ Require ip ip.address</pre>
 
 
     <p>Visitors coming from that address (<code>10.252.46.165</code>)
-    will not be able to see the content covered by this directive. If, 
-    instead, you have a machine name, rather than an IP address, you 
+    will not be able to see the content covered by this directive. If,
+    instead, you have a machine name, rather than an IP address, you
     can use that.</p>
 
-    <pre class="prettyprint lang-config">Require not host <var>host.example.com</var></pre>
+    <pre class="prettyprint lang-config">Require not host <var>host.example.com</var>
+    </pre>
 
 
     <p>And, if you'd like to block access from an entire domain,
@@ -163,9 +164,9 @@ Require not host gov</pre>
     and 6am, you can do this using <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
 
     <pre class="prettyprint lang-config">RewriteEngine On
-RewriteCond %{TIME_HOUR} &gt;=20 [OR]
-RewriteCond %{TIME_HOUR} &lt;07
-RewriteRule ^/fridge - [F]</pre>
+RewriteCond "%{TIME_HOUR}" "&gt;=20" [OR]
+RewriteCond "%{TIME_HOUR}" "&lt;07"
+RewriteRule "^/fridge"     "-"       [F]</pre>
 
 
     <p>This will return a 403 Forbidden response for any request after 8pm
index 010d95d342ff231d7389f26c8380f9925cba4498..0e1e635021d70c6047616965516d3edea9797872 100644 (file)
@@ -24,6 +24,8 @@
 <p><span>Langues Disponibles: </span><a href="../en/howto/access.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
 <a href="../fr/howto/access.html" title="Français">&nbsp;fr&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 
     <p>Le contrôle d'accès fait référence à tout concept de contrôle
     d'accès à une ressource quelconque. Il est distinct du processus d'<a href="auth.html">authentification et d'autorisation</a>.</p>
index f2242a19159e6eedace2877f06e1eb2ffd9d8138..244bc1f1e75d6d8519edf35e76e6aea325c0459b 100644 (file)
@@ -172,9 +172,9 @@ Require expr %{HTTP_USER_AGENT} != 'BadBot'
 
     <highlight language="config">
 RewriteEngine On
-RewriteCond %{TIME_HOUR} &gt;=20 [OR]
-RewriteCond %{TIME_HOUR} &lt;07
-RewriteRule ^/fridge - [F]
+RewriteCond "%{TIME_HOUR}" "&gt;=20" [OR]
+RewriteCond "%{TIME_HOUR}" "&lt;07"
+RewriteRule "^/fridge"     "-"       [F]
     </highlight>
 
     <p>This will return a 403 Forbidden response for any request after 8pm
index 518d9f8f3cc408e0363d29dfac3f2f916b352319..28088c4cc0c62e7c3203098a8d47ddb42ebb498e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- English Revision : 1666025 -->
+<!-- English Revision: 1666025:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 605822ecb4ad2ddd85c3d88c12c1455c27ccb6e8..c42bb44f517cde9ccda1fca0ef7c00e5430cacf4 100644 (file)
@@ -8,6 +8,6 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">fr</variant>
   </variants>
 </metafile>
index b22c1cbc86469b2fdc32fdb645d888bd0b043cf7..023538b83d7b60abd115c9bc1515eb36892903a8 100644 (file)
@@ -506,13 +506,15 @@ Require group GroupName</pre>
         that will be called during the authorization stage of the request
         processing. For example:</p>
 
-        <pre class="prettyprint lang-config">Require ip <var>address</var></pre>
+        <pre class="prettyprint lang-config">Require ip <var>address</var>
+        </pre>
 
 
         <p>where <var>address</var> is an IP address (or a partial IP
         address) or:</p>
 
-        <pre class="prettyprint lang-config">Require host <var>domain_name</var></pre>
+        <pre class="prettyprint lang-config">Require host <var>domain_name</var>
+        </pre>
 
 
         <p>where <var>domain_name</var> is a fully qualified domain name
index dc50e4cc02b5f2337a971d09546a04346d796721..f80cb393f105ee6f20e25dcf9f18f91bfc2d3448 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1599841:1673582 (outdated) -->
+<!-- English Revision: 1599841:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviwed by : Vincent Deffontaines -->
 
index 32cb4bbe6b75c7a0ab7c370cf5fa498d8c4d4345..578700dd4dad44fe9baf055ebd602242f70ee620 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 479777:1673582 (outdated) -->
+<!-- English Revision: 479777:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 41bb8d37f0e23d199db0fea1264d999bdbac4fb0..7d735d45e39f30d38ee959dca30803b53f9d40a0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='EUC-KR' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1673582 (outdated) -->
+<!-- English Revision: 105989:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index d4484ed0d2767fc795f56e869cf191053708fc31..ee7be1482530e5ac681b29cecfdcf298ba571c7e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1070891:1673582 (outdated) -->
+<!-- English Revision: 1070891:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Umut Samuk <umut belgeler.org>
    Reviewed by: Nilgün Belma Bugüner <nilgun belgeler.org>
index d3aaa004b1f985bc67c2070cf1d3b8c65a8b12d0..197d3e1c0e1160d226547220bf70d28f2c18f2ae 100644 (file)
@@ -577,4 +577,3 @@ foreach my $key (keys %ENV) {
     have found a problem in the Apache source code.</p>
   </section>
 </manualpage>
-
index ffebcad7484229c53f93140b28377b532f035a92..8bfc0088973d3b4a35e3b1529715207cef50ab0e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1649338:1673892 (outdated) -->
+<!-- English Revision: 1649338:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 95f63feb355b9a9e55efc97f6990f7d68ee081f6..130259a8a195b603d9006257ea863614f2dcb59e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1591191:1673892 (outdated) -->
+<!-- English Revision: 1591191:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 29a37adbf64ab1154c57b6d0308979d6046e4e59..05b1c4fe7389110f2da12e5a1986a008ec9a7d0e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='EUC-KR' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1673892 (outdated) -->
+<!-- English Revision: 151408:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 63d212667a934443164fe5003a3a430a3f8c275a..23ccd490fb0c615308584ef78415204b0d5bc719 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1673892 (outdated) -->
+<!-- English Revision: 1174747:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index d36860e04b1b29979d08860df2c59c885dbdbb49..b855f8ce74cb62b6d48c5d2ba15154a80d928145 100644 (file)
@@ -24,8 +24,8 @@
 <p><span>Available Languages: </span><a href="../en/misc/perf-scaling.html" title="English">&nbsp;en&nbsp;</a></p>
 </div>
 
-        
-        <p>The Performance Tuning page in the Apache 1.3 documentation says: 
+
+        <p>The Performance Tuning page in the Apache 1.3 documentation says:
         </p>
         <blockquote><p>
             "Apache is a general webserver, which is designed to be
             The classic brochureware site is alive and well, but the web has
             grown up substantially as a computing application platform and
             webmasters may find themselves running dynamic content in Perl, PHP
-            or Java, all of which take a toll on performance. 
+            or Java, all of which take a toll on performance.
         </p>
         <p>Therefore, in spite of strides forward in machine speed and
             bandwidth allowances, web server performance and web application
             performance remain areas of concern. In this documentation several
-            aspects of web server performance will be discussed. 
+            aspects of web server performance will be discussed.
         </p>
-        
+
     </div>
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#what-will-and-will-not-be-discussed">What Will and Will Not Be Discussed
         </a></li>
@@ -76,9 +76,9 @@
             server hardware, so the existing infrastructure will have to do the
             job. You have no desire to compile your own Apache, or to recompile
             the operating system kernel. We do assume, though, that you have
-            some familiarity with the Apache httpd configuration file. 
+            some familiarity with the Apache httpd configuration file.
         </p>
-        
+
     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="monitoring-your-server" id="monitoring-your-server">Monitoring Your Server
             find out how your system is currently performing. By monitoring
             your server under real-world load, or artificially generated load,
             you can extrapolate its behavior under stress, such as when your
-            site is mentioned on Slashdot. 
+            site is mentioned on Slashdot.
         </p>
-        
-        
+
+
         <h3><a name="monitoring-tools" id="monitoring-tools">Monitoring Tools
             </a></h3>
             
-            
-            
+
+
             <h4><a name="top" id="top">top
                 </a></h4>
                 
                     ID, priority and nice values, memory footprint, and
                     percentage CPU usage. The following example shows multiple
                     httpd processes (with MPM worker and event) running on an
-                    Linux (Xen) system: 
+                    Linux (Xen) system:
                 </p>
-                
+
                 <div class="example"><pre>top - 23:10:58 up 71 days,  6:14,  4 users,  load average: 0.25, 0.53, 0.47
 Tasks: 163 total,   1 running, 162 sleeping,   0 stopped,   0 zombie
 Cpu(s): 11.6%us,  0.7%sy,  0.0%ni, 87.3%id,  0.4%wa,  0.0%hi,  0.0%si,  0.0%st
@@ -149,7 +149,7 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
    68 root      15  -5     0    0    0 S    0  0.0   0:06.28 kblockd/0
    69 root      15  -5     0    0    0 S    0  0.0   0:00.04 kblockd/1
    70 root      15  -5     0    0    0 S    0  0.0   0:00.04 kblockd/2</pre></div>
-                
+
                 <p>Top is a wonderful tool even though it's slightly resource
                     intensive (when running, its own process is usually in the
                     top ten CPU gluttons). It is indispensable in determining
@@ -157,7 +157,7 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
                     determining how many server processes you can run on your
                     machine. How to do this is described in <a href="#sizing-maxClients">sizing MaxClients</a>.
                     Top is, however, an interactive tool and running it
-                    continuously has few if any advantages. 
+                    continuously has few if any advantages.
                 </p>
             
             <h4><a name="free" id="free">free
@@ -169,16 +169,16 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
                     both with and without this cache. The free command can be
                     used to find out how much memory the operating system is
                     using, as described in the paragraph <a href="#sizing-maxClients">sizing MaxClients</a>.
-                    The output of free looks like this: 
+                    The output of free looks like this:
                 </p>
-                
+
                 <div class="example"><pre>sctemme@brutus:~$ free
               total       used     free   shared    buffers    cached
 Mem:        4026028    3901892   124136         0    253144    841044
 -/+ buffers/cache:     2807704  1218324
 Swap:       3903784      12540  3891244</pre></div>
             
-            
+
             <h4><a name="vmstat" id="vmstat">vmstat
                 </a></h4>
                 
@@ -193,38 +193,38 @@ Swap:       3903784      12540  3891244</pre></div>
                     much memory is swapped in and out each second, the number
                     of processes currently running and sleeping, the number of
                     interrupts and context switches per second and the usage
-                    percentages of the CPU. 
+                    percentages of the CPU.
                 </p>
                 <p>
-                    The following is <code>vmstat</code> output of an idle server: 
+                    The following is <code>vmstat</code> output of an idle server:
                 </p>
-                
-                
+
+
                 <div class="example"><pre>[sctemme@GayDeceiver sctemme]$ vmstat 5 3
    procs                      memory     swap         io    system        cpu
  r b w     swpd   free   buff cache si so       bi    bo in     cs us  sy id
  0 0 0        0 186252   6688 37516    0    0   12     5 47    311  0   1 99
  0 0 0        0 186244   6696 37516    0    0    0    16 41    314  0   0 100
  0 0 0        0 186236   6704 37516    0    0    0     9 44    314  0   0 100</pre></div>
-                
+
                 <p>And this is output of a server that is under a load of one
-                    hundred simultaneous connections fetching static content: 
+                    hundred simultaneous connections fetching static content:
                 </p>
-                
+
                 <div class="example"><pre>[sctemme@GayDeceiver sctemme]$ vmstat 5 3
    procs                      memory     swap    io      system       cpu
  r b w     swpd   free   buff cache si so     bi bo   in     cs us sy  id
  1 0 1        0 162580   6848 40056    0    0 11  5 150     324  1  1  98
  6 0 1        0 163280   6856 40248    0    0  0 66 6384 1117   42 25  32
 11 0 0        0 162780   6864 40436    0    0  0 61 6309 1165   33 28  40</pre></div>
-                
+
                 <p>The first line gives averages since the last reboot. The
                     subsequent lines give information for five second
                     intervals. The second argument tells vmstat to generate
-                    three reports and then exit. 
+                    three reports and then exit.
                 </p>
-                
-                
+
+
             
             <h4><a name="se-toolkit" id="se-toolkit">SE Toolkit
                 </a></h4>
@@ -238,7 +238,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     orange or red indicators when utilization of various parts
                     of the system rises above certain thresholds. Another
                     included script, Virtual Adrian, applies performance tuning
-                    metrics according to. 
+                    metrics according to.
                 </p>
                 <p>The SE Toolkit has drifted around for a while and has had
                     several owners since its inception. It seems that it has
@@ -248,20 +248,20 @@ Swap:       3903784      12540  3891244</pre></div>
                     code. SE Toolkit author Richard Pettit has started a new
                     company, Captive Metrics4 that plans to bring to market a
                     multiplatform monitoring tool built on the same principles
-                    as SE Toolkit, written in Java. 
+                    as SE Toolkit, written in Java.
                 </p>
-                
-                
+
+
             
             <h4><a name="dtrace" id="dtrace">DTrace
                 </a></h4>
                 
                 <p>Given that DTrace is available for Solaris, FreeBSD and OS
                     X, it might be worth exploring it. There's also
-                    mod_dtrace available for httpd. 
+                    mod_dtrace available for httpd.
                 </p>
-                
-                
+
+
             
             <h4><a name="mod_status" id="mod_status">mod_status
                 </a></h4>
@@ -277,10 +277,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     directive in your <code>httpd.conf</code>,
                     the <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>
                     page will give you more information at the cost of a little
-                    extra work per request. 
+                    extra work per request.
                 </p>
-                
-                
+
+
             
         
         <h3><a name="web-server-log-files" id="web-server-log-files">Web Server Log Files
@@ -295,10 +295,10 @@ Swap:       3903784      12540  3891244</pre></div>
                 from. Historical log file data can give you invaluable insight
                 into trends in access to your server, which allows you to
                 predict when your performance needs will overtake your server
-                capacity. 
+                capacity.
             </p>
-            
-            
+
+
             <h4><a name="ErrorLog" id="ErrorLog">Error Log
                 </a></h4>
                 
@@ -311,7 +311,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     redirected to the error logfile, so any error encountered
                     by httpd after it opens its logfiles will appear in this
                     log. This makes it good practice to review the error log
-                    frequently. 
+                    frequently.
                 </p>
                 <p>Before Apache httpd opens its logfiles, any errors will be
                     written to the stderr stream. If you start httpd manually,
@@ -323,7 +323,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     file is usually a good bet. On Windows, early error
                     messages are written to the Applications Event Log, which
                     can be viewed through the Event Viewer in Administrative
-                    Tools. 
+                    Tools.
                 </p>
                 <p>
                     The Error Log is configured through the <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code>
@@ -335,7 +335,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     directive can also be used in virtual host containers. The
                     error log of a virtual host receives only log messages
                     specific to that virtual host, such as authentication
-                    failures and 'File not Found' errors. 
+                    failures and 'File not Found' errors.
                 </p>
                 <p>On a server that is visible to the Internet, expect to see a
                     lot of exploit attempt and worm attacks in the error log. A
@@ -345,12 +345,12 @@ Swap:       3903784      12540  3891244</pre></div>
                     port, regardless of which server is actually running or
                     what applications might be installed. You could block these
                     attempts using a firewall or <a href="http://www.modsecurity.org/">mod_security</a>,
-                    but this falls outside the scope of this discussion. 
+                    but this falls outside the scope of this discussion.
                 </p>
                 <p>
                     The <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>
                     directive determines the level of detail included in the
-                    logs. There are eight log levels as described here: 
+                    logs. There are eight log levels as described here:
                 </p>
                 <table>
                     <tr>
@@ -430,18 +430,18 @@ Swap:       3903784      12540  3891244</pre></div>
                     not be run on debug, but increasing the level of detail in
                     the error log can be useful during troubleshooting.
                     Starting with 2.3.8 <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>
-                    can be specified on a per module basis: 
+                    can be specified on a per module basis:
                 </p>
-                
+
                 <pre class="prettyprint lang-config">LogLevel debug mod_ssl:warn</pre>
 
-                
+
                 <p>
                   This puts all of the server in debug mode, except for
-                  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>, which tends to be very noisy. 
+                  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>, which tends to be very noisy.
                 </p>
-                
-                
+
+
             
             <h4><a name="AccessLog" id="AccessLog">Access Log
                 </a></h4>
@@ -454,7 +454,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     manual. This file exists by default for the main server and can be
                     configured per virtual host by using the <code class="directive"><a href="../mod/mod_log_config.html#transferlog">TransferLog</a></code>
                     or <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>
-                    configuration directive. 
+                    configuration directive.
                 </p>
                 <p>The access logs can be analyzed with any of several free and
                     commercially available programs. Popular free analysis
@@ -462,10 +462,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     be done offline so the web server machine is not burdened
                     by processing the log files. Most log analysis packages
                     understand the Common Log Format. The fields in the log
-                    lines are explained in in the following: 
+                    lines are explained in in the following:
                 </p>
-                
-                
+
+
                 <div class="example"><pre>195.54.228.42 - - [24/Mar/2007:23:05:11 -0400] "GET /sander/feed/ HTTP/1.1" 200 9747
 64.34.165.214 - - [24/Mar/2007:23:10:11 -0400] "GET /sander/feed/atom HTTP/1.1" 200 9068
 60.28.164.72 - - [24/Mar/2007:23:11:41 -0400] "GET / HTTP/1.0" 200 618
@@ -473,7 +473,7 @@ Swap:       3903784      12540  3891244</pre></div>
 85.140.155.56 - - [24/Mar/2007:23:14:15 -0400] "GET /sander/2006/09/21/gore-tax-pollution/ HTTP/1.1" 200 15147
 74.6.72.187 - - [24/Mar/2007:23:18:11 -0400] "GET /sander/2006/09/27/44/ HTTP/1.0" 200 14172
 74.6.72.229 - - [24/Mar/2007:23:24:22 -0400] "GET /sander/2006/11/21/os-java/ HTTP/1.0" 200 13457</pre></div>
-                
+
                 <table>
                     <tr>
                         <td>
@@ -564,7 +564,7 @@ Swap:       3903784      12540  3891244</pre></div>
                         </td>
                     </tr>
                 </table>
-                
+
             
             <h4><a name="rotating-log-files" id="rotating-log-files">Rotating Log Files
                 </a></h4>
@@ -576,17 +576,17 @@ Swap:       3903784      12540  3891244</pre></div>
                     file analysis should not be performed on files to which the
                     server is actively writing. Periodic logfile rotation helps
                     keep the analysis job manageable, and allows you to keep a
-                    closer eye on usage trends. 
+                    closer eye on usage trends.
                 </p>
                 <p>On unix systems, you can simply rotate logfiles by giving
                     the old file a new name using mv. The server will keep
                     writing to the open file even though it has a new name.
                     When you send a graceful restart signal to the server, it
                     will open a new logfile with the configured name. For
-                    example, you could run a script from cron like this: 
+                    example, you could run a script from cron like this:
                 </p>
-                
-                
+
+
                 <div class="example"><p><code>
                     APACHE=/usr/local/apache2<br />
                     HTTPD=$APACHE/bin/httpd<br />
@@ -594,7 +594,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     $APACHE/logarchive/access_log-`date +%F`<br />
                     $HTTPD -k graceful
                 </code></p></div>
-                
+
                 <p>This approach also works on Windows, just not as smoothly.
                     While the httpd process on your Windows server will keep
                     writing to the log file after it has been renamed, the
@@ -608,7 +608,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     Windows Service has to perform will interrupt any requests
                     currently in progress, and the server is unavailable until
                     it is started again. Plan for this when you decide the
-                    timing of your restarts. 
+                    timing of your restarts.
                 </p>
                 <p>
                   A second approach is to use piped logs. From the
@@ -617,13 +617,13 @@ Swap:       3903784      12540  3891244</pre></div>
                     or <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog
                     </a></code>
                     directives you can send the log data into any program using
-                    a pipe character (<code>|</code>). For instance: 
+                    a pipe character (<code>|</code>). For instance:
                 </p>
-                
+
                 <div class="example"><p><code>CustomLog "|/usr/local/apache2/bin/rotatelogs
                     /var/log/access_log 86400" common
                 </code></p></div>
-                
+
                 <p>The program on the other end of the pipe will receive the
                     Apache log data on its stdin stream, and can do with this
                     data whatever it wants. The rotatelogs program that comes
@@ -631,10 +631,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     time elapsed or the amount of data written, and leaves the
                     old log files with a timestamp suffix to its name. This
                     method for rotating logfiles works well on unix platforms,
-                    but is currently broken on Windows. 
+                    but is currently broken on Windows.
                 </p>
-                
-                
+
+
             
             <h4><a name="logging-and-performance" id="logging-and-performance">Logging and Performance
                 </a></h4>
@@ -647,7 +647,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     the server log files: the access patterns are very
                     different. Retrieving content from disk is a read operation
                     in a fairly random pattern, and log files are written to
-                    disk sequentially. 
+                    disk sequentially.
                 </p>
                 <p>
                   Do not run a production server with your error <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>
@@ -655,7 +655,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     information to be written to the error log, including, in
                     the case of SSL access, complete dumps of BIO read and
                     write operations. The performance implications are
-                    significant: use the default warn level instead. 
+                    significant: use the default warn level instead.
                 </p>
                 <p>If your server has more than one virtual host, you may give
                     each virtual host a separate access logfile. This makes it
@@ -676,10 +676,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     directive to have Apache collect several log lines in
                     memory before writing them to disk. This might yield better
                     performance, but could affect the order in which the
-                    server's log is written. 
+                    server's log is written.
                 </p>
-                
-                
+
+
             
         
         <h3><a name="generating-a-test-load" id="generating-a-test-load">Generating A Test Load
@@ -689,7 +689,7 @@ Swap:       3903784      12540  3891244</pre></div>
                 performance under realistic operating circumstances. Besides
                 commercial packages such as <a href="http://learnloadrunner.com/">LoadRunner</a>
                 ,there are a number of freely available tools to generate a
-                test load against your web server. 
+                test load against your web server.
             </p>
             <ul>
                 <li>Apache ships with a test program called ab, short for
@@ -697,20 +697,20 @@ Swap:       3903784      12540  3891244</pre></div>
                     repeatedly asking for the same file in rapid succession.
                     You can specify a number of concurrent connections and have
                     the program run for either a given amount of time or a
-                    specified number of requests. 
+                    specified number of requests.
                 </li>
                 <li>Another freely available load generator is http load11 .
                     This program works with a URL file and can be compiled with
-                    SSL support. 
+                    SSL support.
                 </li>
                 <li>The Apache Software Foundation offers a tool named flood12
                     . Flood is a fairly sophisticated program that is
-                    configured through an XML file. 
+                    configured through an XML file.
                 </li>
                 <li>Finally, JMeter13 , a Jakarta subproject, is an all-Java
                     load-testing tool. While early versions of this application
                     were slow and difficult to use, the current version 2.1.1
-                    seems to be versatile and useful. 
+                    seems to be versatile and useful.
                 </li>
                 <li>
                     <p>ASF external projects, that have proven to be quite
@@ -723,16 +723,16 @@ Swap:       3903784      12540  3891244</pre></div>
                 affect the server's response. Also, any data traffic you
                 generate may be charged against your monthly traffic allowance.
             </p>
-            
-            
+
+
         
     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="configuring-for-performance" id="configuring-for-performance">Configuring for Performance
         </a></h2>
         
-        
-        
+
+
         <h3><a name="apache-configuration" id="apache-configuration">Httpd Configuration
             </a></h3>
             
@@ -750,7 +750,7 @@ Swap:       3903784      12540  3891244</pre></div>
                 multiple request handling threads within each child process. In
                 2.4 MPMs are no longer hard-wired. They too can be exchanged
                 via <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>.
-                The default MPM in 2.4 is the event MPM. 
+                The default MPM in 2.4 is the event MPM.
             </p>
             <p>The maximum number of workers, be they pre-forked child
                 processes or threads within a process, is an indication of how
@@ -760,7 +760,7 @@ Swap:       3903784      12540  3891244</pre></div>
                 the maximum number of workers is running, the machine
                 doesn't hit a hard limit beyond which clients will be
                 denied access. However, once requests start backing up, system
-                performance is likely to degrade. 
+                performance is likely to degrade.
             </p>
             <p>Finally, if the httpd server in question is not executing any third-party
                code, via <code>mod_php</code>, <code>mod_perl</code> or similar,
@@ -768,8 +768,8 @@ Swap:       3903784      12540  3891244</pre></div>
                for situations where httpd serves as a thin layer between clients and
                backend servers doing the real job, such as a proxy or cache.
             </p>
-            
-            
+
+
             <h4><a name="MaxClients" id="MaxClients">MaxClients
                 </a></h4>
                 
@@ -786,10 +786,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     number of processes is configurable through the <code>
                         ServerLimit
                     </code>
-                    directive. 
+                    directive.
                 </p>
-                
-                
+
+
             
             <h4><a name="spinning-threads" id="spinning-threads">Spinning Threads
                 </a></h4>
@@ -811,8 +811,8 @@ Swap:       3903784      12540  3891244</pre></div>
                     value downwards until it is an even factor of
                     <code>MaxClients</code>.
                 </p>
-                
-                
+
+
             
             <h4><a name="sizing-maxClients" id="sizing-maxClients">Sizing MaxClients
                 </a></h4>
@@ -822,16 +822,16 @@ Swap:       3903784      12540  3891244</pre></div>
                     your system gets so overloaded that it needs to heavily
                     swap core memory out to disk, performance will degrade
                     quickly. The formula for determining <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxClients</a></code>
-                    is fairly simple: 
+                    is fairly simple:
                 </p>
-                
+
                 <div class="example"><p><code>
                     total RAM - RAM for OS - RAM for external programs<br />
                     MaxClients =
                     -------------------------------------------------------<br />
                     RAM per httpd process
                 </code></p></div>
-                
+
                 <p>The various amounts of memory allocated for the OS, external
                     programs and the httpd processes is best determined by
                     observation: use the top and free commands described above
@@ -839,7 +839,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     server running. You can also determine the footprint of a
                     typical web server process from top: most top
                     implementations have a Resident Size (RSS) column and a
-                    Shared Memory column. 
+                    Shared Memory column.
                 </p>
                 <p>The difference between these two is the amount of memory
                     per-process. The shared segment really exists only once and
@@ -849,7 +849,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     depends heavily on the number and kind of modules you use.
                     The best approach to use in determining this need is to
                     generate a typical test load against your web site and see
-                    how large the httpd processes become. 
+                    how large the httpd processes become.
                 </p>
                 <p>The RAM for external programs parameter is intended mostly
                     for CGI programs and scripts that run outside the web
@@ -869,10 +869,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     to fork additional child processes, so a higher <code>
                         MaxClients
                     </code>
-                    value may actually be a disadvantage. 
+                    value may actually be a disadvantage.
                 </p>
-                
-                
+
+
             
             <h4><a name="selecting-your-mpm" id="selecting-your-mpm">Selecting your MPM
                 </a></h4>
@@ -887,7 +887,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     sense. On Linux, the threading implementation actually uses
                     one process for each thread. Linux processes are relatively
                     lightweight, but it means that a threaded MPM offers less
-                    of a performance advantage than in other environments. 
+                    of a performance advantage than in other environments.
                 </p>
                 <p>Running a threaded MPM can cause stability problems in some
                     situations For instance, should a child process of a
@@ -906,10 +906,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     cannot guarantee that all of these are thread-safe. The
                     good news is that if you are running Apache on Linux, you
                     can run PHP in the preforked MPM without fear of losing too
-                    much performance relative to the threaded option. 
+                    much performance relative to the threaded option.
                 </p>
-                
-                
+
+
             
             <h4><a name="spinning-locks" id="spinning-locks">Spinning Locks
                 </a></h4>
@@ -931,10 +931,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     this time, the parent process may decide to terminate some
                     children based on its <code>MaxSpareServers
                     </code>
-                    directive. 
+                    directive.
                 </p>
-                
-                
+
+
             
             <h4><a name="the-thundering-herd" id="the-thundering-herd">The Thundering Herd
                 </a></h4>
@@ -942,7 +942,7 @@ Swap:       3903784      12540  3891244</pre></div>
                 <p>The function of the 'accept mutex' (as this
                     inter-process lock is called) is to keep request reception
                     moving along in an orderly fashion. If the lock is absent,
-                    the server may exhibit the Thundering Herd syndrome. 
+                    the server may exhibit the Thundering Herd syndrome.
                 </p>
                 <p>Consider an American Football team poised on the line of
                     scrimmage. If the football players were Apache processes
@@ -951,7 +951,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     would have to lumber back to the line for the next snap. In
                     this metaphor, the accept mutex acts as the quarterback,
                     delivering the connection "ball" to the
-                    appropriate player process. 
+                    appropriate player process.
                 </p>
                 <p>Moving this much information around is obviously a lot of
                     work, and, like a smart person, a smart web server tries to
@@ -964,7 +964,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     refrain from using an accept mutex. If you run with
                     multiple listeners (for instance because you have a virtual
                     host serving SSL requests), it will activate the accept
-                    mutex to avoid internal conflicts. 
+                    mutex to avoid internal conflicts.
                 </p>
                 <p>
                     You can manipulate the accept mutex with the <code>
@@ -976,15 +976,15 @@ Swap:       3903784      12540  3891244</pre></div>
                     all are available on every platform, and their availability
                     also depends on compile-time settings. The various locking
                     mechanisms may place specific demands on system resources:
-                    manipulate them with care. 
+                    manipulate them with care.
                 </p>
                 <p>There is no compelling reason to disable the accept mutex.
                     Apache automatically recognizes the single listener
                     situation described above and knows if it is safe to run
-                    without mutex on your platform. 
+                    without mutex on your platform.
                 </p>
-                
-                
+
+
             
         
         <h3><a name="tuning-the-operating-system" id="tuning-the-operating-system">Tuning the Operating System
@@ -996,10 +996,10 @@ Swap:       3903784      12540  3891244</pre></div>
                 are pretty well adjusted straight out of the box and there is
                 not a lot that needs to be done to make them perform optimally.
                 However, there are a few things that an administrator can do to
-                improve performance. 
+                improve performance.
             </p>
-            
-            
+
+
             <h4><a name="ram-and-swap-space" id="ram-and-swap-space">RAM and Swap Space
                 </a></h4>
                 
@@ -1012,7 +1012,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     virtual hosts-also tends to inflate the process footprint.
                     Having ample RAM allows you to run Apache with more child
                     processes, which allows the server to process more
-                    concurrent requests. 
+                    concurrent requests.
                 </p>
                 <p>While the various platforms treat their virtual memory in
                     different ways, it is never a good idea to run with less
@@ -1021,7 +1021,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     don't have disk space available and run out of
                     swappable memory, your machine grinds to a halt. This can
                     crash your box, requiring a physical reboot for which your
-                    hosting facility may charge you. 
+                    hosting facility may charge you.
                 </p>
                 <p>Also, such an outage naturally occurs when you least want
                     it: when the world has found your website and is beating a
@@ -1031,7 +1031,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     and back, but when the load decreases the system should
                     recover. Remember, you still have <code>MaxClients
                     </code>
-                    to keep things in hand. 
+                    to keep things in hand.
                 </p>
                 <p>Most unix-like operating systems use designated disk
                     partitions for swap space. When a system starts up it finds
@@ -1042,7 +1042,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     installing the operating system, be sure to allocate enough
                     swap space to accommodate eventual RAM upgrades.
                     Reassigning disk space on a running system is a cumbersome
-                    process. 
+                    process.
                 </p>
                 <p>Plan for available hard drive swap space of at least twice
                     your amount of RAM, perhaps up to four times in situations
@@ -1056,29 +1056,29 @@ Swap:       3903784      12540  3891244</pre></div>
                     </code>
                     or <code>swap
                     </code>
-                    programs. 
+                    programs.
                 </p>
-                
-                
+
+
             
             <h4><a name="ulimit-files-and-processes" id="ulimit-files-and-processes">ulimit: Files and Processes
                 </a></h4>
                 
                 <p>Given a machine with plenty of RAM and processor capacity,
                     you can run hundreds of Apache processes if necessary. . .
-                    and if your kernel allows it. 
+                    and if your kernel allows it.
                 </p>
                 <p>Consider a situation in which several hundred web servers
                     are running; if some of these need to spawn CGI processes,
-                    the maximum number of processes would occur quickly. 
+                    the maximum number of processes would occur quickly.
                 </p>
-                <p>However, you can change this limit with the command 
+                <p>However, you can change this limit with the command
                 </p>
-                
+
                 <div class="example"><p><code>
                     ulimit [-H|-S] -u [newvalue]
                 </code></p></div>
-                
+
                 <p>This must be changed before starting the server, since the
                     new value will only be available to the current shell and
                     programs started from it. In newer Linux kernels the
@@ -1092,28 +1092,28 @@ Swap:       3903784      12540  3891244</pre></div>
                     </code>
                     :
                 </p>
-                
+
                 <div class="example"><p><code>
                     limit [-h] maxproc [newvalue]
                 </code></p></div>
-                
+
                 <p>Similarly, the kernel may limit the number of open files per
                     process. This is generally not a problem for pre-forked
                     servers, which just handle one request at a time per
                     process. Threaded servers, however, serve many requests per
                     process and much more easily run out of available file
                     descriptors. You can increase the maximum number of open
-                    files per process by running the 
+                    files per process by running the
                 </p>
-                
+
                 <div class="example"><p><code>ulimit -n [newvalue]
                 </code></p></div>
-                
+
                 <p>command. Once again, this must be done prior to starting
-                    Apache. 
+                    Apache.
                 </p>
-                
-                
+
+
             
             <h4><a name="setting-user-limits-on-system-startup" id="setting-user-limits-on-system-startup">Setting User Limits on System Startup
                 </a></h4>
@@ -1126,15 +1126,15 @@ Swap:       3903784      12540  3891244</pre></div>
                     explaining the options. To enable this, make sure that the
                     file <code>/etc/pam.d/login
                     </code>
-                    contains the line 
+                    contains the line
                 </p>
-                
+
                 <div class="example"><p><code>session required /lib/security/pam_limits.so
                 </code></p></div>
-                
+
                 <p>All items can have a 'soft' and a 'hard'
                     limit: the first is the default setting and the second the
-                    maximum value for that item. 
+                    maximum value for that item.
                 </p>
                 <p>
                     In FreeBSD's <code>/etc/login.conf
@@ -1150,27 +1150,27 @@ Swap:       3903784      12540  3891244</pre></div>
                     boot time. These are the same tunables that can be set with
                     the <code>mdb</code>
                     kernel debugger during run time. The soft and hard limit
-                    corresponding to ulimit -u can be set via: 
+                    corresponding to ulimit -u can be set via:
                 </p>
-                
+
                 <div class="example"><p><code>
                     set rlim_fd_max=65536<br />
                     set rlim_fd_cur=2048
                 </code></p></div>
-                
+
                 <p>Solaris calculates the maximum number of allowed processes
                   per user (<code>maxuprc</code>) based on the total amount
                   available memory on the system (<code>maxusers</code>).
-                  You can review the numbers with 
+                  You can review the numbers with
                 </p>
-                
+
                 <div class="example"><p><code>sysdef -i | grep maximum
                 </code></p></div>
-                
-                <p>but it is not recommended to change them. 
+
+                <p>but it is not recommended to change them.
                 </p>
-                
-                
+
+
             
             <h4><a name="turn-off-unused-services-and-modules" id="turn-off-unused-services-and-modules">Turn Off Unused Services and Modules
                 </a></h4>
@@ -1179,19 +1179,19 @@ Swap:       3903784      12540  3891244</pre></div>
                     services turned on by default. You probably need few of
                     them. For example, your web server does not need to be
                     running sendmail, nor is it likely to be an NFS server,
-                    etc. Turn them off. 
+                    etc. Turn them off.
                 </p>
                 <p>On Red Hat Linux, the chkconfig tool will help you do this
                     from the command line. On Solaris systems <code>svcs</code>
                     and <code>svcadm</code>
                     will show which services are enabled and disable them
-                    respectively. 
+                    respectively.
                 </p>
                 <p>In a similar fashion, cast a critical eye on the Apache
                     modules you load. Most binary distributions of Apache
                     httpd, and pre-installed versions that come with Linux
                     distributions, have their modules enabled through the
-                    <code class="directive">LoadModule</code> directive. 
+                    <code class="directive">LoadModule</code> directive.
                 </p>
                 <p>Unused modules may be culled: if you don't rely on
                     their functionality and configuration directives, you can
@@ -1200,10 +1200,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     lines. Read the documentation on each module's
                     functionality before deciding whether to keep it enabled.
                     While the performance overhead of an unused module is
-                    small, it's also unnecessary. 
+                    small, it's also unnecessary.
                 </p>
-                
-                
+
+
             
         
     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -1216,7 +1216,7 @@ Swap:       3903784      12540  3891244</pre></div>
             Static content consists of simple filespages, images, etc.-on disk
             that are very efficiently served. Many operating systems also
             automatically cache the contents of frequently accessed files in
-            memory. 
+            memory.
         </p>
         <p>Processing dynamic requests, on the contrary, can be much more
             involved. Running CGI scripts, handing off requests to an external
@@ -1224,10 +1224,10 @@ Swap:       3903784      12540  3891244</pre></div>
             significant latency and processing load to a busy web server. Under
             many circumstances, performance can be improved by turning popular
             dynamic requests into static requests. In this section, two
-            approaches to this will be discussed. 
+            approaches to this will be discussed.
         </p>
-        
-        
+
+
         <h3><a name="making-popular-pages-static" id="making-popular-pages-static">Making Popular Pages Static
             </a></h3>
             
@@ -1241,33 +1241,33 @@ Swap:       3903784      12540  3891244</pre></div>
                 they are served the pre-rendered page. Queries for, say, yellow
                 roses will be generated directly from the database. The
                 mod_rewrite module included with Apache is a great tool to
-                implement these substitutions. 
+                implement these substitutions.
             </p>
-            
-            
+
+
             <h4><a name="example-a-statically-rendered-blog" id="example-a-statically-rendered-blog">Example: A Statically Rendered Blog
                 </a></h4>
                 
                     
-                    
+
                 <p>Blosxom is a lightweight web log package that runs as a CGI.
                     It is written in Perl and uses plain text files for entry
                     input. Besides running as CGI, Blosxom can be run from the
                     command line to pre-render blog pages. Pre-rendering pages
                     to static HTML can yield a significant performance boost in
                     the event that large numbers of people actually start
-                    reading your blog. 
+                    reading your blog.
                 </p>
                 <p>To run blosxom for static page generation, edit the CGI
                     script according to the documentation. Set the $static dir
                     variable to the <code class="directive">DocumentRoot</code>
                     of the web server, and run the script from the command line
-                    as follows: 
+                    as follows:
                 </p>
-                
+
                 <div class="example"><p><code>$ perl blosxom.cgi -password='whateveryourpassword'
                 </code></p></div>
-                
+
                 <p>This can be run periodically from Cron, after you upload
                     content, etc. To make Apache substitute the statically
                     rendered pages for the dynamic content, we'll use
@@ -1277,9 +1277,9 @@ Swap:       3903784      12540  3891244</pre></div>
                     to the configure command. Many binary distributions of
                     Apache come with <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite </a></code> included. The following is an
                     example of an Apache virtual host that takes advantage of
-                    pre-rendered blog pages: 
+                    pre-rendered blog pages:
                 </p>
-                
+
 <pre class="prettyprint lang-config">Listen *:8001
   &lt;VirtualHost *:8001&gt;
       ServerName blog.sandla.org:8001
@@ -1289,11 +1289,11 @@ Swap:       3903784      12540  3891244</pre></div>
           Options +Indexes
           Require all granted
           RewriteEngine on
-          RewriteCond %{REQUEST_FILENAME} !-f
-          RewriteCond %{REQUEST_FILENAME} !-d
-          RewriteRule ^(.*)$ /cgi-bin/blosxom.cgi/$1 [L,QSA]
+          RewriteCond "%{REQUEST_FILENAME}" "!-f"
+          RewriteCond "%{REQUEST_FILENAME}" "!-d"
+          RewriteRule "^(.*)$"              "/cgi-bin/blosxom.cgi/$1" [L,QSA]
       &lt;/Directory&gt;
-      RewriteLog /home/sctemme/inst/blog/httpd/logs/rewrite_log
+      RewriteLog "/home/sctemme/inst/blog/httpd/logs/rewrite_log"
       RewriteLogLevel 9
       ErrorLog /home/sctemme/inst/blog/httpd/logs/error_log
       LogLevel debug
@@ -1305,7 +1305,7 @@ Swap:       3903784      12540  3891244</pre></div>
       &lt;/Directory&gt;
   &lt;/VirtualHost&gt;</pre>
 
-                
+
                 <p>
                     The <code class="directive">RewriteCond</code>
                     and <code class="directive">RewriteRule</code>
@@ -1322,10 +1322,10 @@ Swap:       3903784      12540  3891244</pre></div>
                     hides the Blosxom CGI from the user-visible URL in their
                     Location bar. mod_rewrite is a fantastically powerful and
                     versatile module: investigate it to arrive at a
-                    configuration that is best for your situation. 
+                    configuration that is best for your situation.
                 </p>
-                
-                
+
+
             
         
         <h3><a name="caching-content-with-mod_cache" id="caching-content-with-mod_cache">Caching Content With mod_cache
@@ -1342,12 +1342,12 @@ Swap:       3903784      12540  3891244</pre></div>
                 server systems will have more disk available than memory, and
                 it's good to note that some operating system kernels cache
                 frequently accessed disk content transparently in memory, so
-                replicating this in the server is not very useful. 
+                replicating this in the server is not very useful.
             </p>
             <p>To enable efficient content caching and avoid presenting the
                 user with stale or invalid content, the application that
                 generates the actual content has to send the correct response
-                headers. Without headers like <code>Etag:</code>, 
+                headers. Without headers like <code>Etag:</code>,
                 <code>Last-Modified:</code> or <code>Expires:</code>,
                 <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> can not make the right decision on whether to cache
                 the content, serve it from cache or leave it alone. When
@@ -1358,10 +1358,10 @@ Swap:       3903784      12540  3891244</pre></div>
                 option <code>--enable-cache[=shared]</code>
                 to the configure script. If you use a binary distribution of
                 Apache httpd, or it came with your port or package collection,
-                it may have <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> already included. 
+                it may have <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> already included.
             </p>
-            
-            
+
+
             <h4><a name="example-wiki" id="example-wiki">Example: wiki.apache.org
                 </a></h4>
                 
@@ -1384,7 +1384,7 @@ Swap:       3903784      12540  3891244</pre></div>
                     enabled with the following configuration snippet in
                     <code>httpd.conf</code>:
                 </p>
-                
+
 <pre class="prettyprint lang-config">CacheRoot /raid1/cacheroot
 CacheEnable disk /
 # A page modified 100 minutes ago will expire in 10 minutes
@@ -1392,7 +1392,7 @@ CacheLastModifiedFactor .1
 # Always check again after 6 hours
 CacheMaxExpire 21600</pre>
 
-                
+
                 <p>This configuration will try to cache any and all content
                     within its virtual host. It will never cache content for
                     more than six hours (the <code class="directive"><a href="../mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code>
@@ -1402,7 +1402,7 @@ CacheMaxExpire 21600</pre>
                     header. The computation using <code class="directive"><a href="../mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code>
                     is based on the assumption that if a page was recently
                     modified, it is likely to change again in the near future
-                    and will have to be re-cached. 
+                    and will have to be re-cached.
                 </p>
                 <p>
                     Do note that it can pay off to <em>disable</em>
@@ -1415,20 +1415,20 @@ CacheMaxExpire 21600</pre>
                     TCP packet). For resources larger than 1k it might prove
                     CPU expensive to calculate the header for each request.
                     Unfortunately there does currently not exist a way to cache
-                    these headers. 
+                    these headers.
                 </p>
 <pre class="prettyprint lang-config">&lt;FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"&gt;
     FileETag None
 &lt;/FilesMatch&gt;</pre>
 
-                
+
                 <p>
                     This will disable the generation of the <code>ETag:</code>
                     header for most static resources. The server does not
-                    calculate these headers for dynamic resources. 
+                    calculate these headers for dynamic resources.
                 </p>
-                
-                
+
+
             
         
     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 10289c5ddb0874dca70c9b81fcc2b97c9967f083..701b8321bbdb966ff02f0d2f852ea51a8d6d1517 100644 (file)
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<manualpage metafile="perf-scaling.xml.meta"> 
+<manualpage metafile="perf-scaling.xml.meta">
     <parentdocument href="./">Miscellaneous Documentation</parentdocument>
+
     <title>Performance Scaling</title>
-    
+
     <summary>
-        
-        <p>The Performance Tuning page in the Apache 1.3 documentation says: 
+
+        <p>The Performance Tuning page in the Apache 1.3 documentation says:
         </p>
         <blockquote><p>
             "Apache is a general webserver, which is designed to be
             The classic brochureware site is alive and well, but the web has
             grown up substantially as a computing application platform and
             webmasters may find themselves running dynamic content in Perl, PHP
-            or Java, all of which take a toll on performance. 
+            or Java, all of which take a toll on performance.
         </p>
         <p>Therefore, in spite of strides forward in machine speed and
             bandwidth allowances, web server performance and web application
             performance remain areas of concern. In this documentation several
-            aspects of web server performance will be discussed. 
+            aspects of web server performance will be discussed.
         </p>
-        
+
     </summary>
-    
+
   <section id="what-will-and-will-not-be-discussed">
         <title>What Will and Will Not Be Discussed
         </title>
             server hardware, so the existing infrastructure will have to do the
             job. You have no desire to compile your own Apache, or to recompile
             the operating system kernel. We do assume, though, that you have
-            some familiarity with the Apache httpd configuration file. 
+            some familiarity with the Apache httpd configuration file.
         </p>
-        
+
     </section>
-    
+
     <section id="monitoring-your-server">
         <title>Monitoring Your Server
         </title>
             find out how your system is currently performing. By monitoring
             your server under real-world load, or artificially generated load,
             you can extrapolate its behavior under stress, such as when your
-            site is mentioned on Slashdot. 
+            site is mentioned on Slashdot.
         </p>
-        
-        
+
+
         <section id="monitoring-tools">
             <title>Monitoring Tools
             </title>
-            
-            
+
+
             <section id="top">
                 <title>top
                 </title>
                     ID, priority and nice values, memory footprint, and
                     percentage CPU usage. The following example shows multiple
                     httpd processes (with MPM worker and event) running on an
-                    Linux (Xen) system: 
+                    Linux (Xen) system:
                 </p>
-                
+
                 <example><pre>
 top - 23:10:58 up 71 days,  6:14,  4 users,  load average: 0.25, 0.53, 0.47
 Tasks: 163 total,   1 running, 162 sleeping,   0 stopped,   0 zombie
@@ -139,7 +139,7 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
    68 root      15  -5     0    0    0 S    0  0.0   0:06.28 kblockd/0
    69 root      15  -5     0    0    0 S    0  0.0   0:00.04 kblockd/1
    70 root      15  -5     0    0    0 S    0  0.0   0:00.04 kblockd/2</pre></example>
-                
+
                 <p>Top is a wonderful tool even though it's slightly resource
                     intensive (when running, its own process is usually in the
                     top ten CPU gluttons). It is indispensable in determining
@@ -147,7 +147,7 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
                     determining how many server processes you can run on your
                     machine. How to do this is described in <a href="#sizing-maxClients">sizing MaxClients</a>.
                     Top is, however, an interactive tool and running it
-                    continuously has few if any advantages. 
+                    continuously has few if any advantages.
                 </p>
             </section>
             <section id="free">
@@ -159,9 +159,9 @@ Swap:  4194296k total,   860584k used,  3333712k free,  1157552k cached
                     both with and without this cache. The free command can be
                     used to find out how much memory the operating system is
                     using, as described in the paragraph <a href="#sizing-maxClients">sizing MaxClients</a>.
-                    The output of free looks like this: 
+                    The output of free looks like this:
                 </p>
-                
+
                 <example><pre>
 sctemme@brutus:~$ free
               total       used     free   shared    buffers    cached
@@ -170,7 +170,7 @@ Mem:        4026028    3901892   124136         0    253144    841044
 Swap:       3903784      12540  3891244
                 </pre></example>
             </section>
-            
+
             <section id="vmstat">
                 <title>vmstat
                 </title>
@@ -185,13 +185,13 @@ Swap:       3903784      12540  3891244
                     much memory is swapped in and out each second, the number
                     of processes currently running and sleeping, the number of
                     interrupts and context switches per second and the usage
-                    percentages of the CPU. 
+                    percentages of the CPU.
                 </p>
                 <p>
-                    The following is <code>vmstat</code> output of an idle server: 
+                    The following is <code>vmstat</code> output of an idle server:
                 </p>
-                
-                
+
+
                 <example><pre>
 [sctemme@GayDeceiver sctemme]$ vmstat 5 3
    procs                      memory     swap         io    system        cpu
@@ -200,11 +200,11 @@ Swap:       3903784      12540  3891244
  0 0 0        0 186244   6696 37516    0    0    0    16 41    314  0   0 100
  0 0 0        0 186236   6704 37516    0    0    0     9 44    314  0   0 100
                   </pre></example>
-                
+
                 <p>And this is output of a server that is under a load of one
-                    hundred simultaneous connections fetching static content: 
+                    hundred simultaneous connections fetching static content:
                 </p>
-                
+
                 <example><pre>
 [sctemme@GayDeceiver sctemme]$ vmstat 5 3
    procs                      memory     swap    io      system       cpu
@@ -213,14 +213,14 @@ Swap:       3903784      12540  3891244
  6 0 1        0 163280   6856 40248    0    0  0 66 6384 1117   42 25  32
 11 0 0        0 162780   6864 40436    0    0  0 61 6309 1165   33 28  40
                   </pre></example>
-                
+
                 <p>The first line gives averages since the last reboot. The
                     subsequent lines give information for five second
                     intervals. The second argument tells vmstat to generate
-                    three reports and then exit. 
+                    three reports and then exit.
                 </p>
-                
-                
+
+
             </section>
             <section id="se-toolkit">
                 <title>SE Toolkit
@@ -234,7 +234,7 @@ Swap:       3903784      12540  3891244
                     orange or red indicators when utilization of various parts
                     of the system rises above certain thresholds. Another
                     included script, Virtual Adrian, applies performance tuning
-                    metrics according to. 
+                    metrics according to.
                 </p>
                 <p>The SE Toolkit has drifted around for a while and has had
                     several owners since its inception. It seems that it has
@@ -244,20 +244,20 @@ Swap:       3903784      12540  3891244
                     code. SE Toolkit author Richard Pettit has started a new
                     company, Captive Metrics4 that plans to bring to market a
                     multiplatform monitoring tool built on the same principles
-                    as SE Toolkit, written in Java. 
+                    as SE Toolkit, written in Java.
                 </p>
-                
-                
+
+
             </section>
             <section id="dtrace">
                 <title>DTrace
                 </title>
                 <p>Given that DTrace is available for Solaris, FreeBSD and OS
                     X, it might be worth exploring it. There's also
-                    mod_dtrace available for httpd. 
+                    mod_dtrace available for httpd.
                 </p>
-                
-                
+
+
             </section>
             <section id="mod_status">
                 <title>mod_status
@@ -273,10 +273,10 @@ Swap:       3903784      12540  3891244
                     directive in your <code>httpd.conf</code>,
                     the <module>mod_status</module>
                     page will give you more information at the cost of a little
-                    extra work per request. 
+                    extra work per request.
                 </p>
-                
-                
+
+
             </section>
         </section>
         <section id="web-server-log-files">
@@ -291,10 +291,10 @@ Swap:       3903784      12540  3891244
                 from. Historical log file data can give you invaluable insight
                 into trends in access to your server, which allows you to
                 predict when your performance needs will overtake your server
-                capacity. 
+                capacity.
             </p>
-            
-            
+
+
             <section id="ErrorLog">
                 <title>Error Log
                 </title>
@@ -307,7 +307,7 @@ Swap:       3903784      12540  3891244
                     redirected to the error logfile, so any error encountered
                     by httpd after it opens its logfiles will appear in this
                     log. This makes it good practice to review the error log
-                    frequently. 
+                    frequently.
                 </p>
                 <p>Before Apache httpd opens its logfiles, any errors will be
                     written to the stderr stream. If you start httpd manually,
@@ -319,7 +319,7 @@ Swap:       3903784      12540  3891244
                     file is usually a good bet. On Windows, early error
                     messages are written to the Applications Event Log, which
                     can be viewed through the Event Viewer in Administrative
-                    Tools. 
+                    Tools.
                 </p>
                 <p>
                     The Error Log is configured through the <directive module="core">ErrorLog</directive>
@@ -331,7 +331,7 @@ Swap:       3903784      12540  3891244
                     directive can also be used in virtual host containers. The
                     error log of a virtual host receives only log messages
                     specific to that virtual host, such as authentication
-                    failures and 'File not Found' errors. 
+                    failures and 'File not Found' errors.
                 </p>
                 <p>On a server that is visible to the Internet, expect to see a
                     lot of exploit attempt and worm attacks in the error log. A
@@ -341,12 +341,12 @@ Swap:       3903784      12540  3891244
                     port, regardless of which server is actually running or
                     what applications might be installed. You could block these
                     attempts using a firewall or <a href="http://www.modsecurity.org/">mod_security</a>,
-                    but this falls outside the scope of this discussion. 
+                    but this falls outside the scope of this discussion.
                 </p>
                 <p>
                     The <directive module="core">LogLevel</directive>
                     directive determines the level of detail included in the
-                    logs. There are eight log levels as described here: 
+                    logs. There are eight log levels as described here:
                 </p>
                 <table>
                     <tr>
@@ -426,19 +426,19 @@ Swap:       3903784      12540  3891244
                     not be run on debug, but increasing the level of detail in
                     the error log can be useful during troubleshooting.
                     Starting with 2.3.8 <directive module="core">LogLevel</directive>
-                    can be specified on a per module basis: 
+                    can be specified on a per module basis:
                 </p>
-                
+
                 <highlight language="config">
                     LogLevel debug mod_ssl:warn
                 </highlight>
-                
+
                 <p>
                   This puts all of the server in debug mode, except for
-                  <module>mod_ssl</module>, which tends to be very noisy. 
+                  <module>mod_ssl</module>, which tends to be very noisy.
                 </p>
-                
-                
+
+
             </section>
             <section id="AccessLog">
                 <title>Access Log
@@ -451,7 +451,7 @@ Swap:       3903784      12540  3891244
                     manual. This file exists by default for the main server and can be
                     configured per virtual host by using the <directive module="mod_log_config">TransferLog</directive>
                     or <directive module="mod_log_config">CustomLog</directive>
-                    configuration directive. 
+                    configuration directive.
                 </p>
                 <p>The access logs can be analyzed with any of several free and
                     commercially available programs. Popular free analysis
@@ -459,10 +459,10 @@ Swap:       3903784      12540  3891244
                     be done offline so the web server machine is not burdened
                     by processing the log files. Most log analysis packages
                     understand the Common Log Format. The fields in the log
-                    lines are explained in in the following: 
+                    lines are explained in in the following:
                 </p>
-                
-                
+
+
                 <example><pre>
 195.54.228.42 - - [24/Mar/2007:23:05:11 -0400] "GET /sander/feed/ HTTP/1.1" 200 9747
 64.34.165.214 - - [24/Mar/2007:23:10:11 -0400] "GET /sander/feed/atom HTTP/1.1" 200 9068
@@ -472,7 +472,7 @@ Swap:       3903784      12540  3891244
 74.6.72.187 - - [24/Mar/2007:23:18:11 -0400] "GET /sander/2006/09/27/44/ HTTP/1.0" 200 14172
 74.6.72.229 - - [24/Mar/2007:23:24:22 -0400] "GET /sander/2006/11/21/os-java/ HTTP/1.0" 200 13457
                 </pre></example>
-                
+
                 <table>
                     <tr>
                         <td>
@@ -563,7 +563,7 @@ Swap:       3903784      12540  3891244
                         </td>
                     </tr>
                 </table>
-                
+
             </section>
             <section id="rotating-log-files">
                 <title>Rotating Log Files
@@ -575,17 +575,17 @@ Swap:       3903784      12540  3891244
                     file analysis should not be performed on files to which the
                     server is actively writing. Periodic logfile rotation helps
                     keep the analysis job manageable, and allows you to keep a
-                    closer eye on usage trends. 
+                    closer eye on usage trends.
                 </p>
                 <p>On unix systems, you can simply rotate logfiles by giving
                     the old file a new name using mv. The server will keep
                     writing to the open file even though it has a new name.
                     When you send a graceful restart signal to the server, it
                     will open a new logfile with the configured name. For
-                    example, you could run a script from cron like this: 
+                    example, you could run a script from cron like this:
                 </p>
-                
-                
+
+
                 <example>
                     APACHE=/usr/local/apache2<br />
                     HTTPD=$APACHE/bin/httpd<br />
@@ -593,7 +593,7 @@ Swap:       3903784      12540  3891244
                     $APACHE/logarchive/access_log-`date +%F`<br />
                     $HTTPD -k graceful
                 </example>
-                
+
                 <p>This approach also works on Windows, just not as smoothly.
                     While the httpd process on your Windows server will keep
                     writing to the log file after it has been renamed, the
@@ -607,7 +607,7 @@ Swap:       3903784      12540  3891244
                     Windows Service has to perform will interrupt any requests
                     currently in progress, and the server is unavailable until
                     it is started again. Plan for this when you decide the
-                    timing of your restarts. 
+                    timing of your restarts.
                 </p>
                 <p>
                   A second approach is to use piped logs. From the
@@ -616,13 +616,13 @@ Swap:       3903784      12540  3891244
                     or <directive module="core">ErrorLog
                     </directive>
                     directives you can send the log data into any program using
-                    a pipe character (<code>|</code>). For instance: 
+                    a pipe character (<code>|</code>). For instance:
                 </p>
-                
+
                 <example>CustomLog "|/usr/local/apache2/bin/rotatelogs
                     /var/log/access_log 86400" common
                 </example>
-                
+
                 <p>The program on the other end of the pipe will receive the
                     Apache log data on its stdin stream, and can do with this
                     data whatever it wants. The rotatelogs program that comes
@@ -630,10 +630,10 @@ Swap:       3903784      12540  3891244
                     time elapsed or the amount of data written, and leaves the
                     old log files with a timestamp suffix to its name. This
                     method for rotating logfiles works well on unix platforms,
-                    but is currently broken on Windows. 
+                    but is currently broken on Windows.
                 </p>
-                
-                
+
+
             </section>
             <section id="logging-and-performance">
                 <title>Logging and Performance
@@ -646,7 +646,7 @@ Swap:       3903784      12540  3891244
                     the server log files: the access patterns are very
                     different. Retrieving content from disk is a read operation
                     in a fairly random pattern, and log files are written to
-                    disk sequentially. 
+                    disk sequentially.
                 </p>
                 <p>
                   Do not run a production server with your error <directive module="core">LogLevel</directive>
@@ -654,7 +654,7 @@ Swap:       3903784      12540  3891244
                     information to be written to the error log, including, in
                     the case of SSL access, complete dumps of BIO read and
                     write operations. The performance implications are
-                    significant: use the default warn level instead. 
+                    significant: use the default warn level instead.
                 </p>
                 <p>If your server has more than one virtual host, you may give
                     each virtual host a separate access logfile. This makes it
@@ -675,10 +675,10 @@ Swap:       3903784      12540  3891244
                     directive to have Apache collect several log lines in
                     memory before writing them to disk. This might yield better
                     performance, but could affect the order in which the
-                    server's log is written. 
+                    server's log is written.
                 </p>
-                
-                
+
+
             </section>
         </section>
         <section id="generating-a-test-load">
@@ -688,7 +688,7 @@ Swap:       3903784      12540  3891244
                 performance under realistic operating circumstances. Besides
                 commercial packages such as <a href="http://learnloadrunner.com/">LoadRunner</a>
                 ,there are a number of freely available tools to generate a
-                test load against your web server. 
+                test load against your web server.
             </p>
             <ul>
                 <li>Apache ships with a test program called ab, short for
@@ -696,20 +696,20 @@ Swap:       3903784      12540  3891244
                     repeatedly asking for the same file in rapid succession.
                     You can specify a number of concurrent connections and have
                     the program run for either a given amount of time or a
-                    specified number of requests. 
+                    specified number of requests.
                 </li>
                 <li>Another freely available load generator is http load11 .
                     This program works with a URL file and can be compiled with
-                    SSL support. 
+                    SSL support.
                 </li>
                 <li>The Apache Software Foundation offers a tool named flood12
                     . Flood is a fairly sophisticated program that is
-                    configured through an XML file. 
+                    configured through an XML file.
                 </li>
                 <li>Finally, JMeter13 , a Jakarta subproject, is an all-Java
                     load-testing tool. While early versions of this application
                     were slow and difficult to use, the current version 2.1.1
-                    seems to be versatile and useful. 
+                    seems to be versatile and useful.
                 </li>
                 <li>
                     <p>ASF external projects, that have proven to be quite
@@ -722,15 +722,15 @@ Swap:       3903784      12540  3891244
                 affect the server's response. Also, any data traffic you
                 generate may be charged against your monthly traffic allowance.
             </p>
-            
-            
+
+
         </section>
     </section>
     <section id="configuring-for-performance">
         <title>Configuring for Performance
         </title>
-        
-        
+
+
         <section id="apache-configuration">
             <title>Httpd Configuration
             </title>
@@ -748,7 +748,7 @@ Swap:       3903784      12540  3891244
                 multiple request handling threads within each child process. In
                 2.4 MPMs are no longer hard-wired. They too can be exchanged
                 via <directive module="mod_so">LoadModule</directive>.
-                The default MPM in 2.4 is the event MPM. 
+                The default MPM in 2.4 is the event MPM.
             </p>
             <p>The maximum number of workers, be they pre-forked child
                 processes or threads within a process, is an indication of how
@@ -758,7 +758,7 @@ Swap:       3903784      12540  3891244
                 the maximum number of workers is running, the machine
                 doesn't hit a hard limit beyond which clients will be
                 denied access. However, once requests start backing up, system
-                performance is likely to degrade. 
+                performance is likely to degrade.
             </p>
             <p>Finally, if the httpd server in question is not executing any third-party
                code, via <code>mod_php</code>, <code>mod_perl</code> or similar,
@@ -766,8 +766,8 @@ Swap:       3903784      12540  3891244
                for situations where httpd serves as a thin layer between clients and
                backend servers doing the real job, such as a proxy or cache.
             </p>
-            
-            
+
+
             <section id="MaxClients">
                 <title>MaxClients
                 </title>
@@ -784,10 +784,10 @@ Swap:       3903784      12540  3891244
                     number of processes is configurable through the <code>
                         ServerLimit
                     </code>
-                    directive. 
+                    directive.
                 </p>
-                
-                
+
+
             </section>
             <section id="spinning-threads">
                 <title>Spinning Threads
@@ -809,8 +809,8 @@ Swap:       3903784      12540  3891244
                     value downwards until it is an even factor of
                     <code>MaxClients</code>.
                 </p>
-                
-                
+
+
             </section>
             <section id="sizing-maxClients">
                 <title>Sizing MaxClients
@@ -820,16 +820,16 @@ Swap:       3903784      12540  3891244
                     your system gets so overloaded that it needs to heavily
                     swap core memory out to disk, performance will degrade
                     quickly. The formula for determining <directive module="mpm_common" name="MaxRequestWorkers">MaxClients</directive>
-                    is fairly simple: 
+                    is fairly simple:
                 </p>
-                
+
                 <example>
                     total RAM - RAM for OS - RAM for external programs<br />
                     MaxClients =
                     -------------------------------------------------------<br />
                     RAM per httpd process
                 </example>
-                
+
                 <p>The various amounts of memory allocated for the OS, external
                     programs and the httpd processes is best determined by
                     observation: use the top and free commands described above
@@ -837,7 +837,7 @@ Swap:       3903784      12540  3891244
                     server running. You can also determine the footprint of a
                     typical web server process from top: most top
                     implementations have a Resident Size (RSS) column and a
-                    Shared Memory column. 
+                    Shared Memory column.
                 </p>
                 <p>The difference between these two is the amount of memory
                     per-process. The shared segment really exists only once and
@@ -847,7 +847,7 @@ Swap:       3903784      12540  3891244
                     depends heavily on the number and kind of modules you use.
                     The best approach to use in determining this need is to
                     generate a typical test load against your web site and see
-                    how large the httpd processes become. 
+                    how large the httpd processes become.
                 </p>
                 <p>The RAM for external programs parameter is intended mostly
                     for CGI programs and scripts that run outside the web
@@ -867,10 +867,10 @@ Swap:       3903784      12540  3891244
                     to fork additional child processes, so a higher <code>
                         MaxClients
                     </code>
-                    value may actually be a disadvantage. 
+                    value may actually be a disadvantage.
                 </p>
-                
-                
+
+
             </section>
             <section id="selecting-your-mpm">
                 <title>Selecting your MPM
@@ -885,7 +885,7 @@ Swap:       3903784      12540  3891244
                     sense. On Linux, the threading implementation actually uses
                     one process for each thread. Linux processes are relatively
                     lightweight, but it means that a threaded MPM offers less
-                    of a performance advantage than in other environments. 
+                    of a performance advantage than in other environments.
                 </p>
                 <p>Running a threaded MPM can cause stability problems in some
                     situations For instance, should a child process of a
@@ -904,10 +904,10 @@ Swap:       3903784      12540  3891244
                     cannot guarantee that all of these are thread-safe. The
                     good news is that if you are running Apache on Linux, you
                     can run PHP in the preforked MPM without fear of losing too
-                    much performance relative to the threaded option. 
+                    much performance relative to the threaded option.
                 </p>
-                
-                
+
+
             </section>
             <section id="spinning-locks">
                 <title>Spinning Locks
@@ -929,10 +929,10 @@ Swap:       3903784      12540  3891244
                     this time, the parent process may decide to terminate some
                     children based on its <code>MaxSpareServers
                     </code>
-                    directive. 
+                    directive.
                 </p>
-                
-                
+
+
             </section>
             <section id="the-thundering-herd">
                 <title>The Thundering Herd
@@ -940,7 +940,7 @@ Swap:       3903784      12540  3891244
                 <p>The function of the 'accept mutex' (as this
                     inter-process lock is called) is to keep request reception
                     moving along in an orderly fashion. If the lock is absent,
-                    the server may exhibit the Thundering Herd syndrome. 
+                    the server may exhibit the Thundering Herd syndrome.
                 </p>
                 <p>Consider an American Football team poised on the line of
                     scrimmage. If the football players were Apache processes
@@ -949,7 +949,7 @@ Swap:       3903784      12540  3891244
                     would have to lumber back to the line for the next snap. In
                     this metaphor, the accept mutex acts as the quarterback,
                     delivering the connection &quot;ball&quot; to the
-                    appropriate player process. 
+                    appropriate player process.
                 </p>
                 <p>Moving this much information around is obviously a lot of
                     work, and, like a smart person, a smart web server tries to
@@ -962,7 +962,7 @@ Swap:       3903784      12540  3891244
                     refrain from using an accept mutex. If you run with
                     multiple listeners (for instance because you have a virtual
                     host serving SSL requests), it will activate the accept
-                    mutex to avoid internal conflicts. 
+                    mutex to avoid internal conflicts.
                 </p>
                 <p>
                     You can manipulate the accept mutex with the <code>
@@ -974,15 +974,15 @@ Swap:       3903784      12540  3891244
                     all are available on every platform, and their availability
                     also depends on compile-time settings. The various locking
                     mechanisms may place specific demands on system resources:
-                    manipulate them with care. 
+                    manipulate them with care.
                 </p>
                 <p>There is no compelling reason to disable the accept mutex.
                     Apache automatically recognizes the single listener
                     situation described above and knows if it is safe to run
-                    without mutex on your platform. 
+                    without mutex on your platform.
                 </p>
-                
-                
+
+
             </section>
         </section>
         <section id="tuning-the-operating-system">
@@ -994,10 +994,10 @@ Swap:       3903784      12540  3891244
                 are pretty well adjusted straight out of the box and there is
                 not a lot that needs to be done to make them perform optimally.
                 However, there are a few things that an administrator can do to
-                improve performance. 
+                improve performance.
             </p>
-            
-            
+
+
             <section id="ram-and-swap-space">
                 <title>RAM and Swap Space
                 </title>
@@ -1010,7 +1010,7 @@ Swap:       3903784      12540  3891244
                     virtual hosts-also tends to inflate the process footprint.
                     Having ample RAM allows you to run Apache with more child
                     processes, which allows the server to process more
-                    concurrent requests. 
+                    concurrent requests.
                 </p>
                 <p>While the various platforms treat their virtual memory in
                     different ways, it is never a good idea to run with less
@@ -1019,7 +1019,7 @@ Swap:       3903784      12540  3891244
                     don't have disk space available and run out of
                     swappable memory, your machine grinds to a halt. This can
                     crash your box, requiring a physical reboot for which your
-                    hosting facility may charge you. 
+                    hosting facility may charge you.
                 </p>
                 <p>Also, such an outage naturally occurs when you least want
                     it: when the world has found your website and is beating a
@@ -1029,7 +1029,7 @@ Swap:       3903784      12540  3891244
                     and back, but when the load decreases the system should
                     recover. Remember, you still have <code>MaxClients
                     </code>
-                    to keep things in hand. 
+                    to keep things in hand.
                 </p>
                 <p>Most unix-like operating systems use designated disk
                     partitions for swap space. When a system starts up it finds
@@ -1040,7 +1040,7 @@ Swap:       3903784      12540  3891244
                     installing the operating system, be sure to allocate enough
                     swap space to accommodate eventual RAM upgrades.
                     Reassigning disk space on a running system is a cumbersome
-                    process. 
+                    process.
                 </p>
                 <p>Plan for available hard drive swap space of at least twice
                     your amount of RAM, perhaps up to four times in situations
@@ -1054,29 +1054,29 @@ Swap:       3903784      12540  3891244
                     </code>
                     or <code>swap
                     </code>
-                    programs. 
+                    programs.
                 </p>
-                
-                
+
+
             </section>
             <section id="ulimit-files-and-processes">
                 <title>ulimit: Files and Processes
                 </title>
                 <p>Given a machine with plenty of RAM and processor capacity,
                     you can run hundreds of Apache processes if necessary. . .
-                    and if your kernel allows it. 
+                    and if your kernel allows it.
                 </p>
                 <p>Consider a situation in which several hundred web servers
                     are running; if some of these need to spawn CGI processes,
-                    the maximum number of processes would occur quickly. 
+                    the maximum number of processes would occur quickly.
                 </p>
-                <p>However, you can change this limit with the command 
+                <p>However, you can change this limit with the command
                 </p>
-                
+
                 <example>
                     ulimit [-H|-S] -u [newvalue]
                 </example>
-                
+
                 <p>This must be changed before starting the server, since the
                     new value will only be available to the current shell and
                     programs started from it. In newer Linux kernels the
@@ -1090,28 +1090,28 @@ Swap:       3903784      12540  3891244
                     </code>
                     :
                 </p>
-                
+
                 <example>
                     limit [-h] maxproc [newvalue]
                 </example>
-                
+
                 <p>Similarly, the kernel may limit the number of open files per
                     process. This is generally not a problem for pre-forked
                     servers, which just handle one request at a time per
                     process. Threaded servers, however, serve many requests per
                     process and much more easily run out of available file
                     descriptors. You can increase the maximum number of open
-                    files per process by running the 
+                    files per process by running the
                 </p>
-                
+
                 <example>ulimit -n [newvalue]
                 </example>
-                
+
                 <p>command. Once again, this must be done prior to starting
-                    Apache. 
+                    Apache.
                 </p>
-                
-                
+
+
             </section>
             <section id="setting-user-limits-on-system-startup">
                 <title>Setting User Limits on System Startup
@@ -1124,15 +1124,15 @@ Swap:       3903784      12540  3891244
                     explaining the options. To enable this, make sure that the
                     file <code>/etc/pam.d/login
                     </code>
-                    contains the line 
+                    contains the line
                 </p>
-                
+
                 <example>session required /lib/security/pam_limits.so
                 </example>
-                
+
                 <p>All items can have a 'soft' and a 'hard'
                     limit: the first is the default setting and the second the
-                    maximum value for that item. 
+                    maximum value for that item.
                 </p>
                 <p>
                     In FreeBSD's <code>/etc/login.conf
@@ -1148,27 +1148,27 @@ Swap:       3903784      12540  3891244
                     boot time. These are the same tunables that can be set with
                     the <code>mdb</code>
                     kernel debugger during run time. The soft and hard limit
-                    corresponding to ulimit -u can be set via: 
+                    corresponding to ulimit -u can be set via:
                 </p>
-                
+
                 <example>
                     set rlim_fd_max=65536<br />
                     set rlim_fd_cur=2048
                 </example>
-                
+
                 <p>Solaris calculates the maximum number of allowed processes
                   per user (<code>maxuprc</code>) based on the total amount
                   available memory on the system (<code>maxusers</code>).
-                  You can review the numbers with 
+                  You can review the numbers with
                 </p>
-                
+
                 <example>sysdef -i | grep maximum
                 </example>
-                
-                <p>but it is not recommended to change them. 
+
+                <p>but it is not recommended to change them.
                 </p>
-                
-                
+
+
             </section>
             <section id="turn-off-unused-services-and-modules">
                 <title>Turn Off Unused Services and Modules
@@ -1177,19 +1177,19 @@ Swap:       3903784      12540  3891244
                     services turned on by default. You probably need few of
                     them. For example, your web server does not need to be
                     running sendmail, nor is it likely to be an NFS server,
-                    etc. Turn them off. 
+                    etc. Turn them off.
                 </p>
                 <p>On Red Hat Linux, the chkconfig tool will help you do this
                     from the command line. On Solaris systems <code>svcs</code>
                     and <code>svcadm</code>
                     will show which services are enabled and disable them
-                    respectively. 
+                    respectively.
                 </p>
                 <p>In a similar fashion, cast a critical eye on the Apache
                     modules you load. Most binary distributions of Apache
                     httpd, and pre-installed versions that come with Linux
                     distributions, have their modules enabled through the
-                    <directive>LoadModule</directive> directive. 
+                    <directive>LoadModule</directive> directive.
                 </p>
                 <p>Unused modules may be culled: if you don't rely on
                     their functionality and configuration directives, you can
@@ -1198,10 +1198,10 @@ Swap:       3903784      12540  3891244
                     lines. Read the documentation on each module's
                     functionality before deciding whether to keep it enabled.
                     While the performance overhead of an unused module is
-                    small, it's also unnecessary. 
+                    small, it's also unnecessary.
                 </p>
-                
-                
+
+
             </section>
         </section>
     </section>
@@ -1213,7 +1213,7 @@ Swap:       3903784      12540  3891244
             Static content consists of simple filespages, images, etc.-on disk
             that are very efficiently served. Many operating systems also
             automatically cache the contents of frequently accessed files in
-            memory. 
+            memory.
         </p>
         <p>Processing dynamic requests, on the contrary, can be much more
             involved. Running CGI scripts, handing off requests to an external
@@ -1221,10 +1221,10 @@ Swap:       3903784      12540  3891244
             significant latency and processing load to a busy web server. Under
             many circumstances, performance can be improved by turning popular
             dynamic requests into static requests. In this section, two
-            approaches to this will be discussed. 
+            approaches to this will be discussed.
         </p>
-        
-        
+
+
         <section id="making-popular-pages-static">
             <title>Making Popular Pages Static
             </title>
@@ -1238,34 +1238,34 @@ Swap:       3903784      12540  3891244
                 they are served the pre-rendered page. Queries for, say, yellow
                 roses will be generated directly from the database. The
                 mod_rewrite module included with Apache is a great tool to
-                implement these substitutions. 
+                implement these substitutions.
             </p>
-            
-            
+
+
             <section id="example-a-statically-rendered-blog">
                 <title>Example: A Statically Rendered Blog
                 </title>
                     <!--we should provide a more useful example here.
                         One showing how to make Wordpress or Drupal suck less. -->
-                    
+
                 <p>Blosxom is a lightweight web log package that runs as a CGI.
                     It is written in Perl and uses plain text files for entry
                     input. Besides running as CGI, Blosxom can be run from the
                     command line to pre-render blog pages. Pre-rendering pages
                     to static HTML can yield a significant performance boost in
                     the event that large numbers of people actually start
-                    reading your blog. 
+                    reading your blog.
                 </p>
                 <p>To run blosxom for static page generation, edit the CGI
                     script according to the documentation. Set the $static dir
                     variable to the <directive>DocumentRoot</directive>
                     of the web server, and run the script from the command line
-                    as follows: 
+                    as follows:
                 </p>
-                
+
                 <example>$ perl blosxom.cgi -password='whateveryourpassword'
                 </example>
-                
+
                 <p>This can be run periodically from Cron, after you upload
                     content, etc. To make Apache substitute the statically
                     rendered pages for the dynamic content, we'll use
@@ -1275,9 +1275,9 @@ Swap:       3903784      12540  3891244
                     to the configure command. Many binary distributions of
                     Apache come with <module>mod_rewrite </module> included. The following is an
                     example of an Apache virtual host that takes advantage of
-                    pre-rendered blog pages: 
+                    pre-rendered blog pages:
                 </p>
-                
+
 <highlight language="config">
 Listen *:8001
   &lt;VirtualHost *:8001&gt;
@@ -1288,11 +1288,11 @@ Listen *:8001
           Options +Indexes
           Require all granted
           RewriteEngine on
-          RewriteCond %{REQUEST_FILENAME} !-f
-          RewriteCond %{REQUEST_FILENAME} !-d
-          RewriteRule ^(.*)$ /cgi-bin/blosxom.cgi/$1 [L,QSA]
+          RewriteCond "%{REQUEST_FILENAME}" "!-f"
+          RewriteCond "%{REQUEST_FILENAME}" "!-d"
+          RewriteRule "^(.*)$"              "/cgi-bin/blosxom.cgi/$1" [L,QSA]
       &lt;/Directory&gt;
-      RewriteLog /home/sctemme/inst/blog/httpd/logs/rewrite_log
+      RewriteLog "/home/sctemme/inst/blog/httpd/logs/rewrite_log"
       RewriteLogLevel 9
       ErrorLog /home/sctemme/inst/blog/httpd/logs/error_log
       LogLevel debug
@@ -1304,7 +1304,7 @@ Listen *:8001
       &lt;/Directory&gt;
   &lt;/VirtualHost&gt;
 </highlight>
-                
+
                 <p>
                     The <directive>RewriteCond</directive>
                     and <directive>RewriteRule</directive>
@@ -1321,10 +1321,10 @@ Listen *:8001
                     hides the Blosxom CGI from the user-visible URL in their
                     Location bar. mod_rewrite is a fantastically powerful and
                     versatile module: investigate it to arrive at a
-                    configuration that is best for your situation. 
+                    configuration that is best for your situation.
                 </p>
-                
-                
+
+
             </section>
         </section>
         <section id="caching-content-with-mod_cache">
@@ -1341,12 +1341,12 @@ Listen *:8001
                 server systems will have more disk available than memory, and
                 it's good to note that some operating system kernels cache
                 frequently accessed disk content transparently in memory, so
-                replicating this in the server is not very useful. 
+                replicating this in the server is not very useful.
             </p>
             <p>To enable efficient content caching and avoid presenting the
                 user with stale or invalid content, the application that
                 generates the actual content has to send the correct response
-                headers. Without headers like <code>Etag:</code>, 
+                headers. Without headers like <code>Etag:</code>,
                 <code>Last-Modified:</code> or <code>Expires:</code>,
                 <module>mod_cache</module> can not make the right decision on whether to cache
                 the content, serve it from cache or leave it alone. When
@@ -1357,10 +1357,10 @@ Listen *:8001
                 option <code>--enable-cache[=shared]</code>
                 to the configure script. If you use a binary distribution of
                 Apache httpd, or it came with your port or package collection,
-                it may have <module>mod_cache</module> already included. 
+                it may have <module>mod_cache</module> already included.
             </p>
-            
-            
+
+
             <section id="example-wiki">
                 <title>Example: wiki.apache.org
                 </title>
@@ -1384,7 +1384,7 @@ Listen *:8001
                     enabled with the following configuration snippet in
                     <code>httpd.conf</code>:
                 </p>
-                
+
 <highlight language="config">
 CacheRoot /raid1/cacheroot
 CacheEnable disk /
@@ -1393,7 +1393,7 @@ CacheLastModifiedFactor .1
 # Always check again after 6 hours
 CacheMaxExpire 21600
 </highlight>
-                
+
                 <p>This configuration will try to cache any and all content
                     within its virtual host. It will never cache content for
                     more than six hours (the <directive module="mod_cache">CacheMaxExpire</directive>
@@ -1403,7 +1403,7 @@ CacheMaxExpire 21600
                     header. The computation using <directive module="mod_cache">CacheLastModifiedFactor</directive>
                     is based on the assumption that if a page was recently
                     modified, it is likely to change again in the near future
-                    and will have to be re-cached. 
+                    and will have to be re-cached.
                 </p>
                 <p>
                     Do note that it can pay off to <em>disable</em>
@@ -1416,21 +1416,21 @@ CacheMaxExpire 21600
                     TCP packet). For resources larger than 1k it might prove
                     CPU expensive to calculate the header for each request.
                     Unfortunately there does currently not exist a way to cache
-                    these headers. 
+                    these headers.
                 </p>
 <highlight language="config">
 &lt;FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"&gt;
     FileETag None
 &lt;/FilesMatch&gt;
 </highlight>
-                
+
                 <p>
                     This will disable the generation of the <code>ETag:</code>
                     header for most static resources. The server does not
-                    calculate these headers for dynamic resources. 
+                    calculate these headers for dynamic resources.
                 </p>
-                
-                
+
+
             </section>
         </section>
     </section>
index b698fd055050a366f6d85da3018a314bf297c475..7ad5e2e7d51906d94e63016e79c5fa27f6bcc1a2 100644 (file)
         one connection at a time.  Worker generally is a good
         choice for high-traffic servers because it has a smaller
         memory footprint than the prefork MPM.</li>
-        
-        <li>The <code class="module"><a href="../mod/event.html">event</a></code> MPM is threaded like the 
-        Worker MPM, but is designed to allow more requests to be 
-        served simultaneously by passing off some processing work 
+
+        <li>The <code class="module"><a href="../mod/event.html">event</a></code> MPM is threaded like the
+        Worker MPM, but is designed to allow more requests to be
+        served simultaneously by passing off some processing work
         to supporting threads, freeing up the main threads to work
         on new requests.</li>
 
           <strong>accept_mutex_on ();</strong>
           for (;;) {
             fd_set accept_fds;
-            
+
             FD_ZERO (&amp;accept_fds);
             for (i = first_socket; i &lt;= last_socket; ++i) {
               FD_SET (i, &amp;accept_fds);
       <pre class="prettyprint lang-c">        void lingering_close (int s)
         {
           char junk_buffer[2048];
-          
+
           /* shutdown the sending side */
           shutdown (s, 1);
 
               /* just toss away whatever is here */
             }
           }
-          
+
           close (s);
         }</pre>
 
index 6825728c6e649d2cf24b20ea9e8ec4221e36fdd8..00b64541d2f852f76009a6c7e751ec989dce24a8 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1379836:1673917 (outdated) -->
+<!-- English Revision: 1379836:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 293913b33f4350e3a9e42719d5d72a86e5833925..4f4b05fb9a80d8f708bf7e1bc862c45106d7879d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1673917 (outdated) -->
+<!-- English Revision: 105989:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 035344ead8a19851501bc6822d395890396fa225..3941fd294df93fc24167c023fdb4c9454a4e10be 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1673917 (outdated) -->
+<!-- English Revision: 1174747:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index b3da0c96cf4ddfcaed5db8415c6a87269b4898a4..c07be4157cf7131e40a8f7adebfe7ca351eae1d8 100644 (file)
 
       <li>The use of a threaded <a href="../mpm.html">mpm</a> may
       allow you to handle more simultaneous connections, thereby
-      mitigating DoS attacks.  Further, the 
+      mitigating DoS attacks.  Further, the
       <code class="module"><a href="../mod/event.html">event</a></code> mpm
       uses asynchronous processing to avoid devoting a thread to each
       connection. Due to the nature of the OpenSSL library the
     directive specific.  Always test your changes when creating dependencies
     on how directives are merged.</p>
 
-    <p> For modules that don't implement any merging logic, such as 
+    <p> For modules that don't implement any merging logic, such as
     <code class="directive">mod_access_compat</code>, the behavior in later sections
     depends on whether the later section has any directives
-    from the module.  The configuration is inherited until a change is made, 
+    from the module.  The configuration is inherited until a change is made,
     at which point the configuration is <em>replaced</em> and not merged.</p>
   </div></div>
 <div class="bottomlang">
index 77f6513f81aef51f2243f7fafa26f92154b72423..200ed289cf0444ca2d8e1e38463a88865a7b6401 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1657687:1673892 (outdated) -->
+<!-- English Revision: 1657687:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 96b078e46aa44edc708badcfdcd4ae4d072e7bad..c2a52723ac8811676a418867b42f3811c8828f54 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1673892 (outdated) -->
+<!-- English Revision: 105989:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 3ed8268c224a93da72bbc0243bfe6c76b92e3435..5bffcb774c2604d05fd54ce7d2fff88af1d8f87d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1300924:1673892 (outdated) -->
+<!-- English Revision: 1300924:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 1f60fc16d96ad114002451c13034b0d27aa887ab..7ff7cc614ca2017768ec953f510a0bf57aaec446 100644 (file)
@@ -3192,8 +3192,8 @@ resource </td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
 </table>
     <p>This directive controls whether HTTP trailers are copied into the
-    internal representation of HTTP headers. This mergeing occurs when the 
-    request body has been completely consumed, long after most header 
+    internal representation of HTTP headers. This mergeing occurs when the
+    request body has been completely consumed, long after most header
     processing would have a chance to examine or modify request headers.</p>
     <p>This option is provided for compatibility with releases prior to 2.4.10,
     where trailers were always merged.</p>
@@ -3920,7 +3920,7 @@ to name-virtual hosts</td></tr>
     (nor for ServerName vs. ServerAlias).  </p>
 
     <p>The complete list of names in the <code class="directive">VirtualHost</code>
-    directive are treated just like a (non wildcard) 
+    directive are treated just like a (non wildcard)
     <code class="directive">ServerAlias</code>.</p>
 
 
@@ -3966,7 +3966,7 @@ itself</td></tr>
     <p>If no <code class="directive">ServerName</code> is specified, then the
     server attempts to deduce the client visible hostname by performing a
     reverse lookup on an IP address of the systems hostname.</p>
-    
+
     <p>If no port is specified in the
     <code class="directive">ServerName</code>, then the server will use the
     port from the incoming request. For optimal reliability and
@@ -4317,7 +4317,7 @@ certain events before failing a request</td></tr>
       for an acknowledgement of a packet if the send buffer is
       full.</li>
 
-      <li>In <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> and <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>, 
+      <li>In <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> and <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>,
       the length of time to wait for output from a CGI script.</li>
 
       <li>In <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>, the length of time to
index 0034c0e5aec834acf7adcc9d363562f4f7d8c340..7ca2417ad3dc8e29393a0a6b25917aba0e35d3dd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 344972:1673917 (outdated) -->
+<!-- English Revision: 344972:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 9acd53faebca64752cda1c7eeeec182d10dd01c5..f6a7d827f706f7939c1a202ce64352a4ee3b9c86 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- English Revision: 1040494:1673917 (outdated) -->
+<!-- English Revision: 1040494:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index fe87e5dadb52b51cb5ea3fbded71ff923868788a..c3ca64d6b6ffedf8ea2e91585756a79415886df1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1664071:1673917 (outdated) -->
+<!-- English Revision: 1664071:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index f061198bc826464b2fb5c946425233a3e4c392f2..06cb68e85f391dec546e387c1e853fd6ad0fa91b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 669847:1673917 (outdated) -->
+<!-- English Revision: 669847:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 90aa2d1ad584527fbd3be40b5ee1807dc608adde..cf31f92f7cc233aa0aa12006f17f8fa7c2a8a007 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1302855:1673917 (outdated) -->
+<!-- English Revision: 1302855:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 9eaf18ffbe6471d366e9e90b9a29f87b89dfdb53..a1ade2a7fade78bc0e63fb3649fa5378015b0783 100644 (file)
@@ -72,7 +72,7 @@ have been deprecated by the new authz refactoring.  Please see
     in a <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> section.</p>
 
     <div class="note"> <h3>Merging of configuration sections</h3>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </div>
@@ -211,7 +211,7 @@ Allow from 2001:db8::a00:20ff:fea7:ccea/10</pre>
     others will be denied.</p>
 
     <div class="note"> <h3>Merging of configuration sections</h3>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </div>
@@ -381,7 +381,7 @@ Deny from foo.example.org</pre>
     work</a>.</p>
 
     <div class="note"> <h3>Merging of configuration sections</h3>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </div>
@@ -445,7 +445,7 @@ Satisfy Any</pre>
     be restricted to particular methods by <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> and <code class="directive"><a href="../mod/core.html#limitexcept">&lt;LimitExcept&gt;</a></code> sections.</p>
 
     <div class="note"> <h3>Merging of configuration sections</h3>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </div>
index 390bef2380f63c062a729b2e8b3c8da720ea2f06..c16faf2baf87d6d8a88250c042e83310e4942ca1 100644 (file)
@@ -71,7 +71,7 @@ have been deprecated by the new authz refactoring.  Please see
     in a <directive module="core" type="section">Limit</directive> section.</p>
 
     <note> <title>Merging of configuration sections</title>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </note>
@@ -210,7 +210,7 @@ SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
     others will be denied.</p>
 
     <note> <title>Merging of configuration sections</title>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </note>
@@ -402,7 +402,7 @@ Deny from foo.example.org
     work</a>.</p>
 
     <note> <title>Merging of configuration sections</title>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </note>
@@ -472,7 +472,7 @@ Satisfy Any
     >LimitExcept</directive> sections.</p>
 
     <note> <title>Merging of configuration sections</title>
-      <p>When any directive provided by this module is used in a new 
+      <p>When any directive provided by this module is used in a new
       configuration section, no directives provided by this module are
       inherited from previous configuration sections.</p>
     </note>
index 2eb10c5a1b2ae9d0ee1ceb204ef34574248ede09..295c1f2d6d405a8fe80abe45091374c13319884b 100644 (file)
@@ -52,7 +52,7 @@
     a new location.</p>
 
     <p>When the <code class="directive"><a href="#alias">Alias</a></code>,
-    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and 
+    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
     <code class="directive"><a href="#redirect">Redirect</a></code> directives are used
     within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
     or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
@@ -116,13 +116,13 @@ Alias "/foo"     "/gaq"</pre>
     ignored.</p>
 
     <p>When the <code class="directive"><a href="#alias">Alias</a></code>,
-    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and 
+    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
     <code class="directive"><a href="#redirect">Redirect</a></code> directives are used
     within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
     or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
     section, these directives will take precedence over any globally
     defined <code class="directive"><a href="#alias">Alias</a></code>,
-    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and 
+    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
     <code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
 
 </div>
@@ -184,7 +184,7 @@ Alias "/foo"     "/gaq"</pre>
 &lt;/Directory&gt;</pre>
 
 
-    <p>Any number slashes in the <var>URL-path</var> parameter 
+    <p>Any number slashes in the <var>URL-path</var> parameter
     matches any number of slashes in the requested URL-path.</p>
 
     <p>If the <code class="directive">Alias</code> directive is used within a
index 37e7f71806fc61f8d550c089277caf5944ff0769..f967aebe6c60a96dfb6232578df9621414318c6e 100644 (file)
@@ -48,7 +48,7 @@
     a new location.</p>
 
     <p>When the <directive module="mod_alias">Alias</directive>,
-    <directive module="mod_alias">ScriptAlias</directive> and 
+    <directive module="mod_alias">ScriptAlias</directive> and
     <directive module="mod_alias">Redirect</directive> directives are used
     within a <directive type="section" module="core">Location</directive>
     or <directive type="section" module="core">LocationMatch</directive>
@@ -100,13 +100,13 @@ Alias "/foo"     "/gaq"
     ignored.</p>
 
     <p>When the <directive module="mod_alias">Alias</directive>,
-    <directive module="mod_alias">ScriptAlias</directive> and 
+    <directive module="mod_alias">ScriptAlias</directive> and
     <directive module="mod_alias">Redirect</directive> directives are used
     within a <directive type="section" module="core">Location</directive>
     or <directive type="section" module="core">LocationMatch</directive>
     section, these directives will take precedence over any globally
     defined <directive module="mod_alias">Alias</directive>,
-    <directive module="mod_alias">ScriptAlias</directive> and 
+    <directive module="mod_alias">ScriptAlias</directive> and
     <directive module="mod_alias">Redirect</directive> directives.</p>
 
 </section>
@@ -175,7 +175,7 @@ Alias "/image" "/ftp/pub/image"
 &lt;/Directory&gt;
     </highlight>
 
-    <p>Any number slashes in the <var>URL-path</var> parameter 
+    <p>Any number slashes in the <var>URL-path</var> parameter
     matches any number of slashes in the requested URL-path.</p>
 
     <p>If the <directive>Alias</directive> directive is used within a
@@ -613,4 +613,3 @@ ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
 </directivesynopsis>
 
 </modulesynopsis>
-
index 3fe9a0027625027a793c9ffd16eebdbbeaf166ad..f20f80c7901879a22ba7fa8c9a338e35359f8c13 100644 (file)
@@ -84,4 +84,3 @@ kludgy implementation of <directive module="core">Limit</directive> and
 </directivesynopsis>
 
 </modulesynopsis>
-
index 4251b5e99236af9b487f7f1270b7c5e9ab7c5965..310b653c216280af909bb6edeca1bbb4999eaccf 100644 (file)
@@ -29,6 +29,8 @@
 <a href="../ja/mod/mod_asis.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="../ko/mod/mod_asis.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Envoie des fichiers contenant leurs propres en-têtes
 HTTP</td></tr>
 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
index c7763a839fd69e40ad35ba34765becb0ef049b89..52cb6aebdfcb38db84fe24c63cc870f1764c4bf4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1330911 -->
+<!-- English Revision: 1330911:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index c8e30525973e158ff39a1ef8026cb803ff3b15c8..96f369ceb95e6a740e36fa33f538969fe56271ae 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1330911 (outdated) -->
+<!-- English Revision: 420990:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 2a658000f6046cf070fbce11a6028a1534d56b9e..be69d0a2534c1710ff1a59ff76c48fa67f7224dc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1330911 (outdated) -->
+<!-- English Revision: 151408:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index e8af141c7ca8ab32f768de57e8145c8ea9ea7765..c71ecbde4aa6069cfc4c795ca6190679ed672b9c 100644 (file)
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
   </variants>
index e3718413886bc5f1e220cd302a2ee5caa7abb282..2edd5d6e4ac71de2a93c165f9c11232f30dd1646 100644 (file)
@@ -207,4 +207,3 @@ AuthnCacheProvideFor dbd myprovider
 </directivesynopsis>
 
 </modulesynopsis>
-
index 398d8129b8a322e0b122151ff82c4341979c6ea9..f42396e313dd3bdeab703b3b35dadac22f91fe7d 100644 (file)
@@ -41,7 +41,7 @@ httpd authentication and authorization</td></tr>
     authenticators and authorizors which participate in one or both
     phases.</p>
 
-    <p>FastCGI authorizers can authenticate using user id and password, 
+    <p>FastCGI authorizers can authenticate using user id and password,
     such as for Basic authentication, or can authenticate using arbitrary
     mechanisms.</p>
 </div>
@@ -68,7 +68,7 @@ and Access Control</a></li>
 <div class="section">
 <h2><a name="invocations" id="invocations">Invocation modes</a></h2>
 
-    <p>The invocation modes for FastCGI authorizers supported by this 
+    <p>The invocation modes for FastCGI authorizers supported by this
     module are distinguished by two characteristics, <em>type</em> and
     auth <em>mechanism</em>.</p>
 
@@ -89,7 +89,7 @@ and Access Control</a></li>
       <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
       <code>AuthBasicProvider</code></dt>
 
-      <dd>In this mode, 
+      <dd>In this mode,
       <code>FCGI_ROLE</code> is set to <code>AUTHORIZER</code> and
       <code>FCGI_APACHE_ROLE</code> is set to <code>AUTHENTICATOR</code>.
       The application must be defined as provider type <em>authn</em>
@@ -140,7 +140,7 @@ while (FCGI::accept &gt;= 0) {
       AUTHORIZER</code> and <code>FCGI_APACHE_ROLE</code> is set to
       <code>AUTHORIZER</code>.  The application must be defined as
       provider type <em>authz</em> using <code class="directive"><a href="#authnzfcgidefineprovider">
-      AuthnzFcgiDefineProvider</a></code>.  When invoked, the application 
+      AuthnzFcgiDefineProvider</a></code>.  When invoked, the application
       is expected to authorize the client using the provided user id and other
       request data.  Example application:
 <pre class="prettyprint lang-perl">#!/usr/bin/perl
@@ -185,8 +185,8 @@ while (FCGI::accept &gt;= 0) {
       using <code class="directive"><a href="#authnzfcgidefineprovider">
       AuthnzFcgiDefineProvider</a></code>.  The application is expected to
       handle both authentication and authorization in the same invocation
-      using the user id, password, and other request data.  The invocation 
-      occurs during the Apache httpd API authentication phase.  If the 
+      using the user id, password, and other request data.  The invocation
+      occurs during the Apache httpd API authentication phase.  If the
       application returns 200 and the same provider is invoked during the
       authorization phase (via <code class="directive">Require</code>), mod_authnz_fcgi
       will return success for the authorization phase without invoking the
@@ -241,7 +241,7 @@ while (FCGI::accept &gt;= 0) {
     die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
     die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";
 
-    # This authorizer assumes that the RequireBasicAuth option of 
+    # This authorizer assumes that the RequireBasicAuth option of
     # AuthnzFcgiCheckAuthnProvider is On:
     die if !$ENV{'REMOTE_PASSWD'};
     die if !$ENV{'REMOTE_USER'};
@@ -278,14 +278,14 @@ while (FCGI::accept &gt;= 0) {
       </dd>
 
     </dl>
-    
+
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">Additional examples</a></h2>
 
   <ol>
     <li>If your application supports the separate authentication and
-    authorization roles (<code>AUTHENTICATOR</code> and <code>AUTHORIZER</code>), define 
+    authorization roles (<code>AUTHENTICATOR</code> and <code>AUTHORIZER</code>), define
     separate providers as follows, even if they map to the same
     application:
 
@@ -293,7 +293,7 @@ while (FCGI::accept &gt;= 0) {
 AuthnzFcgiDefineProvider authz  FooAuthz  fcgi://localhost:10102/</pre>
 
 
-    Specify the authn provider on 
+    Specify the authn provider on
     <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
     and the authz provider on
     <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>:
@@ -305,7 +305,7 @@ Require FooAuthz</pre>
 
     </li>
 
-    <li>If your application supports the generic <code>AUTHORIZER</code> role 
+    <li>If your application supports the generic <code>AUTHORIZER</code> role
     (authentication and authorizer in one invocation), define a
     single provider as follows:
 
@@ -333,7 +333,7 @@ Require FooAuthnz</pre>
       <dt>Apache httpd access checker</dt>
       <dd>The Apache httpd API <em>access check</em> phase is a separate
       phase from authentication and authorization.  Some other FastCGI
-      implementations implement this phase, which is denoted by the 
+      implementations implement this phase, which is denoted by the
       setting of <code>FCGI_APACHE_ROLE</code> to <code>ACCESS_CHECKER</code>.</dd>
 
       <dt>Local (Unix) sockets or pipes</dt>
@@ -355,7 +355,7 @@ Require FooAuthnz</pre>
       start them.</dd>
 
       <dt>AP_AUTH_INTERNAL_PER_URI</dt>
-      <dd>All providers are currently registered as 
+      <dd>All providers are currently registered as
       AP_AUTH_INTERNAL_PER_CONF, which means that checks are not
       performed again for internal subrequests with the same
       access control configuration as the initial request.</dd>
@@ -389,9 +389,9 @@ Require FooAuthnz</pre>
         <li>General messages for debugging are logged at log level
         <code>debug</code>.</li>
         <li>Environment variables passed to the application are
-        logged at log level <code>trace2</code>. The value of the 
+        logged at log level <code>trace2</code>. The value of the
         <code>REMOTE_PASSWD</code> variable will be obscured,
-        but <strong>any other sensitive data will be visible in the 
+        but <strong>any other sensitive data will be visible in the
         log</strong>.</li>
         <li>All I/O between the module and the FastCGI application,
         including all environment variables, will be logged in printable
@@ -452,7 +452,7 @@ authentication hook.</td></tr>
 
       <dt><em>option</em></dt>
       <dd>The following options are supported:
-      
+
       <dl>
          <dt>Authoritative On|Off (default On)</dt>
          <dd>This controls whether or not other modules are allowed
@@ -479,7 +479,7 @@ authentication hook.</td></tr>
          evaluated after calling the authorizer, determines the
          user.  The expression follows <a href="../expr.html">
          ap_expr syntax</a> and must resolve to a string.  A typical
-         use is to reference a <code>Variable-<em>XXX</em></code> 
+         use is to reference a <code>Variable-<em>XXX</em></code>
          setting returned by the authorizer using an option like
          <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>.  If
          this option is specified and the user id can't be retrieved
@@ -515,9 +515,9 @@ authentication and/or authorization</td></tr>
 
       <dt><em>provider-name</em></dt>
       <dd>This is used to assign a name to the provider which is
-      used in other directives such as 
+      used in other directives such as
       <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
-      and 
+      and
       <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>
 
       <dt><em>backend-address</em></dt>
index 8430e6feb7186c12492b6957ac5d8dd08566afd3..48d0392b280c23c87e0bb2b4bf554b93880197b2 100644 (file)
@@ -38,7 +38,7 @@ httpd authentication and authorization</description>
     authenticators and authorizors which participate in one or both
     phases.</p>
 
-    <p>FastCGI authorizers can authenticate using user id and password, 
+    <p>FastCGI authorizers can authenticate using user id and password,
     such as for Basic authentication, or can authenticate using arbitrary
     mechanisms.</p>
 </summary>
@@ -51,7 +51,7 @@ and Access Control</a></seealso>
 
 <section id="invocations"><title>Invocation modes</title>
 
-    <p>The invocation modes for FastCGI authorizers supported by this 
+    <p>The invocation modes for FastCGI authorizers supported by this
     module are distinguished by two characteristics, <em>type</em> and
     auth <em>mechanism</em>.</p>
 
@@ -72,7 +72,7 @@ and Access Control</a></seealso>
       <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
       <code>AuthBasicProvider</code></dt>
 
-      <dd>In this mode, 
+      <dd>In this mode,
       <code>FCGI_ROLE</code> is set to <code>AUTHORIZER</code> and
       <code>FCGI_APACHE_ROLE</code> is set to <code>AUTHENTICATOR</code>.
       The application must be defined as provider type <em>authn</em>
@@ -125,7 +125,7 @@ AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/
       AUTHORIZER</code> and <code>FCGI_APACHE_ROLE</code> is set to
       <code>AUTHORIZER</code>.  The application must be defined as
       provider type <em>authz</em> using <directive module="mod_authnz_fcgi">
-      AuthnzFcgiDefineProvider</directive>.  When invoked, the application 
+      AuthnzFcgiDefineProvider</directive>.  When invoked, the application
       is expected to authorize the client using the provided user id and other
       request data.  Example application:
 <highlight language="perl">
@@ -172,8 +172,8 @@ AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/
       using <directive module="mod_authnz_fcgi">
       AuthnzFcgiDefineProvider</directive>.  The application is expected to
       handle both authentication and authorization in the same invocation
-      using the user id, password, and other request data.  The invocation 
-      occurs during the Apache httpd API authentication phase.  If the 
+      using the user id, password, and other request data.  The invocation
+      occurs during the Apache httpd API authentication phase.  If the
       application returns 200 and the same provider is invoked during the
       authorization phase (via <directive>Require</directive>), mod_authnz_fcgi
       will return success for the authorization phase without invoking the
@@ -222,7 +222,7 @@ AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
       AUTHORIZER</code> and <code>FCGI_APACHE_ROLE</code> is set to
       <code>AUTHENTICATOR</code>.  The application must be defined as
       provider type <em>authn</em> using <directive module="mod_authnz_fcgi">
-      AuthnzFcgiDefineProvider</directive>.  <directive 
+      AuthnzFcgiDefineProvider</directive>.  <directive
       module="mod_authnz_fcgi">AuthnzFcgiCheckAuthnProvider</directive>
       specifies when it is called.  Example application:
 <highlight language="perl">
@@ -232,7 +232,7 @@ while (FCGI::accept >= 0) {
     die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
     die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";
 
-    # This authorizer assumes that the RequireBasicAuth option of 
+    # This authorizer assumes that the RequireBasicAuth option of
     # AuthnzFcgiCheckAuthnProvider is On:
     die if !$ENV{'REMOTE_PASSWD'};
     die if !$ENV{'REMOTE_USER'};
@@ -270,14 +270,14 @@ AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/
       </dd>
 
     </dl>
-    
+
 </section>
 
 <section id="examples"><title>Additional examples</title>
 
   <ol>
     <li>If your application supports the separate authentication and
-    authorization roles (<code>AUTHENTICATOR</code> and <code>AUTHORIZER</code>), define 
+    authorization roles (<code>AUTHENTICATOR</code> and <code>AUTHORIZER</code>), define
     separate providers as follows, even if they map to the same
     application:
 
@@ -286,7 +286,7 @@ AuthnzFcgiDefineProvider authn  FooAuthn  fcgi://localhost:10102/
 AuthnzFcgiDefineProvider authz  FooAuthz  fcgi://localhost:10102/
 </highlight>
 
-    Specify the authn provider on 
+    Specify the authn provider on
     <directive module="mod_auth_basic">AuthBasicProvider</directive>
     and the authz provider on
     <directive module="mod_authz_core">Require</directive>:
@@ -299,7 +299,7 @@ Require FooAuthz
 </highlight>
     </li>
 
-    <li>If your application supports the generic <code>AUTHORIZER</code> role 
+    <li>If your application supports the generic <code>AUTHORIZER</code> role
     (authentication and authorizer in one invocation), define a
     single provider as follows:
 
@@ -329,7 +329,7 @@ Require FooAuthnz
       <dt>Apache httpd access checker</dt>
       <dd>The Apache httpd API <em>access check</em> phase is a separate
       phase from authentication and authorization.  Some other FastCGI
-      implementations implement this phase, which is denoted by the 
+      implementations implement this phase, which is denoted by the
       setting of <code>FCGI_APACHE_ROLE</code> to <code>ACCESS_CHECKER</code>.</dd>
 
       <dt>Local (Unix) sockets or pipes</dt>
@@ -351,7 +351,7 @@ Require FooAuthnz
       start them.</dd>
 
       <dt>AP_AUTH_INTERNAL_PER_URI</dt>
-      <dd>All providers are currently registered as 
+      <dd>All providers are currently registered as
       AP_AUTH_INTERNAL_PER_CONF, which means that checks are not
       performed again for internal subrequests with the same
       access control configuration as the initial request.</dd>
@@ -385,9 +385,9 @@ Require FooAuthnz
         <li>General messages for debugging are logged at log level
         <code>debug</code>.</li>
         <li>Environment variables passed to the application are
-        logged at log level <code>trace2</code>. The value of the 
+        logged at log level <code>trace2</code>. The value of the
         <code>REMOTE_PASSWD</code> variable will be obscured,
-        but <strong>any other sensitive data will be visible in the 
+        but <strong>any other sensitive data will be visible in the
         log</strong>.</li>
         <li>All I/O between the module and the FastCGI application,
         including all environment variables, will be logged in printable
@@ -426,9 +426,9 @@ authentication and/or authorization</description>
 
       <dt><em>provider-name</em></dt>
       <dd>This is used to assign a name to the provider which is
-      used in other directives such as 
+      used in other directives such as
       <directive module="mod_auth_basic">AuthBasicProvider</directive>
-      and 
+      and
       <directive module="mod_authz_core">Require</directive>.</dd>
 
       <dt><em>backend-address</em></dt>
@@ -482,7 +482,7 @@ authentication hook.</description>
 
       <dt><em>option</em></dt>
       <dd>The following options are supported:
-      
+
       <dl>
          <dt>Authoritative On|Off (default On)</dt>
          <dd>This controls whether or not other modules are allowed
@@ -509,7 +509,7 @@ authentication hook.</description>
          evaluated after calling the authorizer, determines the
          user.  The expression follows <a href="../expr.html">
          ap_expr syntax</a> and must resolve to a string.  A typical
-         use is to reference a <code>Variable-<em>XXX</em></code> 
+         use is to reference a <code>Variable-<em>XXX</em></code>
          setting returned by the authorizer using an option like
          <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>.  If
          this option is specified and the user id can't be retrieved
index 465ec9b022d818c1797b85d17a658c0a36fc1a94..268b5fa0dbab5a853d7dd38fe8dd06c283e4609a 100644 (file)
@@ -1160,8 +1160,8 @@ evaluated before the user search is discontinued.</td></tr>
    <div class="note"><h3>Nested groups performance</h3>
    <p> When <code class="directive">AuthLDAPSubGroupAttribute</code> overlaps with
    <code class="directive">AuthLDAPGroupAttribute</code> (as it does by default and
-   as required by common LDAP schemas), uncached searching for subgroups in 
-   large groups can be very slow. If you use large, non-nested groups, keep 
+   as required by common LDAP schemas), uncached searching for subgroups in
+   large groups can be very slow. If you use large, non-nested groups, keep
    <code class="directive">AuthLDAPMaxSubGroupDepth</code> set to zero.</p>
    </div>
 
@@ -1188,7 +1188,7 @@ query to set the REMOTE_USER environment variable</td></tr>
     directive is useful should you want people to log into a website
     using an email address, but a backend application expects the
     username as a userid.</p>
-    <p> This directive only has effect when this module is used for 
+    <p> This directive only has effect when this module is used for
     authentication.</p>
 
 </div>
index b96164631ec4a26c14cd67232df65d4a44ad5000..dfd13f3d3929b0ab0ada4b649b17416dc8b1589a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1643416:1673582 (outdated) -->
+<!-- English Revision: 1643416:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 4e649e2165b1116646493169aba2a081d58ae25c..20206a6c3ba27df9355bd5612452dee78b3cb44f 100644 (file)
@@ -71,7 +71,7 @@
     same header repeatedly toggles between ascending and descending
     order. These column header links are suppressed with the
     <code class="directive"><a href="#indexoptions">IndexOptions</a></code> directive's
-    <code><a href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting</a></code> 
+    <code><a href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting</a></code>
     option.</p>
 
     <p>Note that when the display is sorted by "Size", it's the
@@ -328,7 +328,7 @@ AddDescription "My friend Marshall" friends/mars.gif</pre>
     <div class="note"><h3>Arguments with path information</h3>
       <p>Absolute paths are not currently supported and do not match
       anything at runtime. Arguments with relative path information,
-      which would normally only be used in htaccess context, are implicitly 
+      which would normally only be used in htaccess context, are implicitly
       prefixed with '*/' to avoid matching partial directory names.</p>
     </div>
 
@@ -658,7 +658,7 @@ indexing</td></tr>
       <code>FoldersFirst</code> is enabled, subdirectory
       <code>Zed</code> will be listed before subdirectory
       <code>Beta</code>, which will be listed before normal files
-      <code>Gamma</code> and <code>Alpha</code>. 
+      <code>Gamma</code> and <code>Alpha</code>.
       <strong>This option only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a>
       is also enabled.</strong>
       </dd>
@@ -685,7 +685,7 @@ indexing</td></tr>
       to wait until all the images have been loaded. If no value is given for
       the option, it defaults to the standard height of the icons supplied
       with the Apache httpd software.
-     
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> is also enabled.</strong>
 
@@ -763,7 +763,7 @@ indexing</td></tr>
       space to use for something else. See <code class="directive"><a href="#adddescription">AddDescription</a></code> for information about setting the file
       description. See also the <code><a href="#indexoptions.descriptionwidth">DescriptionWidth</a></code>
       index option to limit the size of the description column.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> is also enabled.</strong>
       </dd>
@@ -797,7 +797,7 @@ indexing</td></tr>
 
       <dd>This will suppress the display of the last modification date,
       in fancy indexing listings.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> is also enabled.</strong>
       </dd>
@@ -811,7 +811,7 @@ indexing</td></tr>
       by the final specification prohibits <code>img</code> and
       <code>hr</code> elements from the <code>pre</code> block (used to
       format FancyIndexed listings.)
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> is also enabled.</strong>
 
@@ -820,7 +820,7 @@ indexing</td></tr>
       <dt><a name="indexoptions.suppresssize" id="indexoptions.suppresssize">SuppressSize</a></dt>
 
       <dd>This will suppress the file size in fancy indexing listings.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a> is also enabled.</strong>
       </dd>
index 9898bc8722982e2583f9bdb84e8a7c800a0aab28..55e2c9fdd074326c12d11ad09e54126a9ce612a5 100644 (file)
@@ -69,7 +69,7 @@
     same header repeatedly toggles between ascending and descending
     order. These column header links are suppressed with the
     <directive module="mod_autoindex">IndexOptions</directive> directive's
-    <code><a href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting</a></code> 
+    <code><a href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting</a></code>
     option.</p>
 
     <p>Note that when the display is sorted by "Size", it's the
@@ -320,7 +320,7 @@ AddDescription "My friend Marshall" friends/mars.gif
     <note><title>Arguments with path information</title>
       <p>Absolute paths are not currently supported and do not match
       anything at runtime. Arguments with relative path information,
-      which would normally only be used in htaccess context, are implicitly 
+      which would normally only be used in htaccess context, are implicitly
       prefixed with '*/' to avoid matching partial directory names.</p>
     </note>
 
@@ -666,8 +666,8 @@ indexing</description>
       <code>FoldersFirst</code> is enabled, subdirectory
       <code>Zed</code> will be listed before subdirectory
       <code>Beta</code>, which will be listed before normal files
-      <code>Gamma</code> and <code>Alpha</code>. 
-      <strong>This option only has an effect if <a 
+      <code>Gamma</code> and <code>Alpha</code>.
+      <strong>This option only has an effect if <a
       href="#indexoptions.fancyindexing"><code>FancyIndexing</code></a>
       is also enabled.</strong>
       </dd>
@@ -698,7 +698,7 @@ indexing</description>
       to wait until all the images have been loaded. If no value is given for
       the option, it defaults to the standard height of the icons supplied
       with the Apache httpd software.
-     
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"
       ><code>FancyIndexing</code></a> is also enabled.</strong>
@@ -793,7 +793,7 @@ indexing</description>
       description. See also the <code><a
       href="#indexoptions.descriptionwidth">DescriptionWidth</a></code>
       index option to limit the size of the description column.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"
       ><code>FancyIndexing</code></a> is also enabled.</strong>
@@ -834,7 +834,7 @@ indexing</description>
 
       <dd>This will suppress the display of the last modification date,
       in fancy indexing listings.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"
       ><code>FancyIndexing</code></a> is also enabled.</strong>
@@ -850,7 +850,7 @@ indexing</description>
       by the final specification prohibits <code>img</code> and
       <code>hr</code> elements from the <code>pre</code> block (used to
       format FancyIndexed listings.)
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"
       ><code>FancyIndexing</code></a> is also enabled.</strong>
@@ -861,7 +861,7 @@ indexing</description>
                id="indexoptions.suppresssize">SuppressSize</a></dt>
 
       <dd>This will suppress the file size in fancy indexing listings.
-      
+
       <strong>This option
       only has an effect if <a href="#indexoptions.fancyindexing"
       ><code>FancyIndexing</code></a> is also enabled.</strong>
@@ -1058,7 +1058,7 @@ Name|Date|Size|Description</syntax>
     following classes are associated with the various parts of the
     listing:</p>
 
-    <table border="1" style="zebra"> 
+    <table border="1" style="zebra">
     <tr><th>Class</th><th>Definition</th></tr>
     <tr><td>tr.indexhead</td><td>Header row of listing</td></tr>
     <tr><td>th.indexcolicon and td.indexcolicon</td> <td>Icon column</td></tr>
index 5440db4af067ef3c23f42f53f10ab8d73bb8718e..71a11223962e607227ada36d255b5f55fc7d6e96 100644 (file)
@@ -181,7 +181,7 @@ LoadModule cache_module modules/mod_cache.so
         CacheDirLevels 5
         CacheDirLength 3
     &lt;/IfModule&gt;
-    
+
     # When acting as a proxy, don't cache the list of security updates
     CacheDisable http://security.update.server/update-list/
 &lt;/IfModule&gt;</pre>
@@ -473,7 +473,7 @@ manager</td></tr>
     <code class="directive">&lt;LocationMatch&gt;</code> sections are processed
     before globally defined <code class="directive">CacheEnable</code> directives.</p>
 
-    <p>When acting as a forward proxy server, <var>url-string</var> must 
+    <p>When acting as a forward proxy server, <var>url-string</var> must
     minimally begin with a protocol for which caching should be enabled.</p>
 
     <pre class="prettyprint lang-config"># Cache content (normal handler only)
@@ -570,7 +570,7 @@ CacheHeader on</pre>
     <code class="directive">CacheIgnoreCacheControl</code> directive allows this
     behavior to be overridden.  <code class="directive">CacheIgnoreCacheControl On</code>
     tells the server to attempt to serve the resource from the cache even
-    if the request contains no-cache header values.</p>  
+    if the request contains no-cache header values.</p>
 
     <pre class="prettyprint lang-config">CacheIgnoreCacheControl On</pre>
 
@@ -842,7 +842,7 @@ CacheLock on</pre>
 </table>
   <p>The <code class="directive">CacheLockPath</code> directive allows you to specify the
   directory in which the locks are created.  If <var>directory</var> is not an absolute
-  path, the location specified will be relative to the value of 
+  path, the location specified will be relative to the value of
   <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</p>
 
 </div>
index e6bf98bf11ad7a49629c76eb7688fdfab51affbe..8afde7fc0d066d3ceadc8482fd1173afa3595e0d 100644 (file)
@@ -162,7 +162,7 @@ LoadModule cache_module modules/mod_cache.so
         CacheDirLevels 5
         CacheDirLength 3
     &lt;/IfModule&gt;
-    
+
     # When acting as a proxy, don't cache the list of security updates
     CacheDisable http://security.update.server/update-list/
 &lt;/IfModule&gt;
@@ -374,7 +374,7 @@ manager</description>
     <directive type="section">LocationMatch</directive> sections are processed
     before globally defined <directive>CacheEnable</directive> directives.</p>
 
-    <p>When acting as a forward proxy server, <var>url-string</var> must 
+    <p>When acting as a forward proxy server, <var>url-string</var> must
     minimally begin with a protocol for which caching should be enabled.</p>
 
     <highlight language="config">
@@ -570,7 +570,7 @@ header.</description>
     <directive>CacheIgnoreCacheControl</directive> directive allows this
     behavior to be overridden.  <directive>CacheIgnoreCacheControl On</directive>
     tells the server to attempt to serve the resource from the cache even
-    if the request contains no-cache header values.</p>  
+    if the request contains no-cache header values.</p>
 
     <highlight language="config">
       CacheIgnoreCacheControl On
@@ -877,7 +877,7 @@ CacheLock on
 <usage>
   <p>The <directive>CacheLockPath</directive> directive allows you to specify the
   directory in which the locks are created.  If <var>directory</var> is not an absolute
-  path, the location specified will be relative to the value of 
+  path, the location specified will be relative to the value of
   <directive module="core">DefaultRuntimeDir</directive>.</p>
 </usage>
 </directivesynopsis>
index 12847614d8c99844793b7c75b2824389e9c04b38..6d698a54c1a08df2dee2ee539ad80194cb6abd13 100644 (file)
@@ -28,6 +28,8 @@
 <a href="../fr/mod/mod_cern_meta.html" title="Français">&nbsp;fr&nbsp;</a> |
 <a href="../ko/mod/mod_cern_meta.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>La sémantique des métafichiers du serveur httpd du
 CERN</td></tr>
 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
index e52b0df00dd130b002159bc9074b8943ba867e58..d360901961f995d9a77cb7bc51b7d665448cb744 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1336590 -->
+<!-- English Revision: 1336590:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 16bd7d801ec6c28760e2792762c79c324e7bacbb..096cc749a70be5cee6d28551079fc29505601c6e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 420990:1336590 (outdated) -->
+<!-- English Revision: 420990:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 8a68d26e7dc6d56406bfa15369b3352c1a8f81c9..92cdd1bb651603c678074babc8f659d54ac232d9 100644 (file)
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">fr</variant>
     <variant outdated="yes">ko</variant>
   </variants>
 </metafile>
index 6f71c94152798c2eeb37946808a7c6f8b9af8a35..6a1b064b12474a63785a4ca5ba418d94082f80c5 100644 (file)
@@ -193,36 +193,36 @@ SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip</pre>
 <h2><a name="precompressed" id="precompressed">Serving pre-compressed
 content</a></h2>
 
-    <p>Since <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> re-compresses content each 
+    <p>Since <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> re-compresses content each
     time a request is made, some performance benefit can be derived by
     pre-compressing the content and telling mod_deflate to serve them
     without re-compressing them. This may be accomplished using a
     configuration like the following:</p>
 
     <pre class="prettyprint lang-config">&lt;IfModule mod_headers.c&gt;
-    # Serve gzip compressed CSS files if they exist 
+    # Serve gzip compressed CSS files if they exist
     # and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" "-s"
+    RewriteRule "^(.*)\.css"              "$1\.css\.gz" [QSA]
 
-    # Serve gzip compressed JS files if they exist 
+    # Serve gzip compressed JS files if they exist
     # and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" "-s"
+    RewriteRule "^(.*)\.js"               "$1\.js\.gz" [QSA]
 
 
     # Serve correct content types, and prevent mod_deflate double gzip.
-    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
-    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
+    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
+    RewriteRule "\.js\.gz$"  "-" [T=text/javascript,E=no-gzip:1]
 
 
     &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
       # Serve correct encoding type.
       Header append Content-Encoding gzip
 
-      # Force proxies to cache gzipped &amp; 
+      # Force proxies to cache gzipped &amp;
       # non-gzipped css/js files separately.
       Header append Vary Accept-Encoding
     &lt;/FilesMatch&gt;
@@ -244,18 +244,18 @@ content</a></h2>
     how the ETag hader should be altered when a response is compressed.</p>
     <dl>
     <dt>AddSuffix</dt>
-    <dd><p>Append the compression method onto the end of the ETag, causing 
-        compressed and uncompressed representations to have unique ETags.  
-        This has been the default since 2.4.0, but prevents serving 
-        "HTTP Not Modified" (304) responses to conditional requests for 
+    <dd><p>Append the compression method onto the end of the ETag, causing
+        compressed and uncompressed representations to have unique ETags.
+        This has been the default since 2.4.0, but prevents serving
+        "HTTP Not Modified" (304) responses to conditional requests for
         compressed content.</p></dd>
     <dt>NoChange</dt>
     <dd><p>Don't change the ETag on a compressed response. This was the default
         prior to 2.4.0, but does not satisfy the HTTP/1.1 property that all
         representations of the same resource have unique ETags. </p></dd>
     <dt>Remove</dt>
-    <dd><p>Remove the ETag header from compressed responses. This prevents 
-        some conditional requests from being possible, but avoids the 
+    <dd><p>Remove the ETag header from compressed responses. This prevents
+        some conditional requests from being possible, but avoids the
         shortcomings of the preceding options.  </p></dd>
     </dl>
 
@@ -308,7 +308,7 @@ content</a></h2>
     adding the value to your <a href="../logs.html#accesslog">access log</a>.</p>
 
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">      DeflateFilterNote ratio
-    
+
       LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
       CustomLog logs/deflate_log deflate</pre>
 </div>
@@ -356,7 +356,7 @@ CustomLog logs/deflate_log deflate</pre>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
 </table>
-    <p>The <code class="directive">DeflateInflateLimitRequestBody</code> directive 
+    <p>The <code class="directive">DeflateInflateLimitRequestBody</code> directive
         specifies the maximum size of an inflated request body. If it is unset,
         <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> is applied to the
         inflated body.</p>
@@ -365,7 +365,7 @@ CustomLog logs/deflate_log deflate</pre>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of times the inflation ratio for request bodies 
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>3</code></td></tr>
@@ -374,9 +374,9 @@ CustomLog logs/deflate_log deflate</pre>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
 </table>
-    <p>The <code class="directive">DeflateInflateRatioBurst</code> directive 
-       specifies the maximum number of times the 
-       <code class="directive">DeflateInflateRatioLimit</code> can be crossed before 
+    <p>The <code class="directive">DeflateInflateRatioBurst</code> directive
+       specifies the maximum number of times the
+       <code class="directive">DeflateInflateRatioLimit</code> can be crossed before
        terminating the request.</p>
 
 </div>
@@ -391,10 +391,10 @@ CustomLog logs/deflate_log deflate</pre>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_deflate</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.10 and later</td></tr>
 </table>
-    <p>The <code class="directive">DeflateInflateRatioLimit</code> directive 
-        specifies the maximum ratio of deflated to inflated size of an 
+    <p>The <code class="directive">DeflateInflateRatioLimit</code> directive
+        specifies the maximum ratio of deflated to inflated size of an
         inflated request body. This ratio is checked as the body is
-        streamed in, and if crossed more than 
+        streamed in, and if crossed more than
         <code class="directive">DeflateInflateRatioBurst</code> times, the request
         will be terminated.</p>
 
index 2bad7efdca6f826a62f72774d4468c1d0baf8a2b..df6f3b9c71323b428cbd5d7655c391edbfbce516 100644 (file)
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">ディレクティブ</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum number of times the inflation ratio for request bodies 
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>3</code></td></tr>
index 43d6d85fc44efbaa0012fa3f0811ed5a8a6d6de1..8ff6334efd12fe6e63e0465b090a077ea194cbe7 100644 (file)
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">Áö½Ã¾î</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum number of times the inflation ratio for request bodies 
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>3</code></td></tr>
index d13988422ec20e907654b0627a3bd825d62bb54c..49749bac6eba3bbc9b58a12e059802fe1753dc9d 100644 (file)
@@ -68,7 +68,7 @@ client</description>
 
       <highlight language="config">
 SetOutputFilter DEFLATE
-SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip 
+SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
       </highlight>
 
       <p>If you want to restrict the compression to particular MIME types
@@ -181,7 +181,7 @@ SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
 <section id="precompressed"><title>Serving pre-compressed
 content</title>
 
-    <p>Since <module>mod_deflate</module> re-compresses content each 
+    <p>Since <module>mod_deflate</module> re-compresses content each
     time a request is made, some performance benefit can be derived by
     pre-compressing the content and telling mod_deflate to serve them
     without re-compressing them. This may be accomplished using a
@@ -189,29 +189,29 @@ content</title>
 
     <highlight language="config">
 &lt;IfModule mod_headers.c&gt;
-    # Serve gzip compressed CSS files if they exist 
+    # Serve gzip compressed CSS files if they exist
     # and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" "-s"
+    RewriteRule "^(.*)\.css"              "$1\.css\.gz" [QSA]
 
-    # Serve gzip compressed JS files if they exist 
+    # Serve gzip compressed JS files if they exist
     # and the client accepts gzip.
-    RewriteCond %{HTTP:Accept-encoding} gzip
-    RewriteCond %{REQUEST_FILENAME}\.gz -s
-    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" "-s"
+    RewriteRule "^(.*)\.js"               "$1\.js\.gz" [QSA]
 
 
     # Serve correct content types, and prevent mod_deflate double gzip.
-    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
-    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
+    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
+    RewriteRule "\.js\.gz$"  "-" [T=text/javascript,E=no-gzip:1]
 
 
     &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
       # Serve correct encoding type.
       Header append Content-Encoding gzip
 
-      # Force proxies to cache gzipped &amp; 
+      # Force proxies to cache gzipped &amp;
       # non-gzipped css/js files separately.
       Header append Vary Accept-Encoding
     &lt;/FilesMatch&gt;
@@ -238,7 +238,7 @@ content</title>
     <example><title>Example</title>
     <highlight language="config">
       DeflateFilterNote ratio
-    
+
       LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
       CustomLog logs/deflate_log deflate
       </highlight>
@@ -353,18 +353,18 @@ CustomLog logs/deflate_log deflate
     how the ETag hader should be altered when a response is compressed.</p>
     <dl>
     <dt>AddSuffix</dt>
-    <dd><p>Append the compression method onto the end of the ETag, causing 
-        compressed and uncompressed representations to have unique ETags.  
-        This has been the default since 2.4.0, but prevents serving 
-        "HTTP Not Modified" (304) responses to conditional requests for 
+    <dd><p>Append the compression method onto the end of the ETag, causing
+        compressed and uncompressed representations to have unique ETags.
+        This has been the default since 2.4.0, but prevents serving
+        "HTTP Not Modified" (304) responses to conditional requests for
         compressed content.</p></dd>
     <dt>NoChange</dt>
     <dd><p>Don't change the ETag on a compressed response. This was the default
         prior to 2.4.0, but does not satisfy the HTTP/1.1 property that all
         representations of the same resource have unique ETags. </p></dd>
     <dt>Remove</dt>
-    <dd><p>Remove the ETag header from compressed responses. This prevents 
-        some conditional requests from being possible, but avoids the 
+    <dd><p>Remove the ETag header from compressed responses. This prevents
+        some conditional requests from being possible, but avoids the
         shortcomings of the preceding options.  </p></dd>
     </dl>
 </usage>
@@ -380,7 +380,7 @@ CustomLog logs/deflate_log deflate
 <compatibility>2.4.10 and later</compatibility>
 
 <usage>
-    <p>The <directive>DeflateInflateLimitRequestBody</directive> directive 
+    <p>The <directive>DeflateInflateLimitRequestBody</directive> directive
         specifies the maximum size of an inflated request body. If it is unset,
         <directive module="core">LimitRequestBody</directive> is applied to the
         inflated body.</p>
@@ -397,10 +397,10 @@ CustomLog logs/deflate_log deflate
 <compatibility>2.4.10 and later</compatibility>
 
 <usage>
-    <p>The <directive>DeflateInflateRatioLimit</directive> directive 
-        specifies the maximum ratio of deflated to inflated size of an 
+    <p>The <directive>DeflateInflateRatioLimit</directive> directive
+        specifies the maximum ratio of deflated to inflated size of an
         inflated request body. This ratio is checked as the body is
-        streamed in, and if crossed more than 
+        streamed in, and if crossed more than
         <directive>DeflateInflateRatioBurst</directive> times, the request
         will be terminated.</p>
 </usage>
@@ -408,7 +408,7 @@ CustomLog logs/deflate_log deflate
 
 <directivesynopsis>
 <name>DeflateInflateRatioBurst</name>
-<description>Maximum number of times the inflation ratio for request bodies 
+<description>Maximum number of times the inflation ratio for request bodies
              can be crossed</description>
 <syntax>DeflateInflateRatioBurst <var>value</var></syntax>
 <default>3</default>
@@ -417,12 +417,11 @@ CustomLog logs/deflate_log deflate
 <compatibility>2.4.10 and later</compatibility>
 
 <usage>
-    <p>The <directive>DeflateInflateRatioBurst</directive> directive 
-       specifies the maximum number of times the 
-       <directive>DeflateInflateRatioLimit</directive> can be crossed before 
+    <p>The <directive>DeflateInflateRatioBurst</directive> directive
+       specifies the maximum number of times the
+       <directive>DeflateInflateRatioLimit</directive> can be crossed before
        terminating the request.</p>
 </usage>
 </directivesynopsis>
 
 </modulesynopsis>
-
index c016d24be120af054df7c92460b4a56eaddd88f6..8bf98ceaf5c72df83287f80b05310eaec6a2aec7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1655917:1673892 (outdated) -->
+<!-- English Revision: 1655917:1673930 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index b6480babafbcbaa3c0a9c6bad9e596c44882e6d9..65bba7d667965eebcae8ca70b2753b7a8887ded9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1673892 (outdated) -->
+<!-- English Revision: 420990:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 2353fc11ddbdde52e33c4fbe1bb9428228764d7a..86a896705d1db7dbf1f7dad8c94e0650cddccdc5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1673892 (outdated) -->
+<!-- English Revision: 151408:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index fa2e2c3e471b3177afccece17503d61921ec4b54..6e511305153cf71248060d93b4e9f522b68d7d96 100644 (file)
@@ -69,4 +69,3 @@ once the timer hits.  From there the handler can continue to send data to the cl
 </directivesynopsis>
 
 </modulesynopsis>
-
index d591bf05714db7abafe3941b4953bb015f3bdeed..161503d6f09afb4219e333c85fd24c295388007a 100644 (file)
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in 2.4.8 and later.  Releases prior to 2.4 implicitly
 act as if "DirectoryCheckHandler ON" was specified.</td></tr>
 </table>
-    <p>The <code class="directive">DirectoryCheckHandler</code> directive determines 
+    <p>The <code class="directive">DirectoryCheckHandler</code> directive determines
     whether <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> should check for directory indexes or
     add trailing slashes when some other handler has been configured for
-    the current URL.  Handlers can be set by directives such as 
-    <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> or by other modules at 
+    the current URL.  Handlers can be set by directives such as
+    <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> or by other modules at
     runtime. </p>
 
     <p> In releases prior to 2.4, this module did not take any action if any
-    other handler was configured for a URL. This allows directory indexes to 
-    be served even when a <code class="directive">SetHandler</code> directive is 
+    other handler was configured for a URL. This allows directory indexes to
+    be served even when a <code class="directive">SetHandler</code> directive is
     specified for an entire directory, but it can also result in some conflicts
-    with other modules.</p> 
+    with other modules.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 9cb283bf38b9ca3efc7f7e9800793886e76c3061..72901398e92adf79b691c1d865057461612158d3 100644 (file)
@@ -287,18 +287,18 @@ later</compatibility>
 <compatibility>Available in 2.4.8 and later.  Releases prior to 2.4 implicitly
 act as if "DirectoryCheckHandler ON" was specified.</compatibility>
 <usage>
-    <p>The <directive>DirectoryCheckHandler</directive> directive determines 
+    <p>The <directive>DirectoryCheckHandler</directive> directive determines
     whether <module>mod_dir</module> should check for directory indexes or
     add trailing slashes when some other handler has been configured for
-    the current URL.  Handlers can be set by directives such as 
-    <directive module="core">SetHandler</directive> or by other modules at 
+    the current URL.  Handlers can be set by directives such as
+    <directive module="core">SetHandler</directive> or by other modules at
     runtime. </p>
 
     <p> In releases prior to 2.4, this module did not take any action if any
-    other handler was configured for a URL. This allows directory indexes to 
-    be served even when a <directive>SetHandler</directive> directive is 
+    other handler was configured for a URL. This allows directory indexes to
+    be served even when a <directive>SetHandler</directive> directive is
     specified for an entire directory, but it can also result in some conflicts
-    with other modules.</p> 
+    with other modules.</p>
 </usage>
 </directivesynopsis>
 
index 579e29948339380ff447034cca8bfbb61f74282e..65f0b5046efd1d80aedb82e7c96e3d2c602f43e5 100644 (file)
@@ -90,7 +90,7 @@ ExtFilterDefine c-to-html mode=output \
     # core directive to cause the new filter to
     # be run on output
     SetOutputFilter c-to-html
-    
+
     # mod_mime directive to set the type of .c
     # files to text/c
     AddType text/c .c
@@ -107,11 +107,11 @@ ExtFilterDefine c-to-html mode=output \
 ExtFilterDefine gzip mode=output cmd=/bin/gzip
 
 &lt;Location "/gzipped"&gt;
-    
+
     # core directive to cause the gzip filter to be
     # run on output
     SetOutputFilter gzip
-    
+
     # mod_headers directive to add
     # "Content-Encoding: gzip" header field
     Header set Content-Encoding gzip
index 325caf1b540ff95c1d6039fffb2337bfc433ac50..94b74337a38aa312a0a6cdbf68ee12e3bb6a6dac 100644 (file)
@@ -73,7 +73,7 @@ ExtFilterDefine c-to-html mode=output \
     # core directive to cause the new filter to
     # be run on output
     SetOutputFilter c-to-html
-    
+
     # mod_mime directive to set the type of .c
     # files to text/c
     AddType text/c .c
@@ -91,11 +91,11 @@ ExtFilterDefine c-to-html mode=output \
 ExtFilterDefine gzip mode=output cmd=/bin/gzip
 
 &lt;Location "/gzipped"&gt;
-    
+
     # core directive to cause the gzip filter to be
     # run on output
     SetOutputFilter gzip
-    
+
     # mod_headers directive to add
     # "Content-Encoding: gzip" header field
     Header set Content-Encoding gzip
index 8ce6750ac7dbfe413848a63ef22476c3514a68e9..d94245c193c6efdc86c832e82ff964b087375c92 100644 (file)
@@ -388,10 +388,10 @@ being moved to <code class="module"><a href="../mod/mod_filter.html">mod_filter<
     With two arguments it applies to a <var>filter-name</var> whenever the
     filter runs <em>any</em> provider.</p>
 
-    <p>Flags specified with this directive are merged with the flags 
-    that underlying providers may have registerd with 
+    <p>Flags specified with this directive are merged with the flags
+    that underlying providers may have registerd with
     <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. For example, a filter may internally specify
-    the equivalent of <code>change=yes</code>, but a particular 
+    the equivalent of <code>change=yes</code>, but a particular
     configuration of the module can override with <code>change=no</code>.
     </p>
 
@@ -399,7 +399,7 @@ being moved to <code class="module"><a href="../mod/mod_filter.html">mod_filter<
 
     <dl>
     <dt><code>change=yes|no</code></dt>
-    <dd>Specifies whether the filter changes the content, including possibly 
+    <dd>Specifies whether the filter changes the content, including possibly
     the content length.  The "no" argument is supported in 2.4.7 and later.</dd>
 
     <dt><code>change=1:1</code></dt>
index 780fb59d0efc056df28f316a83bbe775d4666c99..748f5f0ce9ee4d9b1d637c8a7cf32ec5867743d0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1432444 (outdated) -->
+<!-- English Revision: 151408:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index edecf4898b614d3fc4fd935e85f51b5fd48d8020..dd0038d183bd8af1c63990d1ecf599a7f4f75682 100644 (file)
     <p>These variables can be for example used to show only log messages
     for particular URI using <code>journalctl</code>:
     </p>
-    
+
     <pre class="prettyprint lang-">journalctl REQUEST_URI=/index.html -a</pre>
 
-    
+
     <p>For more examples, see systemd-journalctl documentation.</p>
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -88,7 +88,7 @@
     instead of a filename enables logging via systemd-journald(8)
     if the system supports it.
     </p>
-    
+
     <pre class="prettyprint lang-config">ErrorLog journald</pre>
 
 
index 7133cae9daac53b8d06d14212240d4b2fe0a2475..696c0d67e0ee19e24c346d32e0a16f9d41375102 100644 (file)
@@ -61,9 +61,9 @@
     <p>These variables can be for example used to show only log messages
     for particular URI using <code>journalctl</code>:
     </p>
-    
+
     <highlight>journalctl REQUEST_URI=/index.html -a</highlight>
-    
+
     <p>For more examples, see systemd-journalctl documentation.</p>
 </section>
 
@@ -74,7 +74,7 @@
     instead of a filename enables logging via systemd-journald(8)
     if the system supports it.
     </p>
-    
+
     <highlight language="config">
 ErrorLog journald
     </highlight>
index 7042c21c01cffabf795ae77ef2825044574a5080..8336ea43df83c163f77c5cbc528d53b77991ea95 100644 (file)
@@ -473,7 +473,7 @@ LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
     connection pool.  The default value of -1, and any other negative value,
     allows connections of any age to be reused.</p>
 
-    <p>For performance reasons, the reference time used by this directive is 
+    <p>For performance reasons, the reference time used by this directive is
     based on when the LDAP connection is returned to the pool, not the time
     of the last successful I/O with the LDAP server.  </p>
 
@@ -482,7 +482,7 @@ LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
     time is not updated if no backend LDAP conncetions were needed. Second,
     the reference time uses the time the HTTP request was received instead
     of the time the request is completed.</p>
-    
+
     <div class="note"><p>This timeout defaults to units of seconds, but accepts
     suffixes for milliseconds (ms), minutes (min), and hours (h).
     </p></div>
@@ -680,11 +680,11 @@ valid</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
 </table>
-    <p>Specifies the path of the shared memory cache file. If not set, 
+    <p>Specifies the path of the shared memory cache file. If not set,
     anonymous shared memory will be used if the platform supports it.</p>
 
     <p>If <var>file-path</var> is not an absolute path, the location specified
-    will be relative to the value of 
+    will be relative to the value of
     <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</p>
 
 </div>
index 6362eeb8a83415ba67c86d0c17b4b9fc922d48a7..0df854593ea3035b5542c058e8e5b06e2b5b8e8d 100644 (file)
@@ -421,11 +421,11 @@ LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
 <contextlist><context>server config</context></contextlist>
 
 <usage>
-    <p>Specifies the path of the shared memory cache file. If not set, 
+    <p>Specifies the path of the shared memory cache file. If not set,
     anonymous shared memory will be used if the platform supports it.</p>
 
     <p>If <var>file-path</var> is not an absolute path, the location specified
-    will be relative to the value of 
+    will be relative to the value of
     <directive module="core">DefaultRuntimeDir</directive>.</p>
 </usage>
 </directivesynopsis>
@@ -757,7 +757,7 @@ connection client certificates.</description>
     connection pool.  The default value of -1, and any other negative value,
     allows connections of any age to be reused.</p>
 
-    <p>For performance reasons, the reference time used by this directive is 
+    <p>For performance reasons, the reference time used by this directive is
     based on when the LDAP connection is returned to the pool, not the time
     of the last successful I/O with the LDAP server.  </p>
 
@@ -766,7 +766,7 @@ connection client certificates.</description>
     time is not updated if no backend LDAP conncetions were needed. Second,
     the reference time uses the time the HTTP request was received instead
     of the time the request is completed.</p>
-    
+
     <note><p>This timeout defaults to units of seconds, but accepts
     suffixes for milliseconds (ms), minutes (min), and hours (h).
     </p></note>
index e50da0275fd171bd34784370dac83f72fbd6277d..333c3b49e88ea6bfbd3bf47ccedcae6710bf2bb1 100644 (file)
 
       <div class="note">
       <p>Note: The '^' character at the start of three-character formats
-      has no significance, but it must be the first character of any newly 
-      added three-character format to avoid potential conflicts with log 
-      formats that use literals adjacent to a format specifier, such as 
+      has no significance, but it must be the first character of any newly
+      added three-character format to avoid potential conflicts with log
+      formats that use literals adjacent to a format specifier, such as
       "%Dus".</p>
       </div>
 
@@ -510,7 +510,7 @@ CustomLog referer.log referer env=!localreferer</pre>
 
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</pre>
 </div>
-    
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 2b86c0d21f8b92c13a40ca924c4f3613d5ecb428..ea097a6c4c946c8ae8de3646dd1537fc7253f38d 100644 (file)
 
       <note>
       <p>Note: The '^' character at the start of three-character formats
-      has no significance, but it must be the first character of any newly 
-      added three-character format to avoid potential conflicts with log 
-      formats that use literals adjacent to a format specifier, such as 
+      has no significance, but it must be the first character of any newly
+      added three-character format to avoid potential conflicts with log
+      formats that use literals adjacent to a format specifier, such as
       "%Dus".</p>
       </note>
 
@@ -554,7 +554,7 @@ CustomLog referer.log referer env=!localreferer
       LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
       </highlight>
     </example>
-    
+
 </usage>
 </directivesynopsis>
 
index c9f540645e7d6b90cdaffb8d6b191a1496a755df..4e945c43abe43d7a7cbda1e3ec5f86b131919d0f 100644 (file)
@@ -51,9 +51,9 @@ at any time, even between stable releases of the 2.4.x series.
 Be sure to check the CHANGES file before upgrading.</div>
 
 <div class="warning"><h3>Warning</h3>
-<p>This module holds a great deal of power over httpd, which is both a 
-strength and a potential security risk. It is <strong>not</strong> recommended 
-that you use this module on a server that is shared with users you do not 
+<p>This module holds a great deal of power over httpd, which is both a
+strength and a potential security risk. It is <strong>not</strong> recommended
+that you use this module on a server that is shared with users you do not
 trust, as it can be abused to change the internal workings of httpd.</p>
 </div>
 
@@ -252,26 +252,26 @@ performing access control, or setting mime types:</p>
 <tr>
         <td>Quick handler</td>
         <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
-        <td>This is the first hook that will be called after a request has 
+        <td>This is the first hook that will be called after a request has
             been mapped to a host or virtual host</td>
     </tr>
 <tr class="odd">
         <td>Translate name</td>
         <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
-        <td>This phase translates the requested URI into a filename on the 
+        <td>This phase translates the requested URI into a filename on the
             system. Modules such as <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> and
             <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> operate in this phase.</td>
     </tr>
 <tr>
         <td>Map to storage</td>
         <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
-        <td>This phase maps files to their physical, cached or external/proxied storage. 
+        <td>This phase maps files to their physical, cached or external/proxied storage.
             It can be used by proxy or caching modules</td>
     </tr>
 <tr class="odd">
         <td>Check Access</td>
         <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
-        <td>This phase checks whether a client has access to a resource. This 
+        <td>This phase checks whether a client has access to a resource. This
             phase is run before the user is authenticated, so beware.
         </td>
     </tr>
@@ -282,41 +282,41 @@ performing access control, or setting mime types:</p>
     </tr>
 <tr class="odd">
         <td>Check Authorization</td>
-        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code> or 
+        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code> or
             <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
-        <td>This phase authorizes a user based on the negotiated credentials, such as 
+        <td>This phase authorizes a user based on the negotiated credentials, such as
             user ID, client certificate etc.
         </td>
     </tr>
 <tr>
         <td>Check Type</td>
         <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
-        <td>This phase checks the requested file and assigns a content type and 
+        <td>This phase checks the requested file and assigns a content type and
             a handler to it</td>
     </tr>
 <tr class="odd">
         <td>Fixups</td>
         <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
-        <td>This is the final "fix anything" phase before the content handlers 
+        <td>This is the final "fix anything" phase before the content handlers
             are run. Any last-minute changes to the request should be made here.</td>
     </tr>
 <tr>
         <td>Content handler</td>
         <td>fx. <code>.lua</code> files or through <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
-        <td>This is where the content is handled. Files are read, parsed, some are run, 
+        <td>This is where the content is handled. Files are read, parsed, some are run,
             and the result is sent to the client</td>
     </tr>
 <tr class="odd">
         <td>Logging</td>
         <td><code class="directive"><a href="#luahooklog">LuaHookLog</a></code></td>
-        <td>Once a request has been handled, it enters several logging phases, 
+        <td>Once a request has been handled, it enters several logging phases,
             which logs the request in either the error or access log. Mod_lua
             is able to hook into the start of this and control logging output.</td>
     </tr>
 </table>
 
-<p>Hook functions are passed the request object as their only argument 
-(except for LuaAuthzProvider, which also gets passed the arguments from 
+<p>Hook functions are passed the request object as their only argument
+(except for LuaAuthzProvider, which also gets passed the arguments from
 the Require directive).
 They can return any value, depending on the hook, but most commonly
 they'll return OK, DONE, or DECLINED, which you can write in Lua as
@@ -391,21 +391,21 @@ end</pre>
           <td><code>ap_auth_type</code></td>
           <td>string</td>
           <td>no</td>
-          <td>If an authentication check was made, this is set to the type 
+          <td>If an authentication check was made, this is set to the type
           of authentication (f.x. <code>basic</code>)</td>
         </tr>
 <tr>
           <td><code>args</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The query string arguments extracted from the request 
+          <td>The query string arguments extracted from the request
             (f.x. <code>foo=bar&amp;name=johnsmith</code>)</td>
         </tr>
 <tr class="odd">
           <td><code>assbackwards</code></td>
           <td>boolean</td>
           <td>no</td>
-          <td>Set to true if this is an HTTP/0.9 style request 
+          <td>Set to true if this is an HTTP/0.9 style request
             (e.g. <code>GET /foo</code> (with no headers) )</td>
         </tr>
 <tr>
@@ -442,7 +442,7 @@ end</pre>
           <td><code>content_type</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The content type of the current request, as determined in the 
+          <td>The content type of the current request, as determined in the
             type_check phase (f.x. <code>image/gif</code> or <code>text/html</code>)</td>
         </tr>
 <tr>
@@ -474,18 +474,18 @@ end</pre>
           <td><code>filename</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The file name that the request maps to, f.x. /www/example.com/foo.txt. This can be 
-            changed in the translate-name or map-to-storage phases of a request to allow the 
+          <td>The file name that the request maps to, f.x. /www/example.com/foo.txt. This can be
+            changed in the translate-name or map-to-storage phases of a request to allow the
             default handler (or script handlers) to serve a different file than what was requested.</td>
         </tr>
 <tr class="odd">
           <td><code>handler</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The name of the <a href="../handler.html">handler</a> that should serve this request, f.x. 
-            <code>lua-script</code> if it is to be served by mod_lua. This is typically set by the 
-            <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> or <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> 
-            directives, but could also be set via mod_lua to allow another handler to serve up a specific request 
+          <td>The name of the <a href="../handler.html">handler</a> that should serve this request, f.x.
+            <code>lua-script</code> if it is to be served by mod_lua. This is typically set by the
+            <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> or <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code>
+            directives, but could also be set via mod_lua to allow another handler to serve up a specific request
             that would otherwise not be served by it.
             </td>
         </tr>
@@ -493,7 +493,7 @@ end</pre>
           <td><code>headers_in</code></td>
           <td>table</td>
           <td>yes</td>
-          <td>MIME header environment from the request. This contains headers such as <code>Host, 
+          <td>MIME header environment from the request. This contains headers such as <code>Host,
             User-Agent, Referer</code> and so on.</td>
         </tr>
 <tr class="odd">
@@ -572,7 +572,7 @@ end</pre>
           <td><code>proxyreq</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>Denotes whether this is a proxy request or not. This value is generally set in 
+          <td>Denotes whether this is a proxy request or not. This value is generally set in
             the post_read_request/translate_name phase of a request.</td>
         </tr>
 <tr>
@@ -684,7 +684,7 @@ if use_sendfile_thing then
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:parseargs() -- returns two tables; one standard key/value table for regular GET data, 
+<pre class="prettyprint lang-lua">r:parseargs() -- returns two tables; one standard key/value table for regular GET data,
               -- and one for multi-value data (fx. foo=1&amp;foo=2&amp;foo=3):
 
 local GET, GETMULTI = r:parseargs()
@@ -693,9 +693,9 @@ r:puts("Your name is: " .. GET['name'] or "Unknown")</pre>
 
 <pre class="prettyprint lang-lua">r:parsebody([sizeLimit]) -- parse the request body as a POST and return two lua tables,
                          -- just like r:parseargs().
-                         -- An optional number may be passed to specify the maximum number 
+                         -- An optional number may be passed to specify the maximum number
                          -- of bytes to parse. Default is 8192 bytes:
-                 
+
 local POST, POSTMULTI = r:parsebody(1024*1024)
 r:puts("Your name is: " .. POST['name'] or "Unknown")</pre>
 
@@ -780,7 +780,7 @@ r:puts("Server 1's thread 1 has thread ID " .. thread.tid .. " and is in " .. th
 <pre class="prettyprint lang-lua">r:requestbody(filename) -- Reads and returns the request body of a request.
                 -- If 'filename' is specified, it instead saves the
                 -- contents to that file:
-                
+
 local input = r:requestbody()
 r:puts("You sent the following request body to me:\n")
 r:puts(input)</pre>
@@ -806,11 +806,11 @@ for k, module in pairs(r:loaded_modules()) do
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file") 
+<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file")
                          -- relative to the appropriate run-time directory.</pre>
 
 
-<pre class="prettyprint lang-lua">r:server_info() -- Returns a table containing server information, such as 
+<pre class="prettyprint lang-lua">r:server_info() -- Returns a table containing server information, such as
                 -- the name of the httpd executable file, mpm used etc.</pre>
 
 
@@ -830,9 +830,9 @@ end</pre>
 
 <pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- Checks if 'string' matches 'pattern' using strcmp_match (globs).
                         -- fx. whether 'www.example.com' matches '*.example.com':
-                        
+
 local match = r.strcmp_match("foobar.com", "foo*.com")
-if match then 
+if match then
     r:puts("foobar.com matches foo*.com")
 end</pre>
 
@@ -849,7 +849,7 @@ end</pre>
 
 <pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- Construct and set a custom response for a given status code.
                                -- This works much like the ErrorDocument directive:
-                               
+
 r:custom_response(404, "Baleted!")</pre>
 
 
@@ -896,12 +896,12 @@ local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
 <pre class="prettyprint lang-lua">r:ivm_set("key", value) -- Set an Inter-VM variable to hold a specific value.
                         -- These values persist even though the VM is gone or not being used,
                         -- and so should only be used if MaxConnectionsPerChild is &gt; 0
-                        -- Values can be numbers, strings and booleans, and are stored on a 
+                        -- Values can be numbers, strings and booleans, and are stored on a
                         -- per process basis (so they won't do much good with a prefork mpm)
-                        
+
 r:ivm_get("key")        -- Fetches a variable set by ivm_set. Returns the contents of the variable
                         -- if it exists or nil if no such variable exists.
-                        
+
 -- An example getter/setter that saves a global variable outside the VM:
 function handle(r)
     -- First VM to call this will get no value, and will have to create it
@@ -1063,10 +1063,10 @@ local line = r:wsread()</pre>
 <h2><a name="modifying_buckets" id="modifying_buckets">Modifying contents with Lua filters</a></h2>
     
     <p>
-    Filter functions implemented via <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code> 
-    or <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> are designed as 
-    three-stage non-blocking functions using coroutines to suspend and resume a 
-    function as buckets are sent down the filter chain. The core structure of 
+    Filter functions implemented via <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code>
+    or <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> are designed as
+    three-stage non-blocking functions using coroutines to suspend and resume a
+    function as buckets are sent down the filter chain. The core structure of
     such a function is:
     </p>
     <pre class="prettyprint lang-lua">function filter(r)
@@ -1077,11 +1077,11 @@ local line = r:wsread()</pre>
         return -- This would skip this filter.
     end
     -- Regardless of whether we have data to prepend, a yield MUST be called here.
-    -- Note that only output filters can prepend data. Input filters must use the 
+    -- Note that only output filters can prepend data. Input filters must use the
     -- final stage to append data to the content.
     coroutine.yield([optional header to be prepended to the content])
-    
-    -- After we have yielded, buckets will be sent to us, one by one, and we can 
+
+    -- After we have yielded, buckets will be sent to us, one by one, and we can
     -- do whatever we want with them and then pass on the result.
     -- Buckets are stored in the global variable 'bucket', so we create a loop
     -- that checks if 'bucket' is not nil:
@@ -1090,9 +1090,9 @@ local line = r:wsread()</pre>
         coroutine.yield(output) -- Return our new content to the filter chain
     end
 
-    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the 
+    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the
     -- loop and land us here. Anything extra we want to append to the content
-    -- can be done by doing a final yield here. Both input and output filters 
+    -- can be done by doing a final yield here. Both input and output filters
     -- can append data to the content in this phase.
     coroutine.yield([optional footer to be appended to the content])
 end</pre>
@@ -1169,7 +1169,7 @@ local connected = database:active()</pre>
     
     <h3><a name="result_sets" id="result_sets">Working with result sets</a></h3>
     
-    <p>The result set returned by <code>db:select</code> or by the prepared statement functions 
+    <p>The result set returned by <code>db:select</code> or by the prepared statement functions
     created through <code>db:prepare</code> can be used to
     fetch rows synchronously or asynchronously, depending on the row number specified:<br />
     <code>result(0)</code> fetches all rows in a synchronous manner, returning a table of rows.<br />
@@ -1184,7 +1184,7 @@ local row = result(-1) -- Fetch the next available row, asynchronously
 local row = result(1234) -- Fetch row number 1234, asynchronously
 local row = result(-1, true) -- Fetch the next available row, using row names as key indexes.</pre>
 
-    <p>One can construct a function that returns an iterative function to iterate over all rows 
+    <p>One can construct a function that returns an iterative function to iterate over all rows
     in a synchronous or asynchronous way, depending on the async argument:
     </p>
     <pre class="prettyprint lang-lua">function rows(resultset, async)
@@ -1225,8 +1225,8 @@ end</pre>
         
 
     <p>Database handles should be closed using <code>database:close()</code> when they are no longer
-    needed. If you do not close them manually, they will eventually be garbage collected and 
-    closed by mod_lua, but you may end up having too many unused connections to the database 
+    needed. If you do not close them manually, they will eventually be garbage collected and
+    closed by mod_lua, but you may end up having too many unused connections to the database
     if you leave the closing up to mod_lua. Essentially, the following two measures are
     the same:
     </p>
@@ -1242,11 +1242,11 @@ collectgarbage() -- close the handle via GC</pre>
     
     <h3><a name="database_caveat" id="database_caveat">Precautions when working with databases</a></h3>
     
-    <p>Although the standard <code>query</code> and <code>run</code> functions are freely 
-    available, it is recommended that you use prepared statements whenever possible, to 
-    both optimize performance (if your db handle lives on for a long time) and to minimize 
+    <p>Although the standard <code>query</code> and <code>run</code> functions are freely
+    available, it is recommended that you use prepared statements whenever possible, to
+    both optimize performance (if your db handle lives on for a long time) and to minimize
     the risk of SQL injection attacks. <code>run</code> and <code>query</code> should only
-    be used when there are no variables inserted into a statement (a static statement). 
+    be used when there are no variables inserted into a statement (a static statement).
     When using dynamic statements, use <code>db:prepare</code> or <code>db:prepared</code>.
     </p>
     
@@ -1324,7 +1324,7 @@ LuaCodeCache never</pre>
 </table>
 <p>Add your hook to the access_checker phase.  An access checker
 hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></div>
 
 </div>
@@ -1374,7 +1374,7 @@ function authcheck_hook(r)
    return apache2.OK
 end</pre>
 
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></div>
 
 </div>
@@ -1428,11 +1428,11 @@ processing</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 </table>
 <p>
-    This simple logging hook allows you to run a function when httpd enters the 
-    logging phase of a request. With it, you can append data to your own logs, 
-    manipulate data before the regular log is written, or prevent a log entry 
+    This simple logging hook allows you to run a function when httpd enters the
+    logging phase of a request. With it, you can append data to your own logs,
+    manipulate data before the regular log is written, or prevent a log entry
     from being created. To prevent the usual logging from happening, simply return
-    <code>apache2.DONE</code> in your logging handler, otherwise return 
+    <code>apache2.DONE</code> in your logging handler, otherwise return
     <code>apache2.OK</code> to tell httpd to log as normal.
 </p>
 <p>Example:</p>
@@ -1443,7 +1443,7 @@ function logger(r)
     -- flip a coin:
     -- If 1, then we write to our own Lua log and tell httpd not to log
     -- in the main log.
-    -- If 2, then we just sanitize the output a bit and tell httpd to 
+    -- If 2, then we just sanitize the output a bit and tell httpd to
     -- log the sanitized bits.
 
     if math.random(1,2) == 1 then
@@ -1472,7 +1472,7 @@ end</pre>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 </table>
-    <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the 
+    <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the
     map-to-storage phase of a request. Modules like mod_cache run at this phase,
     which makes for an interesting example on what to do here:</p>
     <pre class="prettyprint lang-config">LuaHookMapToStorage /path/to/lua/script.lua check_cache</pre>
@@ -1480,7 +1480,7 @@ end</pre>
     <pre class="prettyprint lang-lua">require"apache2"
 cached_files = {}
 
-function read_file(filename) 
+function read_file(filename)
     local input = io.open(filename, "r")
     if input then
         local data = input:read("*a")
@@ -1555,7 +1555,7 @@ end</pre>
    <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
    context.</p></div>
 
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></div>
 
 
@@ -1570,8 +1570,8 @@ end</pre>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 </table><p>
-    This directive provides a hook for the type_checker phase of the request processing. 
-    This phase is where requests are assigned a content type and a handler, and thus can 
+    This directive provides a hook for the type_checker phase of the request processing.
+    This phase is where requests are assigned a content type and a handler, and thus can
     be used to modify the type and handler based on input:
     </p>
     <pre class="prettyprint lang-config">LuaHookTypeChecker /path/to/lua/script.lua type_checker</pre>
@@ -1605,7 +1605,7 @@ end</pre>
     more specific section are run <em>after</em> those defined in the more
     generic section (LuaInherit parent-first).  You can reverse this order, or
     make the parent context not apply at all.</p>
-    
+
     <p> In previous 2.3.x releases, the default was effectively to ignore LuaHook*
     directives from parent configuration sections.</p>
 </div>
@@ -1619,12 +1619,12 @@ end</pre>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
 </table>
-<p>Provides a means of adding a Lua function as an input filter. 
-As with output filters, input filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
+<p>Provides a means of adding a Lua function as an input filter.
+As with output filters, input filters work as coroutines,
+first yielding before buffers are sent, then yielding whenever
+a bucket needs to be passed down the chain, and finally (optionally)
+yielding anything that needs to be appended to the input data. The
+global variable <code>bucket</code> holds the buckets as they are passed
 onto the Lua script:
 </p>
 
@@ -1659,7 +1659,7 @@ The input filter supports denying/skipping a filter if it is deemed unwanted:
 end</pre>
 
 <p>
-See "<a href="#modifying_buckets">Modifying contents with Lua 
+See "<a href="#modifying_buckets">Modifying contents with Lua
 filters</a>" for more information.
 </p>
 
@@ -1677,7 +1677,7 @@ filters</a>" for more information.
     <p>This directive matches a uri pattern to invoke a specific
     handler function in a specific file. It uses PCRE regular
     expressions to match the uri, and supports interpolating
-    match groups into both the file path and the function name. 
+    match groups into both the file path and the function name.
     Be careful writing your regular expressions to avoid security
     issues.</p>
    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaMapHandler /(\w+)/(\w+) /scripts/$1.lua handle_$2</pre>
@@ -1704,12 +1704,12 @@ filters</a>" for more information.
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
 </table>
-<p>Provides a means of adding a Lua function as an output filter. 
-As with input filters, output filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
+<p>Provides a means of adding a Lua function as an output filter.
+As with input filters, output filters work as coroutines,
+first yielding before buffers are sent, then yielding whenever
+a bucket needs to be passed down the chain, and finally (optionally)
+yielding anything that needs to be appended to the input data. The
+global variable <code>bucket</code> holds the buckets as they are passed
 onto the Lua script:
 </p>
 
@@ -1732,7 +1732,7 @@ function output_filter(r)
 end</pre>
 
 <p>
-As with the input filter, the output filter supports denying/skipping a filter 
+As with the input filter, the output filter supports denying/skipping a filter
 if it is deemed unwanted:
 </p>
 <pre class="prettyprint lang-lua">function output_filter(r)
@@ -1744,13 +1744,13 @@ if it is deemed unwanted:
 end</pre>
 
 <div class="note"><h3>Lua filters with <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
-<p> When a Lua filter is used as the underlying provider via the 
-<code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code> directive, filtering 
+<p> When a Lua filter is used as the underlying provider via the
+<code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code> directive, filtering
 will only work when the <var>filter-name</var> is identical to the <var>provider-name</var>.
 </p> </div>
 
 <p>
-See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more 
+See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more
 information.
 </p>
 
@@ -1801,10 +1801,10 @@ LuaPackagePath /scripts/lib/?/init.lua</pre>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
 </table>
     <p>
-    This phase is run immediately after the request has been mapped to a virtal host, 
-    and can be used to either do some request processing before the other phases kick 
-    in, or to serve a request without the need to translate, map to storage et cetera. 
-    As this phase is run before anything else, directives such as <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> are void in this phase, just as 
+    This phase is run immediately after the request has been mapped to a virtal host,
+    and can be used to either do some request processing before the other phases kick
+    in, or to serve a request without the need to translate, map to storage et cetera.
+    As this phase is run before anything else, directives such as <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> are void in this phase, just as
     URIs have not been properly parsed yet.
     </p>
    <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
@@ -1850,27 +1850,27 @@ LuaPackagePath /scripts/lib/?/init.lua</pre>
 
     <dt>conn:</dt> <dd>Same as request but attached to the connection_rec</dd>
 
-    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread 
+    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread
             handling the request (only available with threaded MPMs).</dd>
 
     <dt>server:</dt>  <dd>This one is different than others because the
             server scope is quite long lived, and multiple threads
             will have the same server_rec. To accommodate this,
             server scoped Lua states are stored in an apr
-            resource list. The <code>min</code> and <code>max</code> arguments 
-            specify the minimum and maximum number of Lua states to keep in the 
+            resource list. The <code>min</code> and <code>max</code> arguments
+            specify the minimum and maximum number of Lua states to keep in the
             pool.</dd>
    </dl>
     <p>
-    Generally speaking, the <code>thread</code> and <code>server</code> scopes 
-    execute roughly 2-3 times faster than the rest, because they don't have to 
-    spawn new Lua states on every request (especially with the event MPM, as 
-    even keepalive requests will use a new thread for each request). If you are 
-    satisfied that your scripts will not have problems reusing a state, then 
-    the <code>thread</code> or <code>server</code> scopes should be used for 
-    maximum performance. While the <code>thread</code> scope will provide the 
-    fastest responses, the <code>server</code> scope will use less memory, as 
-    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states, 
+    Generally speaking, the <code>thread</code> and <code>server</code> scopes
+    execute roughly 2-3 times faster than the rest, because they don't have to
+    spawn new Lua states on every request (especially with the event MPM, as
+    even keepalive requests will use a new thread for each request). If you are
+    satisfied that your scripts will not have problems reusing a state, then
+    the <code>thread</code> or <code>server</code> scopes should be used for
+    maximum performance. While the <code>thread</code> scope will provide the
+    fastest responses, the <code>server</code> scope will use less memory, as
+    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states,
     thus using only 10% of the memory required by the <code>thread</code> scope.
     </p>
 
index 56d4460590853726a0d7abfb3582430e468b169a..05e50cb1975090770ac84cdb1836949c760e319b 100644 (file)
@@ -48,9 +48,9 @@ at any time, even between stable releases of the 2.4.x series.
 Be sure to check the CHANGES file before upgrading.</note>
 
 <note type="warning"><title>Warning</title>
-<p>This module holds a great deal of power over httpd, which is both a 
-strength and a potential security risk. It is <strong>not</strong> recommended 
-that you use this module on a server that is shared with users you do not 
+<p>This module holds a great deal of power over httpd, which is both a
+strength and a potential security risk. It is <strong>not</strong> recommended
+that you use this module on a server that is shared with users you do not
 trust, as it can be abused to change the internal workings of httpd.</p>
 </note>
 
@@ -217,26 +217,26 @@ performing access control, or setting mime types:</p>
     <tr>
         <td>Quick handler</td>
         <td><directive module="mod_lua">LuaQuickHandler</directive></td>
-        <td>This is the first hook that will be called after a request has 
+        <td>This is the first hook that will be called after a request has
             been mapped to a host or virtual host</td>
     </tr>
     <tr>
         <td>Translate name</td>
         <td><directive module="mod_lua">LuaHookTranslateName</directive></td>
-        <td>This phase translates the requested URI into a filename on the 
+        <td>This phase translates the requested URI into a filename on the
             system. Modules such as <module>mod_alias</module> and
             <module>mod_rewrite</module> operate in this phase.</td>
     </tr>
     <tr>
         <td>Map to storage</td>
         <td><directive module="mod_lua">LuaHookMapToStorage</directive></td>
-        <td>This phase maps files to their physical, cached or external/proxied storage. 
+        <td>This phase maps files to their physical, cached or external/proxied storage.
             It can be used by proxy or caching modules</td>
     </tr>
     <tr>
         <td>Check Access</td>
         <td><directive module="mod_lua">LuaHookAccessChecker</directive></td>
-        <td>This phase checks whether a client has access to a resource. This 
+        <td>This phase checks whether a client has access to a resource. This
             phase is run before the user is authenticated, so beware.
         </td>
     </tr>
@@ -247,42 +247,42 @@ performing access control, or setting mime types:</p>
     </tr>
     <tr>
         <td>Check Authorization</td>
-        <td><directive module="mod_lua">LuaHookAuthChecker</directive> or 
+        <td><directive module="mod_lua">LuaHookAuthChecker</directive> or
             <directive module="mod_lua">LuaAuthzProvider</directive></td>
-        <td>This phase authorizes a user based on the negotiated credentials, such as 
+        <td>This phase authorizes a user based on the negotiated credentials, such as
             user ID, client certificate etc.
         </td>
     </tr>
     <tr>
         <td>Check Type</td>
         <td><directive module="mod_lua">LuaHookTypeChecker</directive></td>
-        <td>This phase checks the requested file and assigns a content type and 
+        <td>This phase checks the requested file and assigns a content type and
             a handler to it</td>
     </tr>
     <tr>
         <td>Fixups</td>
         <td><directive module="mod_lua">LuaHookFixups</directive></td>
-        <td>This is the final "fix anything" phase before the content handlers 
+        <td>This is the final "fix anything" phase before the content handlers
             are run. Any last-minute changes to the request should be made here.</td>
     </tr>
     <tr>
         <td>Content handler</td>
         <td>fx. <code>.lua</code> files or through <directive module="mod_lua">LuaMapHandler</directive></td>
-        <td>This is where the content is handled. Files are read, parsed, some are run, 
+        <td>This is where the content is handled. Files are read, parsed, some are run,
             and the result is sent to the client</td>
     </tr>
     <tr>
         <td>Logging</td>
         <td><directive module="mod_lua">LuaHookLog</directive></td>
-        <td>Once a request has been handled, it enters several logging phases, 
+        <td>Once a request has been handled, it enters several logging phases,
             which logs the request in either the error or access log. Mod_lua
             is able to hook into the start of this and control logging output.</td>
     </tr>
 
 </table>
 
-<p>Hook functions are passed the request object as their only argument 
-(except for LuaAuthzProvider, which also gets passed the arguments from 
+<p>Hook functions are passed the request object as their only argument
+(except for LuaAuthzProvider, which also gets passed the arguments from
 the Require directive).
 They can return any value, depending on the hook, but most commonly
 they'll return OK, DONE, or DECLINED, which you can write in Lua as
@@ -359,21 +359,21 @@ end
           <td><code>ap_auth_type</code></td>
           <td>string</td>
           <td>no</td>
-          <td>If an authentication check was made, this is set to the type 
+          <td>If an authentication check was made, this is set to the type
           of authentication (f.x. <code>basic</code>)</td>
         </tr>
         <tr>
           <td><code>args</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The query string arguments extracted from the request 
+          <td>The query string arguments extracted from the request
             (f.x. <code>foo=bar&amp;name=johnsmith</code>)</td>
         </tr>
         <tr>
           <td><code>assbackwards</code></td>
           <td>boolean</td>
           <td>no</td>
-          <td>Set to true if this is an HTTP/0.9 style request 
+          <td>Set to true if this is an HTTP/0.9 style request
             (e.g. <code>GET /foo</code> (with no headers) )</td>
         </tr>
         <tr>
@@ -410,7 +410,7 @@ end
           <td><code>content_type</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The content type of the current request, as determined in the 
+          <td>The content type of the current request, as determined in the
             type_check phase (f.x. <code>image/gif</code> or <code>text/html</code>)</td>
         </tr>
         <tr>
@@ -443,18 +443,18 @@ end
           <td><code>filename</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The file name that the request maps to, f.x. /www/example.com/foo.txt. This can be 
-            changed in the translate-name or map-to-storage phases of a request to allow the 
+          <td>The file name that the request maps to, f.x. /www/example.com/foo.txt. This can be
+            changed in the translate-name or map-to-storage phases of a request to allow the
             default handler (or script handlers) to serve a different file than what was requested.</td>
         </tr>
         <tr>
           <td><code>handler</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>The name of the <a href="../handler.html">handler</a> that should serve this request, f.x. 
-            <code>lua-script</code> if it is to be served by mod_lua. This is typically set by the 
-            <directive module="mod_mime">AddHandler</directive> or <directive module="core">SetHandler</directive> 
-            directives, but could also be set via mod_lua to allow another handler to serve up a specific request 
+          <td>The name of the <a href="../handler.html">handler</a> that should serve this request, f.x.
+            <code>lua-script</code> if it is to be served by mod_lua. This is typically set by the
+            <directive module="mod_mime">AddHandler</directive> or <directive module="core">SetHandler</directive>
+            directives, but could also be set via mod_lua to allow another handler to serve up a specific request
             that would otherwise not be served by it.
             </td>
         </tr>
@@ -463,7 +463,7 @@ end
           <td><code>headers_in</code></td>
           <td>table</td>
           <td>yes</td>
-          <td>MIME header environment from the request. This contains headers such as <code>Host, 
+          <td>MIME header environment from the request. This contains headers such as <code>Host,
             User-Agent, Referer</code> and so on.</td>
         </tr>
         <tr>
@@ -542,7 +542,7 @@ end
           <td><code>proxyreq</code></td>
           <td>string</td>
           <td>yes</td>
-          <td>Denotes whether this is a proxy request or not. This value is generally set in 
+          <td>Denotes whether this is a proxy request or not. This value is generally set in
             the post_read_request/translate_name phase of a request.</td>
         </tr>
         <tr>
@@ -657,7 +657,7 @@ end
 </highlight>
 
 <highlight language="lua">
-r:parseargs() -- returns two tables; one standard key/value table for regular GET data, 
+r:parseargs() -- returns two tables; one standard key/value table for regular GET data,
               -- and one for multi-value data (fx. foo=1&amp;foo=2&amp;foo=3):
 
 local GET, GETMULTI = r:parseargs()
@@ -667,9 +667,9 @@ r:puts("Your name is: " .. GET['name'] or "Unknown")
 <highlight language="lua">
 r:parsebody([sizeLimit]) -- parse the request body as a POST and return two lua tables,
                          -- just like r:parseargs().
-                         -- An optional number may be passed to specify the maximum number 
+                         -- An optional number may be passed to specify the maximum number
                          -- of bytes to parse. Default is 8192 bytes:
-                 
+
 local POST, POSTMULTI = r:parsebody(1024*1024)
 r:puts("Your name is: " .. POST['name'] or "Unknown")
 </highlight>
@@ -727,7 +727,7 @@ local unescaped = r:unescape(url) -- returns 'http://foo.bar/1 2 3 &amp; 4 + 5'
 <highlight language="lua">
 r:construct_url(string) -- Constructs an URL from an URI
 
-local url = r:construct_url(r.uri) 
+local url = r:construct_url(r.uri)
 </highlight>
 
 <highlight language="lua">
@@ -770,7 +770,7 @@ r:clock() -- Returns the current time with microsecond precision
 r:requestbody(filename) -- Reads and returns the request body of a request.
                 -- If 'filename' is specified, it instead saves the
                 -- contents to that file:
-                
+
 local input = r:requestbody()
 r:puts("You sent the following request body to me:\n")
 r:puts(input)
@@ -800,12 +800,12 @@ end
 </highlight>
 
 <highlight language="lua">
-r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file") 
-                         -- relative to the appropriate run-time directory. 
+r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file")
+                         -- relative to the appropriate run-time directory.
 </highlight>
 
 <highlight language="lua">
-r:server_info() -- Returns a table containing server information, such as 
+r:server_info() -- Returns a table containing server information, such as
                 -- the name of the httpd executable file, mpm used etc.
 </highlight>
 
@@ -834,9 +834,9 @@ r:escape_logitem(string) -- Escapes a string for logging
 <highlight language="lua">
 r.strcmp_match(string, pattern) -- Checks if 'string' matches 'pattern' using strcmp_match (globs).
                         -- fx. whether 'www.example.com' matches '*.example.com':
-                        
+
 local match = r.strcmp_match("foobar.com", "foo*.com")
-if match then 
+if match then
     r:puts("foobar.com matches foo*.com")
 end
 </highlight>
@@ -857,7 +857,7 @@ r:send_interim_response(clear) -- Sends an interim (1xx) response to the client.
 <highlight language="lua">
 r:custom_response(status_code, string) -- Construct and set a custom response for a given status code.
                                -- This works much like the ErrorDocument directive:
-                               
+
 r:custom_response(404, "Baleted!")
 </highlight>
 
@@ -911,12 +911,12 @@ r:dbacquire(dbType[, dbParams]) -- Acquires a connection to a database and retur
 r:ivm_set("key", value) -- Set an Inter-VM variable to hold a specific value.
                         -- These values persist even though the VM is gone or not being used,
                         -- and so should only be used if MaxConnectionsPerChild is > 0
-                        -- Values can be numbers, strings and booleans, and are stored on a 
+                        -- Values can be numbers, strings and booleans, and are stored on a
                         -- per process basis (so they won't do much good with a prefork mpm)
-                        
+
 r:ivm_get("key")        -- Fetches a variable set by ivm_set. Returns the contents of the variable
                         -- if it exists or nil if no such variable exists.
-                        
+
 -- An example getter/setter that saves a global variable outside the VM:
 function handle(r)
     -- First VM to call this will get no value, and will have to create it
@@ -1095,10 +1095,10 @@ r:activeconfig() -- Get a walkable tree of the active (virtualhost-specific) htt
 <section id="modifying_buckets">
     <title>Modifying contents with Lua filters</title>
     <p>
-    Filter functions implemented via <directive module="mod_lua">LuaInputFilter</directive> 
-    or <directive module="mod_lua">LuaOutputFilter</directive> are designed as 
-    three-stage non-blocking functions using coroutines to suspend and resume a 
-    function as buckets are sent down the filter chain. The core structure of 
+    Filter functions implemented via <directive module="mod_lua">LuaInputFilter</directive>
+    or <directive module="mod_lua">LuaOutputFilter</directive> are designed as
+    three-stage non-blocking functions using coroutines to suspend and resume a
+    function as buckets are sent down the filter chain. The core structure of
     such a function is:
     </p>
     <highlight language="lua">
@@ -1110,11 +1110,11 @@ function filter(r)
         return -- This would skip this filter.
     end
     -- Regardless of whether we have data to prepend, a yield MUST be called here.
-    -- Note that only output filters can prepend data. Input filters must use the 
+    -- Note that only output filters can prepend data. Input filters must use the
     -- final stage to append data to the content.
     coroutine.yield([optional header to be prepended to the content])
-    
-    -- After we have yielded, buckets will be sent to us, one by one, and we can 
+
+    -- After we have yielded, buckets will be sent to us, one by one, and we can
     -- do whatever we want with them and then pass on the result.
     -- Buckets are stored in the global variable 'bucket', so we create a loop
     -- that checks if 'bucket' is not nil:
@@ -1123,9 +1123,9 @@ function filter(r)
         coroutine.yield(output) -- Return our new content to the filter chain
     end
 
-    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the 
+    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the
     -- loop and land us here. Anything extra we want to append to the content
-    -- can be done by doing a final yield here. Both input and output filters 
+    -- can be done by doing a final yield here. Both input and output filters
     -- can append data to the content in this phase.
     coroutine.yield([optional footer to be appended to the content])
 end
@@ -1208,7 +1208,7 @@ local connected = database:active()
     </section>
     <section id="result_sets">
     <title>Working with result sets</title>
-    <p>The result set returned by <code>db:select</code> or by the prepared statement functions 
+    <p>The result set returned by <code>db:select</code> or by the prepared statement functions
     created through <code>db:prepare</code> can be used to
     fetch rows synchronously or asynchronously, depending on the row number specified:<br/>
     <code>result(0)</code> fetches all rows in a synchronous manner, returning a table of rows.<br/>
@@ -1224,7 +1224,7 @@ local row = result(-1) -- Fetch the next available row, asynchronously
 local row = result(1234) -- Fetch row number 1234, asynchronously
 local row = result(-1, true) -- Fetch the next available row, using row names as key indexes.
     </highlight>
-    <p>One can construct a function that returns an iterative function to iterate over all rows 
+    <p>One can construct a function that returns an iterative function to iterate over all rows
     in a synchronous or asynchronous way, depending on the async argument:
     </p>
     <highlight language="lua">
@@ -1266,8 +1266,8 @@ end
         <title>Closing a database connection</title>
 
     <p>Database handles should be closed using <code>database:close()</code> when they are no longer
-    needed. If you do not close them manually, they will eventually be garbage collected and 
-    closed by mod_lua, but you may end up having too many unused connections to the database 
+    needed. If you do not close them manually, they will eventually be garbage collected and
+    closed by mod_lua, but you may end up having too many unused connections to the database
     if you leave the closing up to mod_lua. Essentially, the following two measures are
     the same:
     </p>
@@ -1284,11 +1284,11 @@ collectgarbage() -- close the handle via GC
     </section>
     <section id="database_caveat">
     <title>Precautions when working with databases</title>
-    <p>Although the standard <code>query</code> and <code>run</code> functions are freely 
-    available, it is recommended that you use prepared statements whenever possible, to 
-    both optimize performance (if your db handle lives on for a long time) and to minimize 
+    <p>Although the standard <code>query</code> and <code>run</code> functions are freely
+    available, it is recommended that you use prepared statements whenever possible, to
+    both optimize performance (if your db handle lives on for a long time) and to minimize
     the risk of SQL injection attacks. <code>run</code> and <code>query</code> should only
-    be used when there are no variables inserted into a statement (a static statement). 
+    be used when there are no variables inserted into a statement (a static statement).
     When using dynamic statements, use <code>db:prepare</code> or <code>db:prepared</code>.
     </p>
     </section>
@@ -1335,27 +1335,27 @@ collectgarbage() -- close the handle via GC
 
     <dt>conn:</dt> <dd>Same as request but attached to the connection_rec</dd>
 
-    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread 
+    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread
             handling the request (only available with threaded MPMs).</dd>
 
     <dt>server:</dt>  <dd>This one is different than others because the
             server scope is quite long lived, and multiple threads
             will have the same server_rec. To accommodate this,
             server scoped Lua states are stored in an apr
-            resource list. The <code>min</code> and <code>max</code> arguments 
-            specify the minimum and maximum number of Lua states to keep in the 
+            resource list. The <code>min</code> and <code>max</code> arguments
+            specify the minimum and maximum number of Lua states to keep in the
             pool.</dd>
    </dl>
     <p>
-    Generally speaking, the <code>thread</code> and <code>server</code> scopes 
-    execute roughly 2-3 times faster than the rest, because they don't have to 
-    spawn new Lua states on every request (especially with the event MPM, as 
-    even keepalive requests will use a new thread for each request). If you are 
-    satisfied that your scripts will not have problems reusing a state, then 
-    the <code>thread</code> or <code>server</code> scopes should be used for 
-    maximum performance. While the <code>thread</code> scope will provide the 
-    fastest responses, the <code>server</code> scope will use less memory, as 
-    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states, 
+    Generally speaking, the <code>thread</code> and <code>server</code> scopes
+    execute roughly 2-3 times faster than the rest, because they don't have to
+    spawn new Lua states on every request (especially with the event MPM, as
+    even keepalive requests will use a new thread for each request). If you are
+    satisfied that your scripts will not have problems reusing a state, then
+    the <code>thread</code> or <code>server</code> scopes should be used for
+    maximum performance. While the <code>thread</code> scope will provide the
+    fastest responses, the <code>server</code> scope will use less memory, as
+    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states,
     thus using only 10% of the memory required by the <code>thread</code> scope.
     </p>
 </usage>
@@ -1373,7 +1373,7 @@ collectgarbage() -- close the handle via GC
     <p>This directive matches a uri pattern to invoke a specific
     handler function in a specific file. It uses PCRE regular
     expressions to match the uri, and supports interpolating
-    match groups into both the file path and the function name. 
+    match groups into both the file path and the function name.
     Be careful writing your regular expressions to avoid security
     issues.</p>
    <example><title>Examples:</title>
@@ -1515,7 +1515,7 @@ end
    type="section" module="core">Files</directive>, or htaccess
    context.</p></note>
 
-   <note><title>Ordering</title><p>The optional arguments "early" or "late" 
+   <note><title>Ordering</title><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></note>
 
 </usage>
@@ -1548,11 +1548,11 @@ processing</description>
 <override>All</override>
 <usage>
 <p>
-    This simple logging hook allows you to run a function when httpd enters the 
-    logging phase of a request. With it, you can append data to your own logs, 
-    manipulate data before the regular log is written, or prevent a log entry 
+    This simple logging hook allows you to run a function when httpd enters the
+    logging phase of a request. With it, you can append data to your own logs,
+    manipulate data before the regular log is written, or prevent a log entry
     from being created. To prevent the usual logging from happening, simply return
-    <code>apache2.DONE</code> in your logging handler, otherwise return 
+    <code>apache2.DONE</code> in your logging handler, otherwise return
     <code>apache2.OK</code> to tell httpd to log as normal.
 </p>
 <p>Example:</p>
@@ -1565,7 +1565,7 @@ function logger(r)
     -- flip a coin:
     -- If 1, then we write to our own Lua log and tell httpd not to log
     -- in the main log.
-    -- If 2, then we just sanitize the output a bit and tell httpd to 
+    -- If 2, then we just sanitize the output a bit and tell httpd to
     -- log the sanitized bits.
 
     if math.random(1,2) == 1 then
@@ -1595,7 +1595,7 @@ end
 </contextlist>
 <override>All</override>
     <usage>
-    <p>Like <directive>LuaHookTranslateName</directive> but executed at the 
+    <p>Like <directive>LuaHookTranslateName</directive> but executed at the
     map-to-storage phase of a request. Modules like mod_cache run at this phase,
     which makes for an interesting example on what to do here:</p>
     <highlight language="config">
@@ -1605,7 +1605,7 @@ end
 require"apache2"
 cached_files = {}
 
-function read_file(filename) 
+function read_file(filename)
     local input = io.open(filename, "r")
     if input then
         local data = input:read("*a")
@@ -1647,7 +1647,7 @@ end
 <!-- Third argument does not work at the moment!
 <compatibility>The optional third argument is supported in 2.3.15 and later</compatibility>
 <usage><p>...</p>
-   <note><title>Ordering</title><p>The optional arguments "early" or "late" 
+   <note><title>Ordering</title><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></note>
 </usage>
 -->
@@ -1662,8 +1662,8 @@ end
 </contextlist>
 <override>All</override>
     <usage><p>
-    This directive provides a hook for the type_checker phase of the request processing. 
-    This phase is where requests are assigned a content type and a handler, and thus can 
+    This directive provides a hook for the type_checker phase of the request processing.
+    This phase is where requests are assigned a content type and a handler, and thus can
     be used to modify the type and handler based on input:
     </p>
     <highlight language="config">
@@ -1730,7 +1730,7 @@ function authcheck_hook(r)
    return apache2.OK
 end
 </highlight>
-   <note><title>Ordering</title><p>The optional arguments "early" or "late" 
+   <note><title>Ordering</title><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></note>
 </usage>
 </directivesynopsis>
@@ -1747,7 +1747,7 @@ end
 <usage>
 <p>Add your hook to the access_checker phase.  An access checker
 hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
-   <note><title>Ordering</title><p>The optional arguments "early" or "late" 
+   <note><title>Ordering</title><p>The optional arguments "early" or "late"
    control when this script runs relative to other modules.</p></note>
 </usage>
 </directivesynopsis>
@@ -1778,7 +1778,7 @@ hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
     more specific section are run <em>after</em> those defined in the more
     generic section (LuaInherit parent-first).  You can reverse this order, or
     make the parent context not apply at all.</p>
-    
+
     <p> In previous 2.3.x releases, the default was effectively to ignore LuaHook*
     directives from parent configuration sections.</p></usage>
 </directivesynopsis>
@@ -1792,12 +1792,12 @@ hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
 <override>All</override>
 <usage>
     <p>
-    This phase is run immediately after the request has been mapped to a virtal host, 
-    and can be used to either do some request processing before the other phases kick 
-    in, or to serve a request without the need to translate, map to storage et cetera. 
+    This phase is run immediately after the request has been mapped to a virtal host,
+    and can be used to either do some request processing before the other phases kick
+    in, or to serve a request without the need to translate, map to storage et cetera.
     As this phase is run before anything else, directives such as <directive
    type="section" module="core">Location</directive> or <directive
-   type="section" module="core">Directory</directive> are void in this phase, just as 
+   type="section" module="core">Directory</directive> are void in this phase, just as
     URIs have not been properly parsed yet.
     </p>
    <note><title>Context</title><p>This directive is not valid in <directive
@@ -1847,12 +1847,12 @@ end
 <compatibility>2.4.5 and later</compatibility>
 
 <usage>
-<p>Provides a means of adding a Lua function as an input filter. 
-As with output filters, input filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
+<p>Provides a means of adding a Lua function as an input filter.
+As with output filters, input filters work as coroutines,
+first yielding before buffers are sent, then yielding whenever
+a bucket needs to be passed down the chain, and finally (optionally)
+yielding anything that needs to be appended to the input data. The
+global variable <code>bucket</code> holds the buckets as they are passed
 onto the Lua script:
 </p>
 
@@ -1890,7 +1890,7 @@ function input_filter(r)
 end
 </highlight>
 <p>
-See "<a href="#modifying_buckets">Modifying contents with Lua 
+See "<a href="#modifying_buckets">Modifying contents with Lua
 filters</a>" for more information.
 </p>
 </usage>
@@ -1904,12 +1904,12 @@ filters</a>" for more information.
 <compatibility>2.4.5 and later</compatibility>
 
 <usage>
-<p>Provides a means of adding a Lua function as an output filter. 
-As with input filters, output filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
+<p>Provides a means of adding a Lua function as an output filter.
+As with input filters, output filters work as coroutines,
+first yielding before buffers are sent, then yielding whenever
+a bucket needs to be passed down the chain, and finally (optionally)
+yielding anything that needs to be appended to the input data. The
+global variable <code>bucket</code> holds the buckets as they are passed
 onto the Lua script:
 </p>
 
@@ -1934,7 +1934,7 @@ function output_filter(r)
 end
 </highlight>
 <p>
-As with the input filter, the output filter supports denying/skipping a filter 
+As with the input filter, the output filter supports denying/skipping a filter
 if it is deemed unwanted:
 </p>
 <highlight language="lua">
@@ -1947,13 +1947,13 @@ function output_filter(r)
 end
 </highlight>
 <note><title>Lua filters with <module>mod_filter</module></title>
-<p> When a Lua filter is used as the underlying provider via the 
-<directive module="mod_filter">FilterProvider</directive> directive, filtering 
+<p> When a Lua filter is used as the underlying provider via the
+<directive module="mod_filter">FilterProvider</directive> directive, filtering
 will only work when the <var>filter-name</var> is identical to the <var>provider-name</var>.
 </p> </note>
 
 <p>
-See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more 
+See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more
 information.
 </p>
 
index 00e2792a8b50bf086bf53c2b5409a5b243a1e4f3..e184ba4e8737ddbddec7ec3240954648e8843f32 100644 (file)
@@ -107,7 +107,7 @@ Examples section.</p>
 <p>Parameter names should begin with a sigil such as <code>$</code>,
 <code>%</code>, or <code>@</code>, so that they are clearly
 identifiable, and also in order to help deal with interactions with
-other directives, such as the core <code class="directive"><a href="../mod/core.html#define">Define</a></code> directive. Failure to do so will 
+other directives, such as the core <code class="directive"><a href="../mod/core.html#define">Define</a></code> directive. Failure to do so will
 result in a warning. Nevertheless, you are encouraged to have a good
 knowledge of your entire server configuration in order to avoid reusing
 the same variables in different scopes, which can cause confusion.</p>
index 00829cd2b7f73c6f2b5ad3c84de69202951fb7b1..471b7c1d4f40b091358087cabd2e3e6435b15a17 100644 (file)
@@ -95,7 +95,7 @@ Examples section.</p>
 <code>%</code>, or <code>@</code>, so that they are clearly
 identifiable, and also in order to help deal with interactions with
 other directives, such as the core <directive
-module="core">Define</directive> directive. Failure to do so will 
+module="core">Define</directive> directive. Failure to do so will
 result in a warning. Nevertheless, you are encouraged to have a good
 knowledge of your entire server configuration in order to avoid reusing
 the same variables in different scopes, which can cause confusion.</p>
index 19012b840c4806cdc2e14f70a3e28fa26af3228a..97985104e10a502b76353cada373575ffce29cf5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 659902:1673892 (outdated) -->
+<!-- English Revision: 659902:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index b1fe2d4863e163ac5948f0aaf2e1bdc38aadb02d..19570e38d5254af60c3eb61434324f94c5a84781 100644 (file)
     <dd>Content types that are syntactically invalid or blank can be detected
        and the request rejected. Types can be restricted to a specific list
        containing optional wildcards ? and *.</dd>
-    
+
     <dt><strong><a href="../compliance.html#policylength">POLICY_LENGTH</a>
     </strong>: Enforce the presence of a Content-Length</dt>
     <dd>The length of responses can be specified in one of three ways, by
     <pre class="prettyprint lang-config">&lt;Location "/"&gt;
   SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
     POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
-  
+
   # content type must be present and valid, but can be anything
   PolicyType enforce */*
-  
+
   # reject if no explicitly declared content length
   PolicyLength enforce
-  
+
   # covered by the policy length filter
   PolicyKeepalive ignore
-  
+
   # reject if User-Agent appears within Vary headers
   PolicyVary enforce User-Agent
-  
+
   # we want to enforce validation
   PolicyValidation enforce
-  
+
   # non-functional conditional responses should be rejected
   PolicyConditional enforce
-  
+
   # no-cache responses should be rejected
   PolicyNocache enforce
-  
+
   # maxage must be at least a day
   PolicyMaxage enforce 86400
-  
+
   # request version can be anything
   PolicyVersion ignore HTTP/1.1
 &lt;/Location&gt;
index 8da25f5bf8875b4e83f3e02017b197b75564281f..c29bd3f56ed7ec71fd692fecebfd01c51fa31c1c 100644 (file)
     <dd>Content types that are syntactically invalid or blank can be detected
        and the request rejected. Types can be restricted to a specific list
        containing optional wildcards ? and *.</dd>
-    
+
     <dt><strong><a href="../compliance.html#policylength">POLICY_LENGTH</a>
     </strong>: Enforce the presence of a Content-Length</dt>
     <dd>The length of responses can be specified in one of three ways, by
 &lt;Location "/"&gt;
   SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
     POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
-  
+
   # content type must be present and valid, but can be anything
   PolicyType enforce */*
-  
+
   # reject if no explicitly declared content length
   PolicyLength enforce
-  
+
   # covered by the policy length filter
   PolicyKeepalive ignore
-  
+
   # reject if User-Agent appears within Vary headers
   PolicyVary enforce User-Agent
-  
+
   # we want to enforce validation
   PolicyValidation enforce
-  
+
   # non-functional conditional responses should be rejected
   PolicyConditional enforce
-  
+
   # no-cache responses should be rejected
   PolicyNocache enforce
-  
+
   # maxage must be at least a day
   PolicyMaxage enforce 86400
-  
+
   # request version can be anything
   PolicyVersion ignore HTTP/1.1
 &lt;/Location&gt;
index 36ee67e1365dfe6fae8625cccf9b63464b4544be..00442441e464120e1ef5b75a065d23e28a11033e 100644 (file)
@@ -473,7 +473,7 @@ ProxyPass "/examples" "http://backend.example.com/examples" timeout=10</pre>
     other request headers.</p>
 
     <p>Note:  If you need to specify custom request headers to be
-    added to the forwarded request, use the 
+    added to the forwarded request, use the
     <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>
     directive.</p>
 
@@ -726,13 +726,13 @@ NoProxy         .example.com 192.168.112.0/21</pre>
 
 
     <div class="note"><h3>Differences from the Location configuration section</h3>
-      <p>A backend URL matches the configuration section if it begins with the 
+      <p>A backend URL matches the configuration section if it begins with the
       the <var>wildcard-url</var> string, even if the last path segment in the
-      directive only matches a prefix of the backend URL.  For example, 
-      &lt;Proxy http://example.com/foo&gt; matches all of 
-      http://example.com/foo, http://example.com/foo/bar, and 
+      directive only matches a prefix of the backend URL.  For example,
+      &lt;Proxy http://example.com/foo&gt; matches all of
+      http://example.com/foo, http://example.com/foo/bar, and
       http://example.com/foobar.  The matching of the final URL differs
-      from the behavior of the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, which for purposes of this note 
+      from the behavior of the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, which for purposes of this note
       treats the final path component as if it ended in a slash.</p>
       <p>For more control over the matching, see <code class="directive">&lt;ProxyMatch&gt;</code>.</p>
     </div>
@@ -998,7 +998,7 @@ through</td></tr>
     a local virtual path; <var>url</var> is a partial URL for the
     remote server and cannot include a query string.</p>
 
-    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
+    <div class="note"><strong>Note: </strong>This directive cannot be used within a
     <code>&lt;Directory&gt;</code> context.</div>
 
     <div class="warning">The <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive should
@@ -1335,7 +1335,7 @@ ProxyPass "/mirror/foo"   "http://backend.example.com"</pre>
     <tr><td>stickysessionsep</td>
         <td>"."</td>
         <td>Sets the separation symbol in the session cookie. Some backend application servers
-        do not use the '.' as the symbol. For example the Oracle Weblogic server uses 
+        do not use the '.' as the symbol. For example the Oracle Weblogic server uses
         '!'. The correct symbol can be set using this option. The setting of 'Off'
         signifies that no symbol is used.
     </td></tr>
@@ -1529,9 +1529,9 @@ ProxyPassReverse  "/mirror/foo/" "https://backend.example.com/"</pre>
        matches, the server will substitute any parenthesized matches into the given
        string and use it as a new <var>url</var>.</p>
 
-    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
+    <div class="note"><strong>Note: </strong>This directive cannot be used within a
     <code>&lt;Directory&gt;</code> context.</div>
-    
+
     <p>Suppose the local server has address <code>http://example.com/</code>;
     then</p>
 
@@ -1687,7 +1687,7 @@ reverse proxy. This directive rewrites the <code>path</code> string in
 <var>internal-path</var>, the cookie path will be replaced with
 <var>public-path</var>.
 </p><p>
-In the example given with 
+In the example given with
 <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, the directive:
 </p>
     <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
index 57f26c0979cb9df15bbda4fe62297bc5c641ec2d..88ce6baa00001e1a26b13e7f51b583a78aa8807a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1659902:1673892 (outdated) -->
+<!-- English Revision: 1659902:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 40705d38a5ca1b7d964dc371c7903785841dc49e..8b3b28594f55ecf938c3ff17ae3ba9fffe3e760b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 344971:1673892 (outdated) -->
+<!-- English Revision: 344971:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index e07d3685e22a85be8f8e693a3121329c777887bd..604a39aa9cc99982affa186c27c3e8eb2092f978 100644 (file)
@@ -89,7 +89,7 @@ ProxyPass "/app" "balancer://cluster/app"</pre>
     header given to the proxy, and the application server can be expected
     to generate self-referential headers relative to this host, so no
     rewriting is necessary.</p>
-    
+
     <p>The main exception is when the URL path on the proxy differs from that
     on the
     backend. In this case, a redirect header can be rewritten relative to the
index fad37d8e405b1f1ec6e2075822eea0a393fb0ee0..d3fe239f7586f22724b47a33bec39da82a366271 100644 (file)
@@ -79,7 +79,7 @@ ProxyPass "/app" "balancer://cluster/app"
     header given to the proxy, and the application server can be expected
     to generate self-referential headers relative to this host, so no
     rewriting is necessary.</p>
-    
+
     <p>The main exception is when the URL path on the proxy differs from that
     on the
     backend. In this case, a redirect header can be rewritten relative to the
index 47ded6b6a58d41a4c82dc1998970b420835bca53..78ff29074036ae2d8ddc23ecc211ed075bc96cd2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 669473:1649001 (outdated) -->
+<!-- English Revision: 669473:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 2c54e13dec9411c85e5ea3e403f3f4fdce78b283..33cd9490afd07e7bcafe29885b7fb11577e48b63 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 395228:1673892 (outdated) -->
+<!-- English Revision: 395228:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 53a133416833e139e199d02f03276b020979ad37..9ac46b98f241b61e0e20081d3550216ffb44dd9b 100644 (file)
@@ -87,8 +87,8 @@
     <div class="example"><h3>Single application instance, connection reuse</h3><pre class="prettyprint lang-config">ProxyPass "/myapp/" "fcgi://localhost:4000/" enablereuse=on</pre>
 </div>
 
-    <p> The following example passes the request URI as a filesystem 
-    path for the PHP-FPM daemon to run. The request URL is implicitly added 
+    <p> The following example passes the request URI as a filesystem
+    path for the PHP-FPM daemon to run. The request URL is implicitly added
     to the 2nd parameter. The hostname and port following fcgi:// are where
     PHP-FPM is listening.  Connection pooling is enabled.</p>
     <div class="example"><h3>PHP-FPM</h3><pre class="prettyprint lang-config">ProxyPassMatch "^/myapp/.*\.php(/.*)?$" "fcgi://localhost:9000/var/www/" enablereuse=on</pre>
         specified FastCGI server using reverse proxy.
         This feature is available in Apache HTTP Server 2.4.10 and later. For performance
        reasons, you will want to define a <a href="mod_proxy.html#workers">worker</a>
-       representing the same fcgi:// backend. The benefit of this form is that it 
-       allows the normal mapping of URI to filename to occur in the server, and the 
-       local filesystem result is passed to the backend.  When FastCGI is 
+       representing the same fcgi:// backend. The benefit of this form is that it
+       allows the normal mapping of URI to filename to occur in the server, and the
+       local filesystem result is passed to the backend.  When FastCGI is
        configured this way, the server can calculate the most accurate
        PATH_INFO.
       </p>
     SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 &lt;/FilesMatch&gt;
    # Define a matching worker.
-   # The part that is matched to the SetHandler is the part that 
+   # The part that is matched to the SetHandler is the part that
    # follows the pipe. If you need to distinguish, "localhost; can
    # be anything unique.
    &lt;Proxy fcgi://localhost/ enablereuse=on max=10&gt;
         is chosen:
         <dl>
           <dt>first-dot</dt>
-          <dd>PATH_INFO is split from the slash following the 
+          <dd>PATH_INFO is split from the slash following the
               <em>first</em> "." in the URL.</dd>
           <dt>last-dot</dt>
-          <dd>PATH_INFO is split from the slash following the 
+          <dd>PATH_INFO is split from the slash following the
               <em>last</em> "." in the URL.</dd>
-          <dt>full</dt> 
-          <dd>PATH_INFO is calculated by an attempt to map the URL to the 
+          <dt>full</dt>
+          <dd>PATH_INFO is calculated by an attempt to map the URL to the
               local filesystem.</dd>
           <dt>unescape</dt>
-          <dd>PATH_INFO is the path component of the URL, unescaped / 
+          <dd>PATH_INFO is the path component of the URL, unescaped /
               decoded.</dd>
           <dt>any other value</dt>
-          <dd>PATH_INFO is the same as the path component of the URL.  
+          <dd>PATH_INFO is the same as the path component of the URL.
               Originally, this was the only proxy-fcgi-pathinfo option.</dd>
          </dl>
         </dd>
index da0c155d73df3a06e29b0946fc6406bb8cfa2adb..d1a975397fdb8898ed850b880f9c837e078905ea 100644 (file)
@@ -82,8 +82,8 @@
       </highlight>
     </example>
 
-    <p> The following example passes the request URI as a filesystem 
-    path for the PHP-FPM daemon to run. The request URL is implicitly added 
+    <p> The following example passes the request URI as a filesystem
+    path for the PHP-FPM daemon to run. The request URL is implicitly added
     to the 2nd parameter. The hostname and port following fcgi:// are where
     PHP-FPM is listening.  Connection pooling is enabled.</p>
     <example><title>PHP-FPM</title>
@@ -99,7 +99,7 @@
     <example><title>PHP-FPM with UDS</title>
     <highlight language="config">
       # UDS does not currently support connection reuse
-      ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/var/www/" 
+      ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm.sock|fcgi://localhost/var/www/"
     </highlight>
     </example>
 
@@ -125,9 +125,9 @@ ProxyPass "/myapp/" "balancer://myappcluster/"
         specified FastCGI server using reverse proxy.
         This feature is available in Apache HTTP Server 2.4.10 and later. For performance
        reasons, you will want to define a <a href="mod_proxy.html#workers">worker</a>
-       representing the same fcgi:// backend. The benefit of this form is that it 
-       allows the normal mapping of URI to filename to occur in the server, and the 
-       local filesystem result is passed to the backend.  When FastCGI is 
+       representing the same fcgi:// backend. The benefit of this form is that it
+       allows the normal mapping of URI to filename to occur in the server, and the
+       local filesystem result is passed to the backend.  When FastCGI is
        configured this way, the server can calculate the most accurate
        PATH_INFO.
       </p>
@@ -138,7 +138,7 @@ ProxyPass "/myapp/" "balancer://myappcluster/"
     SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 &lt;/FilesMatch&gt;
    # Define a matching worker.
-   # The part that is matched to the SetHandler is the part that 
+   # The part that is matched to the SetHandler is the part that
    # follows the pipe. If you need to distinguish, "localhost; can
    # be anything unique.
    &lt;Proxy fcgi://localhost/ enablereuse=on max=10&gt;
@@ -175,19 +175,19 @@ ProxyPass "/myapp/" "balancer://myappcluster/"
         is chosen:
         <dl>
           <dt>first-dot</dt>
-          <dd>PATH_INFO is split from the slash following the 
+          <dd>PATH_INFO is split from the slash following the
               <em>first</em> "." in the URL.</dd>
           <dt>last-dot</dt>
-          <dd>PATH_INFO is split from the slash following the 
+          <dd>PATH_INFO is split from the slash following the
               <em>last</em> "." in the URL.</dd>
-          <dt>full</dt> 
-          <dd>PATH_INFO is calculated by an attempt to map the URL to the 
+          <dt>full</dt>
+          <dd>PATH_INFO is calculated by an attempt to map the URL to the
               local filesystem.</dd>
           <dt>unescape</dt>
-          <dd>PATH_INFO is the path component of the URL, unescaped / 
+          <dd>PATH_INFO is the path component of the URL, unescaped /
               decoded.</dd>
           <dt>any other value</dt>
-          <dd>PATH_INFO is the same as the path component of the URL.  
+          <dd>PATH_INFO is the same as the path component of the URL.
               Originally, this was the only proxy-fcgi-pathinfo option.</dd>
          </dl>
         </dd>
index ec67a3fdaad107ef8a1336dad8f015d774407218..42529f34922cd22a183f205a744069abc1151daf 100644 (file)
@@ -240,7 +240,7 @@ for earlier 2.x versions</td></tr>
 </ul>
 <p>Take care when using these.  The fixes will correct certain authoring
 mistakes, but risk also erroneously fixing links that were correct to start with.
-Only use them if you know you have a broken backend server.</p> 
+Only use them if you know you have a broken backend server.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index b752a1796e7e1fedfa0d1e5024a6f0609473ac23..784fd5ffef3c932e509f1bddda100f2f7bf3f860 100644 (file)
@@ -277,7 +277,7 @@ for earlier 2.x versions</compatibility>
 </ul>
 <p>Take care when using these.  The fixes will correct certain authoring
 mistakes, but risk also erroneously fixing links that were correct to start with.
-Only use them if you know you have a broken backend server.</p> 
+Only use them if you know you have a broken backend server.</p>
 </usage>
 </directivesynopsis>
 
@@ -421,4 +421,3 @@ will generate output using the same encoding as the input.</p>
 
 
 </modulesynopsis>
-
index 5a104991831f05fd9a2ab41b566b238f948777fc..0de453c7da1b5c3856e0d986d4384375502a87ca 100644 (file)
@@ -164,7 +164,7 @@ header</td></tr>
 
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"># Use the default header (X-Sendfile)
 ProxySCGISendfile On
-    
+
 # Use a different header
 ProxySCGISendfile X-Send-Static</pre>
 </div>
index c7155b28afe1485c2d1effc2a6775923b3eb9815..2e641dab74838510deaa95dcf43686cc4003203e 100644 (file)
@@ -132,7 +132,7 @@ header</description>
     <highlight language="config">
 # Use the default header (X-Sendfile)
 ProxySCGISendfile On
-    
+
 # Use a different header
 ProxySCGISendfile X-Send-Static
     </highlight>
index e2eb4d197d8e05b54f50aa346471c4ee8ddb97b6..466684f558ba86fcad1cca71d7bd8babbb930cd1 100644 (file)
@@ -68,10 +68,10 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"</pre>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr>
 </table>
-    <p>This directive instructs the server to try to create an asynchronous tunnel. 
-    If the current MPM does not support the necessary features, a synchronous 
+    <p>This directive instructs the server to try to create an asynchronous tunnel.
+    If the current MPM does not support the necessary features, a synchronous
     tunnel is used.</p>
-    <div class="note"><h3>Note</h3><p>Async support is experimental and subject 
+    <div class="note"><h3>Note</h3><p>Async support is experimental and subject
     to change.</p></div>
 
 </div>
@@ -85,10 +85,10 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"</pre>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr>
 </table>
-    <p>If <code class="directive">ProxyWebsocketAsync</code> is enabled, this directive 
+    <p>If <code class="directive">ProxyWebsocketAsync</code> is enabled, this directive
     controls how long the server synchronously waits for more data.</p>
 
-    <div class="note"><h3>Note</h3><p>Async support is experimental and subject 
+    <div class="note"><h3>Note</h3><p>Async support is experimental and subject
     to change. </p></div>
 
 
@@ -103,7 +103,7 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"</pre>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr>
 </table>
-    <p>This directive imposes a maximum amount of time for the tunnel to be 
+    <p>This directive imposes a maximum amount of time for the tunnel to be
     left open while idle.</p>
 
 </div>
index c23b4f411b40657f2105684b6061ace6c9247a50..f5dc0ec10b0dbaf50cdacf31cf016bde78eaf482 100644 (file)
@@ -62,10 +62,10 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"
 </contextlist>
 
 <usage>
-    <p>This directive instructs the server to try to create an asynchronous tunnel. 
-    If the current MPM does not support the necessary features, a synchronous 
+    <p>This directive instructs the server to try to create an asynchronous tunnel.
+    If the current MPM does not support the necessary features, a synchronous
     tunnel is used.</p>
-    <note><title>Note</title><p>Async support is experimental and subject 
+    <note><title>Note</title><p>Async support is experimental and subject
     to change.</p></note>
 </usage>
 </directivesynopsis>
@@ -80,7 +80,7 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"
 </contextlist>
 
 <usage>
-    <p>This directive imposes a maximum amount of time for the tunnel to be 
+    <p>This directive imposes a maximum amount of time for the tunnel to be
     left open while idle.</p>
 </usage>
 </directivesynopsis>
@@ -95,10 +95,10 @@ ProxyPass "/wss2/" "wss://echo.websocket.org/"
 </contextlist>
 
 <usage>
-    <p>If <directive>ProxyWebsocketAsync</directive> is enabled, this directive 
+    <p>If <directive>ProxyWebsocketAsync</directive> is enabled, this directive
     controls how long the server synchronously waits for more data.</p>
 
-    <note><title>Note</title><p>Async support is experimental and subject 
+    <note><title>Note</title><p>Async support is experimental and subject
     to change. </p></note>
 
 </usage>
index caaf853cd84d447480c87fc2c36bc8ecaca5194e..68d396f9d2b83549d88c723ddd830f86a9b9bdca 100644 (file)
@@ -39,7 +39,7 @@ variable <code>rate-limit</code>.</p>
 
 <div class="example"><h3>Example Configuration</h3><pre class="prettyprint lang-config">&lt;Location "/downloads"&gt;
     SetOutputFilter RATE_LIMIT
-    SetEnv rate-limit 400 
+    SetEnv rate-limit 400
 &lt;/Location&gt;</pre>
 </div>
 
index 5cac06cbf846a7c4d18de4ce20f0c9fc11bf027e..affb2daf26e1f0b1e3ab2a258e1a7b37c1992e99 100644 (file)
@@ -41,7 +41,7 @@ variable <code>rate-limit</code>.</p>
 <highlight language="config">
 &lt;Location "/downloads"&gt;
     SetOutputFilter RATE_LIMIT
-    SetEnv rate-limit 400 
+    SetEnv rate-limit 400
 &lt;/Location&gt;
 </highlight>
 </example>
@@ -49,4 +49,3 @@ variable <code>rate-limit</code>.</p>
 </summary>
 
 </modulesynopsis>
-
index ef26e12bcdba2dc098789127b51709c20f0648b2..c6a4df74cbfbe8a25087f982150ff34768304a0d 100644 (file)
@@ -115,38 +115,38 @@ URLs on the fly</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_rewrite</td></tr>
 </table>
       <p>The <code class="directive">RewriteBase</code> directive specifies the
-      URL prefix to be used for per-directory (htaccess) 
+      URL prefix to be used for per-directory (htaccess)
       <code class="directive">RewriteRule</code> directives that substitute a relative
       path.</p>
       <p> This directive is <em>required</em> when you use a relative path
       in a substitution in per-directory (htaccess) context unless either
       of the following conditions are true:</p>
       <ul>
-          <li> The original request, and the substitution, are underneath the 
+          <li> The original request, and the substitution, are underneath the
                <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
-               (as opposed to reachable by other means, such as 
+               (as opposed to reachable by other means, such as
                <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>).</li>
           <li> The <em>filesystem</em> path to the directory containing the
-               <code class="directive">RewriteRule</code>, suffixed by the relative 
-               substitution is also valid as a URL path on the server 
+               <code class="directive">RewriteRule</code>, suffixed by the relative
+               substitution is also valid as a URL path on the server
                (this is rare).</li>
-          <li> In Apache HTTP Server 2.4.11 and later, this directive may be 
-                omitted when the request is mapped via 
+          <li> In Apache HTTP Server 2.4.11 and later, this directive may be
+                omitted when the request is mapped via
                 <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>
                 or <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code>.</li>
       </ul>
 
 <p> In the example below, <code class="directive">RewriteBase</code> is necessary
     to avoid rewriting to http://example.com/opt/myapp-1.2.3/welcome.html
-    since the resource was not relative to the document root.  This 
+    since the resource was not relative to the document root.  This
     misconfiguration would normally cause the server to look for an "opt"
     directory under the document root.</p>
 <pre class="prettyprint lang-config">DocumentRoot "/var/www/example.com"
 AliasMatch "^/myapp" "/opt/myapp-1.2.3"
 &lt;Directory "/opt/myapp-1.2.3"&gt;
     RewriteEngine On
-    RewriteBase /myapp/
-    RewriteRule ^index\.html$  welcome.html 
+    RewriteBase "/myapp/"
+    RewriteRule "^index\.html$"  "welcome.html"
 &lt;/Directory&gt;</pre>
 
 
@@ -343,9 +343,9 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
                   been determined by the server at the time
                   <code>REQUEST_FILENAME</code> is referenced. Otherwise,
                   such as when used in virtual host context, the same
-                  value as <code>REQUEST_URI</code>.  Depending on the value of 
+                  value as <code>REQUEST_URI</code>.  Depending on the value of
                   <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code>, the
-                  server may have only used some leading components of the 
+                  server may have only used some leading components of the
                   <code>REQUEST_URI</code> to map the request to a file.
                   </dd>
 
@@ -439,7 +439,7 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
         so that certain conditions might not be evaluated at all.</p></li>
 
         <li>
-        <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a> 
+        <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a>
         can be used for look-aheads which perform
         an internal (URL-based) sub-request to determine the final
         value of <em>variable</em>. This can be used to access
@@ -622,8 +622,8 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
             it can impact your server's performance!</p>
             <p> This flag <em>only</em> returns information about things
             like access control, authentication, and authorization.  This flag
-            <em>does not</em> return information about the status code the 
-            configured handler (static file, CGI, proxy, etc.) would have 
+            <em>does not</em> return information about the status code the
+            configured handler (static file, CGI, proxy, etc.) would have
             returned.</p> </li>
 
             <li>'<strong>-x</strong>' (has e<strong>x</strong>ecutable
@@ -648,8 +648,8 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
             to block unwanted hotlinking.
            </p>
 
-           <pre class="prettyprint lang-config">           RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
-           RewriteRule ^/images - [F]</pre>
+           <pre class="prettyprint lang-config">RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
+RewriteRule "^/images" "-" [F]</pre>
 
         </li>
 
@@ -676,9 +676,9 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
           Use this to combine rule conditions with a local OR
           instead of the implicit AND. Typical example:
 
-<pre class="prettyprint lang-config">RewriteCond %{REMOTE_HOST}  ^host1  [OR]
-RewriteCond %{REMOTE_HOST}  ^host2  [OR]
-RewriteCond %{REMOTE_HOST}  ^host3
+<pre class="prettyprint lang-config">RewriteCond "%{REMOTE_HOST}"  "^host1"  [OR]
+RewriteCond "%{REMOTE_HOST}"  "^host2"  [OR]
+RewriteCond "%{REMOTE_HOST}"  "^host3"
 RewriteRule ...some special stuff for any of these hosts...</pre>
 
 
@@ -705,10 +705,10 @@ RewriteRule ...some special stuff for any of these hosts...</pre>
         ``<code>User-Agent:</code>'' header of the request, you can
         use the following: </p>
 
-<pre class="prettyprint lang-config">RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
-RewriteRule  ^/$                 /homepage.mobile.html  [L]
+<pre class="prettyprint lang-config">RewriteCond  "%{HTTP_USER_AGENT}"  "(iPhone|Blackberry|Android)"
+RewriteRule  "^/$"                 "/homepage.mobile.html"  [L]
 
-RewriteRule  ^/$                 /homepage.std.html  [L]</pre>
+RewriteRule  "^/$"                 "/homepage.std.html"     [L]</pre>
 
 
         <p>Explanation: If you use a browser which identifies itself
@@ -793,13 +793,13 @@ RewriteRule  ^/$                 /homepage.std.html  [L]</pre>
       <p>For example, you might define a
       <code class="directive">RewriteMap</code> as:</p>
 
-      <pre class="prettyprint lang-config">RewriteMap examplemap txt:/path/to/file/map.txt</pre>
+      <pre class="prettyprint lang-config">RewriteMap examplemap "txt:/path/to/file/map.txt"</pre>
 
 
       <p>You would then be able to use this map in a
       <code class="directive">RewriteRule</code> as follows:</p>
 
-      <pre class="prettyprint lang-config">RewriteRule ^/ex/(.*) ${examplemap:$1}</pre>
+      <pre class="prettyprint lang-config">RewriteRule "^/ex/(.*)" "${examplemap:$1}"</pre>
 
 
       <p>The meaning of the <em>MapTypeOptions</em> argument depends on
@@ -926,7 +926,7 @@ RewriteRule  ^/$                 /homepage.std.html  [L]</pre>
       directory on disk but lack a trailing slash, in the expectation that
       the <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> module will issue the client with a redirect to
       the canonical URL with a trailing slash.</p>
-      
+
       <p>When the <code class="directive"><a href="../mod/mod_dir.html#directoryslash">DirectorySlash</a></code> directive
       is set to off, the <code>AllowNoSlash</code> option can be enabled to ensure
       that rewrite rules are no longer ignored. This option makes it possible to
@@ -953,7 +953,7 @@ RewriteRule  ^/$                 /homepage.std.html  [L]</pre>
       Available in Apache HTTP Server 2.4.3 and later.</p>
 
       <div class="warning">
-      <h3>Security Warning</h3> 
+      <h3>Security Warning</h3>
 
       <p>Enabling this option will make the server vulnerable to
       security issues if used with rewrite rules which are not
@@ -980,8 +980,8 @@ RewriteRule  ^/$                 /homepage.std.html  [L]</pre>
 
       <p>When a relative substitution is made
          in directory (htaccess) context and <code class="directive"><a href="#rewritebase">RewriteBase</a></code> has not been set, this module uses some
-         extended URL and filesystem context information to change the 
-         relative substitution back into a URL. Modules such as 
+         extended URL and filesystem context information to change the
+         relative substitution back into a URL. Modules such as
          <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code> and <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>
          supply this extended context info.  </p>
       </dd>
@@ -1100,7 +1100,7 @@ cannot use <code>$N</code> in the substitution string!
 
         <dd>Designates the location on the file-system of the resource
         to be delivered to the client.  Substitutions are only
-        treated as a file-system path when the rule is configured in 
+        treated as a file-system path when the rule is configured in
         server (virtualhost) context and the first component of the
         path in the substitution exists in the file-system</dd>
 
@@ -1114,7 +1114,7 @@ cannot use <code>$N</code> in the substitution string!
         you specify a <em>Substitution</em> string of
         <code>/www/file.html</code>, then this will be treated as a
         URL-path <em>unless</em> a directory named <code>www</code>
-        exists at the root or your file-system (or, in the case of 
+        exists at the root or your file-system (or, in the case of
         using rewrites in a <code>.htaccess</code> file, relative to
         your document root), in which case it will
         be treated as a file-system path. If you wish other
@@ -1201,12 +1201,12 @@ cannot use <code>$N</code> in the substitution string!
     </tr>
 <tr>
         <td>B</td>
-        <td>Escape non-alphanumeric characters in backreferences <em>before</em> 
+        <td>Escape non-alphanumeric characters in backreferences <em>before</em>
         applying the transformation. <em><a href="../rewrite/flags.html#flag_b">details ...</a></em></td>
     </tr>
 <tr class="odd">
         <td>backrefnoplus|BNP</td>
-        <td>If backreferences are being escaped, spaces should be escaped to 
+        <td>If backreferences are being escaped, spaces should be escaped to
         %20 instead of +. Useful when the backreference will be used in the
         path component rather than the query string.<em><a href="../rewrite/flags.html#flag_bnp">details ...</a></em></td>
     </tr>
@@ -1298,7 +1298,7 @@ cannot use <code>$N</code> in the substitution string!
     </tr>
 <tr class="odd">
         <td>qsappend|QSA</td>
-        <td>Appends any query string from the original request URL to 
+        <td>Appends any query string from the original request URL to
         any query string created in the rewrite target.<em><a href="../rewrite/flags.html#flag_qsa">details ...</a></em></td>
     </tr>
 <tr>
@@ -1403,7 +1403,7 @@ directive.</p>
       <p><strong>Inside per-directory configuration for
       <code>/somepath</code><br />
        (<code>/physical/path/to/somepath/.htaccess</code>, with
-      <code>RewriteBase /somepath</code>)<br />
+      <code>RewriteBase "/somepath"</code>)<br />
        for request ``<code>GET
       /somepath/localpath/pathinfo</code>'':</strong><br />
      </p>
index deac92d367abc475bb0a47541e0e889b187e59ad..a10acce5963c192b00b0ba99e5b2473d141ca9cf 100644 (file)
@@ -206,7 +206,7 @@ URLs on the fly</description>
       directory on disk but lack a trailing slash, in the expectation that
       the <module>mod_dir</module> module will issue the client with a redirect to
       the canonical URL with a trailing slash.</p>
-      
+
       <p>When the <directive module="mod_dir">DirectorySlash</directive> directive
       is set to off, the <code>AllowNoSlash</code> option can be enabled to ensure
       that rewrite rules are no longer ignored. This option makes it possible to
@@ -236,7 +236,7 @@ URLs on the fly</description>
       Available in Apache HTTP Server 2.4.3 and later.</p>
 
       <note type="warning">
-      <title>Security Warning</title> 
+      <title>Security Warning</title>
 
       <p>Enabling this option will make the server vulnerable to
       security issues if used with rewrite rules which are not
@@ -265,8 +265,8 @@ URLs on the fly</description>
       <p>When a relative substitution is made
          in directory (htaccess) context and <directive module="mod_rewrite"
          >RewriteBase</directive> has not been set, this module uses some
-         extended URL and filesystem context information to change the 
-         relative substitution back into a URL. Modules such as 
+         extended URL and filesystem context information to change the
+         relative substitution back into a URL. Modules such as
          <module>mod_userdir</module> and <module>mod_alias</module>
          supply this extended context info.  </p>
       </dd>
@@ -318,14 +318,14 @@ URLs on the fly</description>
       <directive>RewriteMap</directive> as:</p>
 
       <highlight language="config">
-      RewriteMap examplemap txt:/path/to/file/map.txt
+RewriteMap examplemap "txt:/path/to/file/map.txt"
       </highlight>
 
       <p>You would then be able to use this map in a
       <directive>RewriteRule</directive> as follows:</p>
 
       <highlight language="config">
-      RewriteRule ^/ex/(.*) ${examplemap:$1}
+RewriteRule "^/ex/(.*)" "${examplemap:$1}"
       </highlight>
 
       <p>The meaning of the <em>MapTypeOptions</em> argument depends on
@@ -382,30 +382,30 @@ URLs on the fly</description>
 
 <usage>
       <p>The <directive>RewriteBase</directive> directive specifies the
-      URL prefix to be used for per-directory (htaccess) 
+      URL prefix to be used for per-directory (htaccess)
       <directive>RewriteRule</directive> directives that substitute a relative
       path.</p>
       <p> This directive is <em>required</em> when you use a relative path
       in a substitution in per-directory (htaccess) context unless either
       of the following conditions are true:</p>
       <ul>
-          <li> The original request, and the substitution, are underneath the 
+          <li> The original request, and the substitution, are underneath the
                <directive module="core">DocumentRoot</directive>
-               (as opposed to reachable by other means, such as 
+               (as opposed to reachable by other means, such as
                <directive module="mod_alias">Alias</directive>).</li>
           <li> The <em>filesystem</em> path to the directory containing the
-               <directive>RewriteRule</directive>, suffixed by the relative 
-               substitution is also valid as a URL path on the server 
+               <directive>RewriteRule</directive>, suffixed by the relative
+               substitution is also valid as a URL path on the server
                (this is rare).</li>
-          <li> In Apache HTTP Server 2.4.11 and later, this directive may be 
-                omitted when the request is mapped via 
+          <li> In Apache HTTP Server 2.4.11 and later, this directive may be
+                omitted when the request is mapped via
                 <directive module="mod_alias">Alias</directive>
                 or <module>mod_userdir</module>.</li>
       </ul>
 
 <p> In the example below, <directive>RewriteBase</directive> is necessary
     to avoid rewriting to http://example.com/opt/myapp-1.2.3/welcome.html
-    since the resource was not relative to the document root.  This 
+    since the resource was not relative to the document root.  This
     misconfiguration would normally cause the server to look for an "opt"
     directory under the document root.</p>
 <highlight language="config">
@@ -413,8 +413,8 @@ DocumentRoot "/var/www/example.com"
 AliasMatch "^/myapp" "/opt/myapp-1.2.3"
 &lt;Directory "/opt/myapp-1.2.3"&gt;
     RewriteEngine On
-    RewriteBase /myapp/
-    RewriteRule ^index\.html$  welcome.html 
+    RewriteBase "/myapp/"
+    RewriteRule "^index\.html$"  "welcome.html"
 &lt;/Directory&gt;
 </highlight>
 
@@ -615,9 +615,9 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
                   been determined by the server at the time
                   <code>REQUEST_FILENAME</code> is referenced. Otherwise,
                   such as when used in virtual host context, the same
-                  value as <code>REQUEST_URI</code>.  Depending on the value of 
+                  value as <code>REQUEST_URI</code>.  Depending on the value of
                   <directive module="core">AcceptPathInfo</directive>, the
-                  server may have only used some leading components of the 
+                  server may have only used some leading components of the
                   <code>REQUEST_URI</code> to map the request to a file.
                   </dd>
 
@@ -711,7 +711,7 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
         so that certain conditions might not be evaluated at all.</p></li>
 
         <li>
-        <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a> 
+        <a id="LA-U" name="LA-U"><code>%{LA-U:variable}</code></a>
         can be used for look-aheads which perform
         an internal (URL-based) sub-request to determine the final
         value of <em>variable</em>. This can be used to access
@@ -894,8 +894,8 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
             it can impact your server's performance!</p>
             <p> This flag <em>only</em> returns information about things
             like access control, authentication, and authorization.  This flag
-            <em>does not</em> return information about the status code the 
-            configured handler (static file, CGI, proxy, etc.) would have 
+            <em>does not</em> return information about the status code the
+            configured handler (static file, CGI, proxy, etc.) would have
             returned.</p> </li>
 
             <li>'<strong>-x</strong>' (has e<strong>x</strong>ecutable
@@ -921,8 +921,8 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
            </p>
 
            <highlight language="config">
-           RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
-           RewriteRule ^/images - [F]
+RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"<br />
+RewriteRule "^/images" "-" [F]
            </highlight>
         </li>
 
@@ -950,9 +950,9 @@ AliasMatch "^/myapp" "/opt/myapp-1.2.3"
           instead of the implicit AND. Typical example:
 
 <highlight language="config">
-RewriteCond %{REMOTE_HOST}  ^host1  [OR]
-RewriteCond %{REMOTE_HOST}  ^host2  [OR]
-RewriteCond %{REMOTE_HOST}  ^host3
+RewriteCond "%{REMOTE_HOST}"  "^host1"  [OR]
+RewriteCond "%{REMOTE_HOST}"  "^host2"  [OR]
+RewriteCond "%{REMOTE_HOST}"  "^host3"
 RewriteRule ...some special stuff for any of these hosts...
 </highlight>
 
@@ -980,10 +980,10 @@ RewriteRule ...some special stuff for any of these hosts...
         use the following: </p>
 
 <highlight language="config">
-RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
-RewriteRule  ^/$                 /homepage.mobile.html  [L]
+RewriteCond  "%{HTTP_USER_AGENT}"  "(iPhone|Blackberry|Android)"
+RewriteRule  "^/$"                 "/homepage.mobile.html"  [L]
 
-RewriteRule  ^/$                 /homepage.std.html  [L]
+RewriteRule  "^/$"                 "/homepage.std.html"     [L]
 </highlight>
 
         <p>Explanation: If you use a browser which identifies itself
@@ -1110,7 +1110,7 @@ cannot use <code>$N</code> in the substitution string!
 
         <dd>Designates the location on the file-system of the resource
         to be delivered to the client.  Substitutions are only
-        treated as a file-system path when the rule is configured in 
+        treated as a file-system path when the rule is configured in
         server (virtualhost) context and the first component of the
         path in the substitution exists in the file-system</dd>
 
@@ -1125,7 +1125,7 @@ cannot use <code>$N</code> in the substitution string!
         you specify a <em>Substitution</em> string of
         <code>/www/file.html</code>, then this will be treated as a
         URL-path <em>unless</em> a directory named <code>www</code>
-        exists at the root or your file-system (or, in the case of 
+        exists at the root or your file-system (or, in the case of
         using rewrites in a <code>.htaccess</code> file, relative to
         your document root), in which case it will
         be treated as a file-system path. If you wish other
@@ -1217,13 +1217,13 @@ cannot use <code>$N</code> in the substitution string!
     </tr>
     <tr>
         <td>B</td>
-        <td>Escape non-alphanumeric characters in backreferences <em>before</em> 
+        <td>Escape non-alphanumeric characters in backreferences <em>before</em>
         applying the transformation. <em><a
         href="../rewrite/flags.html#flag_b">details ...</a></em></td>
     </tr>
     <tr>
         <td>backrefnoplus|BNP</td>
-        <td>If backreferences are being escaped, spaces should be escaped to 
+        <td>If backreferences are being escaped, spaces should be escaped to
         %20 instead of +. Useful when the backreference will be used in the
         path component rather than the query string.<em><a
         href="../rewrite/flags.html#flag_bnp">details ...</a></em></td>
@@ -1324,7 +1324,7 @@ cannot use <code>$N</code> in the substitution string!
     </tr>
     <tr>
         <td>qsappend|QSA</td>
-        <td>Appends any query string from the original request URL to 
+        <td>Appends any query string from the original request URL to
         any query string created in the rewrite target.<em><a
         href="../rewrite/flags.html#flag_qsa">details ...</a></em></td>
     </tr>
@@ -1446,7 +1446,7 @@ directive.</p>
       <p><strong>Inside per-directory configuration for
       <code>/somepath</code><br />
        (<code>/physical/path/to/somepath/.htaccess</code>, with
-      <code>RewriteBase /somepath</code>)<br />
+      <code>RewriteBase "/somepath"</code>)<br />
        for request ``<code>GET
       /somepath/localpath/pathinfo</code>'':</strong><br />
      </p>
index 8622bb2543a5c5ce0955bbe7bb2ac66295db4d3f..15eda7bc079a3e17600c0115f1767f5b09a7bf7a 100644 (file)
@@ -159,7 +159,7 @@ Windows</td></tr></table>
 
     <p>For example:</p>
 
-    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
+    <pre class="prettyprint lang-config">LoadFile "libexec/libxmlparse.so"</pre>
 
 
 
@@ -181,7 +181,7 @@ of active modules</td></tr>
     <code>module</code> in the file, and is listed as the <a href="module-dict.html#ModuleIdentifier">Module Identifier</a>
     in the module documentation. Example:</p>
 
-    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+    <pre class="prettyprint lang-config">LoadModule status_module "modules/mod_status.so"</pre>
 
 
     <p>loads the named module from the modules subdirectory of the
index 09da66a788ee4b10acc091c3ab738eaf664788cc..1fd8ed5b3de95153537f4c1556728516afe32a3c 100644 (file)
@@ -30,6 +30,8 @@
 <a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Chargement de modules ou de code exécutable au cours du
 démarrage ou du redémarrage du serveur</td></tr>
 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
index 55d2ecd12932f1beed6ae83a9fde26bc467eedfc..75594fdf009fa3a35868170ff3d189b29ec62129 100644 (file)
 <a href="../ko/mod/mod_so.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/mod/mod_so.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
+<div class="outofdate">この日本語訳はすでに古くなっている
+            可能性があります。
+            最近更新された内容を見るには英語版をご覧下さい。
+        </div>
 <table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>起動時や再起動時に実行コードとモジュールをサーバにロードする
 </td></tr>
 <tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
index 96bcf8af8b442055d66fb07a610513d867fe5a8f..34453b2c78b06e388bb906a4386800bd2707957a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1433861 -->
+<!-- English Revision: 1433861:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index a06dc643daf6bfa6229c18e5be9ed0af3e717bf0..a2a7b2ce27181e4270a4a5610a768cc137639427 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1433861 -->
+<!-- English Revision: 1433861:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 0d7c87c3675e96fb3197b49c91f1602556eed382..91f3eb5e949154c480b4cdd9a39902d6ce48ec74 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 420990:1433861 (outdated) -->
+<!-- English Revision: 420990:1673932 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 180ea77cd8932a0214373fae29056f2bc3ed0ff2..f316185f2f5f40f854e0a1da4ccd66adad02d16f 100644 (file)
@@ -8,8 +8,8 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
-    <variant>ja</variant>
+    <variant outdated="yes">fr</variant>
+    <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
     <variant outdated="yes">tr</variant>
   </variants>
index 5e63c02eebdc2f112383042cbace315f891f7c24..0dd13b1f3d643f33a4ee72ab6cb7fe71754c5819 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1433861 (outdated) -->
+<!-- English Revision: 1174747:1673932 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 3e95a0cd988c752950e2767d407cb8e7228b9b77..7c2e8bd8ce78d7021fe7b1b4aec6c9354a3be634 100644 (file)
@@ -1963,9 +1963,9 @@ function ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"</pre>
 the <a href="../expr.html#functions">ap_expr documentation</a>.</p>
 
 <p>The <em>expression</em> is parsed into an internal machine
-representation when the configuration is loaded, and then evaluated 
-during request processing.  In .htaccess context, the <em>expression</em> is 
-both parsed and executed each time the .htaccess file is encountered during 
+representation when the configuration is loaded, and then evaluated
+during request processing.  In .htaccess context, the <em>expression</em> is
+both parsed and executed each time the .htaccess file is encountered during
 request processing.</p>
 
 <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \
index 75f386b297d39aa08d70f9611eb7de727886f35b..1ebf1cbad6dedd47913f4fad615a3312eddc97ac 100644 (file)
@@ -1524,9 +1524,9 @@ href="#envvars">Environment Variables</a> can be used.  For
 the <a href="../expr.html#functions">ap_expr documentation</a>.</p>
 
 <p>The <em>expression</em> is parsed into an internal machine
-representation when the configuration is loaded, and then evaluated 
-during request processing.  In .htaccess context, the <em>expression</em> is 
-both parsed and executed each time the .htaccess file is encountered during 
+representation when the configuration is loaded, and then evaluated
+during request processing.  In .htaccess context, the <em>expression</em> is
+both parsed and executed each time the .htaccess file is encountered during
 request processing.</p>
 
 <example><title>Example</title>
index fad50d078cbdec71224268da72149c1baee0910c..3098c9f74d04c2467cd25f80c9f9c38f643320f3 100644 (file)
@@ -153,4 +153,3 @@ performance</description>
 </section>
 
 </modulesynopsis>
-
index 385e0f09f3845f25f37246deedd4556bc7c65f2e..a5b097fc67b582333e5299029ff1e565e8c2af97 100644 (file)
@@ -98,7 +98,7 @@
     when regular expressions are used, as illustrated in the following example: </p>
     <div class="example"><h3>Example of using backreferences and captures</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
-    # "foo=k,bar=k" -&gt; "foo/bar=k" 
+    # "foo=k,bar=k" -&gt; "foo/bar=k"
     Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
 &lt;/Location&gt;</pre>
 </div>
index 534dd62ba1eef34fddce9e3ec8a37dc4f8d471ea..6b7082fe001d5240770de5099817913022b6f824 100644 (file)
@@ -96,7 +96,7 @@
     <highlight language="config">
 &lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
-    # "foo=k,bar=k" -> "foo/bar=k" 
+    # "foo=k,bar=k" -> "foo/bar=k"
     Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
 &lt;/Location&gt;
     </highlight>
index a10d5796b1bfe7aeed32c02586333c92693b1243..01fce92f74bdde6094ffe61fb926ef94cdfae7d9 100644 (file)
@@ -56,7 +56,7 @@
     syslog(1).  The facility is effectively global, and if it is changed
     in individual virtual hosts, the final facility specified affects the
     entire server.</p>
-    
+
     <pre class="prettyprint lang-config">ErrorLog syslog:user</pre>
 
 
index 183889d4ffd5384ca7181d4c587fe59d4c4eeacf..3725fd9689a3c1d55bf5d5d3e50cc47add7c8451 100644 (file)
@@ -45,7 +45,7 @@
     syslog(1).  The facility is effectively global, and if it is changed
     in individual virtual hosts, the final facility specified affects the
     entire server.</p>
-    
+
     <highlight language="config">
 ErrorLog syslog:user
     </highlight>
index 3d88bbf10cca7d221ce6a902ca7317a4d828bd73..f034d37c19bdd810612e3907ea5740d565018256 100644 (file)
@@ -183,15 +183,15 @@ VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2"</pre>
     <p>The example request would come from
     <code>/usr/local/apache/vhosts/example.com/d/o/m/ain/directory/file.html</code>.</p>
 
-<p> A very common request by users is the ability to point multiple domains to multiple 
-document roots without having to worry about the length or number of parts of the 
+<p> A very common request by users is the ability to point multiple domains to multiple
+document roots without having to worry about the length or number of parts of the
 hostname being requested. If the requested hostname is <code>sub.www.domain.example.com</code>
  instead of simply <code>www.domain.example.com</code>, then using %3+ will result in the document
 root being <code>/usr/local/apache/vhosts/domain.example.com/...</code> instead of the
-intended <code>example.com</code> directory. In such cases, it can be beneficial to use 
-the combination <code>%-2.0.%-1.0</code>, which will always yield the domain name and the 
-tld, for example <code>example.com</code> regardless of the number of subdomains appended 
-to the hostname. As such, one can make a configuration that will direct all first, second 
+intended <code>example.com</code> directory. In such cases, it can be beneficial to use
+the combination <code>%-2.0.%-1.0</code>, which will always yield the domain name and the
+tld, for example <code>example.com</code> regardless of the number of subdomains appended
+to the hostname. As such, one can make a configuration that will direct all first, second
 or third level subdomains to the same directory:
 </p>
 <pre class="prettyprint lang-config">VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"</pre>
@@ -258,10 +258,10 @@ for a given virtual host</td></tr>
     cannot be used in the same context as <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p>
 
 <div class="warning"><h3>Note</h3>
-<code class="directive">VirtualDocumentRoot</code> will override any <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives you may have put in the same 
-context or child contexts. Putting a <code class="directive">VirtualDocumentRoot</code> 
-in the global server scope will effectively override <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives in any virtual hosts defined later 
-on, unless you set <code class="directive">VirtualDocumentRoot</code> to <code>None</code> 
+<code class="directive">VirtualDocumentRoot</code> will override any <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives you may have put in the same
+context or child contexts. Putting a <code class="directive">VirtualDocumentRoot</code>
+in the global server scope will effectively override <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives in any virtual hosts defined later
+on, unless you set <code class="directive">VirtualDocumentRoot</code> to <code>None</code>
 in each virtual host.
 </div>
 
index c70950b53f296f98a7429e9628ff935e4c4766f3..73992ba4fcd7d88f1c62ef813acfe7880f421e8b 100644 (file)
@@ -171,15 +171,15 @@ VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+"
     <p>The example request would come from
     <code>/usr/local/apache/vhosts/example.com/d/o/m/ain/directory/file.html</code>.</p>
 
-<p> A very common request by users is the ability to point multiple domains to multiple 
-document roots without having to worry about the length or number of parts of the 
+<p> A very common request by users is the ability to point multiple domains to multiple
+document roots without having to worry about the length or number of parts of the
 hostname being requested. If the requested hostname is <code>sub.www.domain.example.com</code>
  instead of simply <code>www.domain.example.com</code>, then using %3+ will result in the document
 root being <code>/usr/local/apache/vhosts/domain.example.com/...</code> instead of the
-intended <code>example.com</code> directory. In such cases, it can be beneficial to use 
-the combination <code>%-2.0.%-1.0</code>, which will always yield the domain name and the 
-tld, for example <code>example.com</code> regardless of the number of subdomains appended 
-to the hostname. As such, one can make a configuration that will direct all first, second 
+intended <code>example.com</code> directory. In such cases, it can be beneficial to use
+the combination <code>%-2.0.%-1.0</code>, which will always yield the domain name and the
+tld, for example <code>example.com</code> regardless of the number of subdomains appended
+to the hostname. As such, one can make a configuration that will direct all first, second
 or third level subdomains to the same directory:
 </p>
 <highlight language="config">
@@ -254,11 +254,11 @@ for a given virtual host</description>
 
 <note type="warning"><title>Note</title>
 <directive>VirtualDocumentRoot</directive> will override any <directive
-module="core">DocumentRoot</directive> directives you may have put in the same 
-context or child contexts. Putting a <directive>VirtualDocumentRoot</directive> 
-in the global server scope will effectively override <directive 
-module="core">DocumentRoot</directive> directives in any virtual hosts defined later 
-on, unless you set <directive>VirtualDocumentRoot</directive> to <code>None</code> 
+module="core">DocumentRoot</directive> directives you may have put in the same
+context or child contexts. Putting a <directive>VirtualDocumentRoot</directive>
+in the global server scope will effectively override <directive
+module="core">DocumentRoot</directive> directives in any virtual hosts defined later
+on, unless you set <directive>VirtualDocumentRoot</directive> to <code>None</code>
 in each virtual host.
 </note>
 
@@ -334,4 +334,3 @@ a given virtual host</description>
 
 </directivesynopsis>
 </modulesynopsis>
-
index 75804c58966cdf8db47b1c9bbc89899995958316..859ff0dc864569733c825d73dc5c182395506e8e 100644 (file)
@@ -172,4 +172,3 @@ xml2EncDefault iso-8859-1
 </directivesynopsis>
 
 </modulesynopsis>
-
index 99c8f8ad714060664e6c61f97e22c8bd00d51194..5b3d583b996370806e38185deec9517729252e6c 100644 (file)
@@ -407,7 +407,7 @@ nicht auf andere Weise ermitteln kann.</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">How much compression do we apply to the output</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Places the compression ratio in a note for logging</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
index 8c09709026b75b7a423f8c7116796be3b1aa5594..28491010bf0caac43642fd5d42b02da1b992f96b 100644 (file)
@@ -406,7 +406,7 @@ which no other media type configuration could be found.
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">How much compression do we apply to the output</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Places the compression ratio in a note for logging</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
index 5ea41eebb885079a866d2bf492efaca7ffd163c2..f120be79d7b3c9b11abba88dc8e62b9e3da44cad 100644 (file)
@@ -413,7 +413,7 @@ which no other media type configuration could be found.
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">How much compression do we apply to the output</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Places the compression ratio in a note for logging</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
index 0e9ea07a02de2959e2db9ac6d20af9aa948742a9..57037e0f103648e074b004d59fabe87a5d09e51b 100644 (file)
@@ -387,7 +387,7 @@ ServerHello</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">出力に対して行なう圧縮の程度</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">ロギング用に圧縮比をメモに追加</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">zlib が圧縮に使うメモリのレベルを指定</td></tr>
index 822ef46851c9c7704d56a5948f36bbc320ddb296..e18656f618c08037c42ab0d9701c9bafb0443ef6 100644 (file)
@@ -385,7 +385,7 @@ which no other media type configuration could be found.
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Ãâ·ÂÀ» ¾î´ÀÁ¤µµ ¾ÐÃàÇϴ°¡</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">¾ÐÃà·üÀ» ·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">zlibÀÌ ¾ÐÃàÇÒ¶§ »ç¿ëÇϴ ¸Þ¸ð¸®·®</td></tr>
index 4bd578b99c782c8b23778bf92616de614d0a1ac9..f7b32850d1257fe527838400718c0230cfbac58b 100644 (file)
@@ -410,7 +410,7 @@ türünü belirlerdi.</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sk</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">How much compression do we apply to the output</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">Places the compression ratio in a note for logging</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>skdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>skdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>skdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>skdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
index 5644deb6115bb0c38b9cce909fb56b351db3275c..2cf159ef90d18976ef96bca2dc88befb5dd097f9 100644 (file)
@@ -401,7 +401,7 @@ which no other media type configuration could be found.
 <tr class="odd"><td><a href="mod_deflate.html#deflatecompressionlevel">DeflateCompressionLevel <var>value</var></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">How much compression do we apply to the output</td></tr>
 <tr><td><a href="mod_deflate.html#deflatefilternote">DeflateFilterNote [<var>type</var>] <var>notename</var></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Places the compression ratio in a note for logging</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflatelimitrequestbody">DeflateInflateLimitRequestBody<var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size of inflated request bodies</td></tr>
-<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies 
+<tr><td><a href="mod_deflate.html#deflateinflateratioburst">DeflateInflateRatioBurst <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum number of times the inflation ratio for request bodies
              can be crossed</td></tr>
 <tr class="odd"><td><a href="mod_deflate.html#deflateinflateratiolimit">DeflateInflateRatioLimit <var>value</var></a></td><td></td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum inflation ratio for request bodies</td></tr>
 <tr><td><a href="mod_deflate.html#deflatememlevel">DeflateMemLevel <var>value</var></a></td><td> 9 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">How much memory should be used by zlib for compression</td></tr>
index f76e3d4320bd5e7fac95b97173ba0e04899d695e..8b7176b982112740ffdfa536c54bc46b07129129 100644 (file)
@@ -63,8 +63,8 @@
 <h2><a name="down" id="down">Downloading Apache for Windows</a></h2>
     
 
-    <p>The Apache HTTP Server Project itself does not provide binary releases of 
-    software, only source code. Individual committers <em>may</em> provide 
+    <p>The Apache HTTP Server Project itself does not provide binary releases of
+    software, only source code. Individual committers <em>may</em> provide
     binary packages as a convenience, but it is not a release deliverable.</p>
     <p>If you cannot compile the Apache HTTP Server
     yourself, you can obtain a binary package from numerous binary distributions
       is used in URLs, you can use something like:</p>
 
       <pre class="prettyprint lang-config">RewriteEngine On
-RewriteMap lowercase int:tolower
-RewriteCond %{REQUEST_URI} [A-Z]
-RewriteRule (.*) ${lowercase:$1} [R,L]</pre>
+RewriteMap lowercase "int:tolower"
+RewriteCond "%{REQUEST_URI}" "[A-Z]"
+RewriteRule "(.*)"           "${lowercase:$1}" [R,L]</pre>
 </li>
 
       <li><p>When running, Apache needs write access only to the logs
@@ -436,8 +436,8 @@ RewriteRule (.*) ${lowercase:$1} [R,L]</pre>
     Programs. Change to the folder to which you installed Apache, type
     the command <code>httpd.exe</code>, and read the error message. Then
     change to the logs folder, and review the <code>error.log</code>
-    file for configuration mistakes. Assuming httpd was installed into 
-    <code>C:\Program Files\Apache Software Foundation\Apache2.5\</code>, 
+    file for configuration mistakes. Assuming httpd was installed into
+    <code>C:\Program Files\Apache Software Foundation\Apache2.5\</code>,
     you can do the following:</p>
 
     <div class="example"><p><code>
@@ -625,7 +625,7 @@ RewriteRule (.*) ${lowercase:$1} [R,L]</pre>
 <h2><a name="tuning" id="tuning">Windows Tuning</a></h2>
     
     <ul>
-      <li><p>If more than a few dozen piped loggers are used on an operating system 
+      <li><p>If more than a few dozen piped loggers are used on an operating system
       instance, scaling up the "desktop heap" is often necessary. For
       more detailed information, refer to the <a href="../logs.html#piped">piped logging</a> documentation.</p></li>
     </ul>
index 61d967ba0cef757456fb35bdf65ba97d523e03e1..c8c1dd3c088bc68f784780f08b96dd5bac959368 100644 (file)
@@ -54,8 +54,8 @@
   <section id="down">
     <title>Downloading Apache for Windows</title>
 
-    <p>The Apache HTTP Server Project itself does not provide binary releases of 
-    software, only source code. Individual committers <em>may</em> provide 
+    <p>The Apache HTTP Server Project itself does not provide binary releases of
+    software, only source code. Individual committers <em>may</em> provide
     binary packages as a convenience, but it is not a release deliverable.</p>
     <p>If you cannot compile the Apache HTTP Server
     yourself, you can obtain a binary package from numerous binary distributions
@@ -72,7 +72,7 @@
     </ul>
   </section>
 
-  
+
   <section id="cust">
     <title>Customizing Apache for Windows</title>
 
 
       <highlight language="config">
 RewriteEngine On
-RewriteMap lowercase int:tolower
-RewriteCond %{REQUEST_URI} [A-Z]
-RewriteRule (.*) ${lowercase:$1} [R,L]
+RewriteMap lowercase "int:tolower"
+RewriteCond "%{REQUEST_URI}" "[A-Z]"
+RewriteRule "(.*)"           "${lowercase:$1}" [R,L]
       </highlight></li>
 
       <li><p>When running, Apache needs write access only to the logs
@@ -432,8 +432,8 @@ RewriteRule (.*) ${lowercase:$1} [R,L]
     Programs. Change to the folder to which you installed Apache, type
     the command <code>httpd.exe</code>, and read the error message. Then
     change to the logs folder, and review the <code>error.log</code>
-    file for configuration mistakes. Assuming httpd was installed into 
-    <code>C:\Program Files\Apache Software Foundation\Apache2.&httpd.minor;\</code>, 
+    file for configuration mistakes. Assuming httpd was installed into
+    <code>C:\Program Files\Apache Software Foundation\Apache2.&httpd.minor;\</code>,
     you can do the following:</p>
 
     <example>
@@ -631,7 +631,7 @@ Alias "/images/" "//imagehost/www/images/"
   <section id="tuning">
     <title>Windows Tuning</title>
     <ul>
-      <li><p>If more than a few dozen piped loggers are used on an operating system 
+      <li><p>If more than a few dozen piped loggers are used on an operating system
       instance, scaling up the "desktop heap" is often necessary. For
       more detailed information, refer to the <a href="../logs.html#piped"
       >piped logging</a> documentation.</p></li>
index ab61fa31e3dccff8c631711feaa7406fa0c4f231..da3e826d2d76b162d098e314bd4f41b205732268 100644 (file)
@@ -78,25 +78,25 @@ configuration.</div>
 
 
 
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$    -   [F,NC]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com" [NC]
+RewriteRule "\.(gif|jpg|png)$" "-"                [F,NC]</pre>
 
 
     <p>In this second example, instead of failing the request, we display
     an alternate image instead.</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$    /images/go-away.png   [R,NC]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com"      [NC]
+RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png"   [R,NC]</pre>
 
 
     <p>In the third example, we redirect the request to an image on some
     other site.</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif   [R,NC]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com"                    [NC]
+RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif"  [R,NC]</pre>
 
 
     <p>Of these techniques, the last two tend to be the most effective
@@ -159,9 +159,9 @@ RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif   [R,NC]</pre>
         range, if you are trying to block that user agent only from the
         particular source.</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_USER_AGENT}   ^NameOfBadRobot
-RewriteCond %{REMOTE_ADDR}       =123\.45\.67\.[8-9]
-RewriteRule ^/secret/files/   -   [F]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_USER_AGENT}"   "^NameOfBadRobot"
+RewriteCond "%{REMOTE_ADDR}"       "=123\.45\.67\.[8-9]"
+RewriteRule "^/secret/files/"      "-"                   [F]</pre>
 
         </dd>
 
@@ -210,10 +210,10 @@ RewriteRule ^/secret/files/   -   [F]</pre>
 
     <dd>
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap    hosts-deny  txt:/path/to/hosts.deny
-RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
-RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
-RewriteRule   ^  -  [F]</pre>
+RewriteMap    hosts-deny  "txt:/path/to/hosts.deny"
+RewriteCond   "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
+RewriteCond   "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule   "^"                                      "-"           [F]</pre>
 
 
 <div class="example"><p><code>
@@ -262,15 +262,15 @@ bsdti1.sdm.de  -<br />
   <p>The following ruleset uses a map file to associate each Referer
   with a redirection target.</p>
 
-<pre class="prettyprint lang-config">RewriteMap  deflector txt:/path/to/deflector.map
+<pre class="prettyprint lang-config">RewriteMap  deflector "txt:/path/to/deflector.map"
 
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}} =-
-RewriteRule ^ %{HTTP_REFERER} [R,L]
+RewriteCond "%{HTTP_REFERER}"              !=""
+RewriteCond "${deflector:%{HTTP_REFERER}}" =-
+RewriteRule "^"                            "%{HTTP_REFERER}" [R,L]
 
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
-RewriteRule ^ ${deflector:%{HTTP_REFERER}} [R,L]</pre>
+RewriteCond "%{HTTP_REFERER}"              !=""
+RewriteCond "${deflector:%{HTTP_REFERER}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule "^"                            "${deflector:%{HTTP_REFERER}}" [R,L]</pre>
 
 
       <p>The map file lists redirection targets for each referer, or, if
index 0830852c606f8386b98790c658c5e01916455067..67aa57a0d33fc35cf4a649b71b00bdda594f9a20 100644 (file)
@@ -84,27 +84,27 @@ configuration.</note>
 <!-- TODO: Add discussion here of why we have !^$ in there. -->
 
 <highlight language="config">
-RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$    -   [F,NC]
+RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com" [NC]
+RewriteRule "\.(gif|jpg|png)$" "-"                [F,NC]
 </highlight>
 
     <p>In this second example, instead of failing the request, we display
     an alternate image instead.</p>
 
 <highlight language="config">
-RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$    /images/go-away.png   [R,NC]
+RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com"      [NC]
+RewriteRule "\.(gif|jpg|png)$" "/images/go-away.png"   [R,NC]
 </highlight>
 
     <p>In the third example, we redirect the request to an image on some
     other site.</p>
 
 <highlight language="config">
-RewriteCond %{HTTP_REFERER} !^$
-RewriteCond %{HTTP_REFERER} !www.example.com [NC]
-RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif   [R,NC]
+RewriteCond "%{HTTP_REFERER}"  "!^$"
+RewriteCond "%{HTTP_REFERER}"  "!www.example.com"                    [NC]
+RewriteRule "\.(gif|jpg|png)$" "http://other.example.com/image.gif"  [R,NC]
 </highlight>
 
     <p>Of these techniques, the last two tend to be the most effective
@@ -169,9 +169,9 @@ SetEnvIf Referer example\.com localreferer
         particular source.</p>
 
 <highlight language="config">
-RewriteCond %{HTTP_USER_AGENT}   ^NameOfBadRobot
-RewriteCond %{REMOTE_ADDR}       =123\.45\.67\.[8-9]
-RewriteRule ^/secret/files/   -   [F]
+RewriteCond "%{HTTP_USER_AGENT}"   "^NameOfBadRobot"
+RewriteCond "%{REMOTE_ADDR}"       "=123\.45\.67\.[8-9]"
+RewriteRule "^/secret/files/"      "-"                   [F]
 </highlight>
         </dd>
 
@@ -222,10 +222,10 @@ SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
     <dd>
 <highlight language="config">
 RewriteEngine on
-RewriteMap    hosts-deny  txt:/path/to/hosts.deny
-RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
-RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
-RewriteRule   ^  -  [F]
+RewriteMap    hosts-deny  "txt:/path/to/hosts.deny"
+RewriteCond   "${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}" "!=NOT-FOUND" [OR]
+RewriteCond   "${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule   "^"                                      "-"           [F]
 </highlight>
 
 <example>
@@ -275,15 +275,15 @@ bsdti1.sdm.de  -<br />
   with a redirection target.</p>
 
 <highlight language="config">
-RewriteMap  deflector txt:/path/to/deflector.map
+RewriteMap  deflector "txt:/path/to/deflector.map"
 
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}} =-
-RewriteRule ^ %{HTTP_REFERER} [R,L]
+RewriteCond "%{HTTP_REFERER}"              !=""
+RewriteCond "${deflector:%{HTTP_REFERER}}" =-
+RewriteRule "^"                            "%{HTTP_REFERER}" [R,L]
 
-RewriteCond %{HTTP_REFERER} !=""
-RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
-RewriteRule ^ ${deflector:%{HTTP_REFERER}} [R,L]
+RewriteCond "%{HTTP_REFERER}"              !=""
+RewriteCond "${deflector:%{HTTP_REFERER}|NOT-FOUND}" "!=NOT-FOUND"
+RewriteRule "^"                            "${deflector:%{HTTP_REFERER}}" [R,L]
 </highlight>
 
       <p>The map file lists redirection targets for each referer, or, if
index 6aea5414d1bad46822c4dacb81189c5fa456bd26..8a723de08d2dc0a9f04f97ae238a7cdd0f399dcd 100644 (file)
@@ -93,8 +93,8 @@ http://physical_host_of_user1/u/user/anypath
       a user has no entry in the map:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap      users-to-hosts   txt:/path/to/map.users-to-hosts
-RewriteRule   ^/u/([^/]+)/?(.*)   http://${users-to-hosts:$1|server0}/u/$1/$2</pre>
+RewriteMap    users-to-hosts      "txt:/path/to/map.users-to-hosts"
+RewriteRule   "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
 
     </dd>
   </dl>
@@ -125,8 +125,8 @@ RewriteRule   ^/u/([^/]+)/?(.*)   http://${users-to-hosts:$1|server0}/u/$1/$2</p
       This is done via the following ruleset:
 
 <pre class="prettyprint lang-config"># This example is valid in per-directory context only
-RewriteCond %{REQUEST_URI}   !-U
-RewriteRule ^(.+)\.html$          /regenerate_page.cgi   [PT,L]</pre>
+RewriteCond "%{REQUEST_URI}"   !-U
+RewriteRule "^(.+)\.html$"     "/regenerate_page.cgi"   [PT,L]</pre>
 
 
     <p>The <code>-U</code> operator determines whether the test string
@@ -165,8 +165,8 @@ RewriteRule ^(.+)\.html$          /regenerate_page.cgi   [PT,L]</pre>
       to accomplish this.</p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteMap lb rnd:/path/to/serverlist.txt
-RewriteRule ^/(.*) http://${lb:servers}/$1 [P,L]</pre>
+RewriteMap  lb       "rnd:/path/to/serverlist.txt"
+RewriteRule "^/(.*)" "http://${lb:servers}/$1"     [P,L]</pre>
 
 
 <p><code>serverlist.txt</code> will contain a list of the servers:</p>
@@ -216,7 +216,7 @@ featureful than anything you can cobble together using mod_rewrite.</p>
       into the above layout.</p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</strong>/$1/public_html$3</pre>
+RewriteRule   "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)"  "/home/<strong>$2</strong>/$1/public_html$3"</pre>
 
     </dd>
   </dl>
@@ -274,10 +274,10 @@ RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</stro
       do time-dependent redirects:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteCond   %{TIME_HOUR}%{TIME_MIN} &gt;0700
-RewriteCond   %{TIME_HOUR}%{TIME_MIN} &lt;1900
-RewriteRule   ^foo\.html$             foo.day.html [L]
-RewriteRule   ^foo\.html$             foo.night.html</pre>
+RewriteCond   "%{TIME_HOUR}%{TIME_MIN}" &gt;0700
+RewriteCond   "%{TIME_HOUR}%{TIME_MIN}" &lt;1900
+RewriteRule   "^foo\.html$"             "foo.day.html" [L]
+RewriteRule   "^foo\.html$"             "foo.night.html"</pre>
 
 
       <p>This provides the content of <code>foo.day.html</code>
@@ -318,13 +318,13 @@ RewriteRule   ^foo\.html$             foo.night.html</pre>
       <p>Use the [E] flag to set an environment variable.</p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule   ^/horse/(.*)   /pony/$1 [E=<strong>rewritten:1</strong>]</pre>
+RewriteRule   "^/horse/(.*)"   "/pony/$1" [E=<strong>rewritten:1</strong>]</pre>
 
 
     <p>Later in your ruleset you might check for this environment
     variable using a RewriteCond:</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{ENV:rewritten} =1</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{ENV:rewritten}"  =1</pre>
 
 
     <p>Note that environment variables do not survive an external
index 7f1b8893d903f26f0a56d01fb683f0b82d71873c..8abba8e109cbb176eb9d7ab84e106c07911bc6a0 100644 (file)
@@ -101,8 +101,8 @@ http://physical_host_of_user1/u/user/anypath
 
 <highlight language="config">
 RewriteEngine on
-RewriteMap      users-to-hosts   txt:/path/to/map.users-to-hosts
-RewriteRule   ^/u/([^/]+)/?(.*)   http://${users-to-hosts:$1|server0}/u/$1/$2
+RewriteMap    users-to-hosts      "txt:/path/to/map.users-to-hosts"
+RewriteRule   "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"
 </highlight>
     </dd>
   </dl>
@@ -134,8 +134,8 @@ RewriteRule   ^/u/([^/]+)/?(.*)   http://${users-to-hosts:$1|server0}/u/$1/$2
 
 <highlight language="config">
 # This example is valid in per-directory context only
-RewriteCond %{REQUEST_URI}   !-U
-RewriteRule ^(.+)\.html$          /regenerate_page.cgi   [PT,L]
+RewriteCond "%{REQUEST_URI}"   !-U
+RewriteRule "^(.+)\.html$"     "/regenerate_page.cgi"   [PT,L]
 </highlight>
 
     <p>The <code>-U</code> operator determines whether the test string
@@ -176,8 +176,8 @@ RewriteRule ^(.+)\.html$          /regenerate_page.cgi   [PT,L]
 
 <highlight language="config">
 RewriteEngine on
-RewriteMap lb rnd:/path/to/serverlist.txt
-RewriteRule ^/(.*) http://${lb:servers}/$1 [P,L]
+RewriteMap  lb       "rnd:/path/to/serverlist.txt"
+RewriteRule "^/(.*)" "http://${lb:servers}/$1"     [P,L]
 </highlight>
 
 <p><code>serverlist.txt</code> will contain a list of the servers:</p>
@@ -228,7 +228,7 @@ featureful than anything you can cobble together using mod_rewrite.</p>
 
 <highlight language="config">
 RewriteEngine on
-RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</strong>/$1/public_html$3
+RewriteRule   "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)"  "/home/<strong>$2</strong>/$1/public_html$3"
 </highlight>
     </dd>
   </dl>
@@ -287,10 +287,10 @@ RewriteRule   ^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)  /home/<strong>$2</stro
 
 <highlight language="config">
 RewriteEngine on
-RewriteCond   %{TIME_HOUR}%{TIME_MIN} &gt;0700
-RewriteCond   %{TIME_HOUR}%{TIME_MIN} &lt;1900
-RewriteRule   ^foo\.html$             foo.day.html [L]
-RewriteRule   ^foo\.html$             foo.night.html
+RewriteCond   "%{TIME_HOUR}%{TIME_MIN}" &gt;0700
+RewriteCond   "%{TIME_HOUR}%{TIME_MIN}" &lt;1900
+RewriteRule   "^foo\.html$"             "foo.day.html" [L]
+RewriteRule   "^foo\.html$"             "foo.night.html"
 </highlight>
 
       <p>This provides the content of <code>foo.day.html</code>
@@ -332,14 +332,14 @@ RewriteRule   ^foo\.html$             foo.night.html
 
 <highlight language="config">
 RewriteEngine on
-RewriteRule   ^/horse/(.*)   /pony/$1 [E=<strong>rewritten:1</strong>]
+RewriteRule   "^/horse/(.*)"   "/pony/$1" [E=<strong>rewritten:1</strong>]
 </highlight>
 
     <p>Later in your ruleset you might check for this environment
     variable using a RewriteCond:</p>
 
 <highlight language="config">
-RewriteCond %{ENV:rewritten} =1
+RewriteCond "%{ENV:rewritten}"  =1
 </highlight>
 
     <p>Note that environment variables do not survive an external
index e599d1df57b2fd980c472671f8140f0faedf1b1f..e0f65fc9d5597f53c9c459e76e5c21f356a0dbb3 100644 (file)
@@ -64,7 +64,7 @@ by commas.</p>
 
 
 <p>Each flag (with a few exceptions) has a short form, such as
-<code>CO</code>, as well as a longer form, such as <code>cookie</code>. 
+<code>CO</code>, as well as a longer form, such as <code>cookie</code>.
 While it is most common to use
 the short form, it is recommended that you familiarize yourself with the
 long form, so that you remember what each flag is supposed to do.
@@ -82,9 +82,9 @@ of how you might use them.</p>
 <h2><a name="flag_b" id="flag_b">B (escape backreferences)</a></h2>
 <p>The [B] flag instructs <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to escape non-alphanumeric
 characters before applying the transformation.</p>
-<p>In 2.4.10 and later, you can limit the escaping to specific characters 
-in backreferences by listing them: <code>[B=#?;]</code>. Note: The space 
-character can be used in the list of characters to escape, but it cannot be 
+<p>In 2.4.10 and later, you can limit the escaping to specific characters
+in backreferences by listing them: <code>[B=#?;]</code>. Note: The space
+character can be used in the list of characters to escape, but it cannot be
 the last character in the list.</p>
 
 <p><code>mod_rewrite</code> has to unescape URLs before mapping them,
@@ -92,7 +92,7 @@ so backreferences are unescaped at the time they are applied.
 Using the B flag, non-alphanumeric characters in backreferences
 will be escaped. For example, consider the rule:</p>
 
-<pre class="prettyprint lang-config">RewriteRule ^search/(.*)$ /search.php?term=$1</pre>
+<pre class="prettyprint lang-config">RewriteRule "^search/(.*)$" "/search.php?term=$1"</pre>
 
 
 <p>Given a search term of 'x &amp; y/z', a browser will encode it as
@@ -118,7 +118,7 @@ strings in the encoded form.</p>
 <div class="section">
 <h2><a name="flag_bnp" id="flag_bnp">BNP|backrefnoplus (don't escape space to +)</a></h2>
 <p>The [BNP] flag instructs <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to escape the space character
-in a backreference to %20 rather than '+'. Useful when the backreference 
+in a backreference to %20 rather than '+'. Useful when the backreference
 will be used in the path component rather than the query string.</p>
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -186,7 +186,7 @@ browsers that support this feature.</dd>
 <p>Consider this example:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine On
-RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.com:1440:/]</pre>
+RewriteRule   "^/index\.html"   "-" [CO=frontdoor:yes:.example.com:1440:/]</pre>
 
 
 <p>In the example give, the rule doesn't rewrite the request.
@@ -272,15 +272,15 @@ value of '1' if the requested URI is an image file. Then, that
 environment variable is used to exclude those requests from the access
 log.</p>
 
-<pre class="prettyprint lang-config">RewriteRule \.(png|gif|jpg)$ - [E=image:1]
-CustomLog logs/access_log combined env=!image</pre>
+<pre class="prettyprint lang-config">RewriteRule "\.(png|gif|jpg)$"   "-" [E=image:1]
+CustomLog   logs/access_log      combined env=!image</pre>
 
 
 <p>Note that this same effect can be obtained using <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. This technique is offered as
 an example, not as a recommendation.</p>
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
-<h2><a name="flag_end" id="flag_end">END</a></h2> 
+<h2><a name="flag_end" id="flag_end">END</a></h2>
 <p>Using the [END] flag terminates not only the current round of rewrite
 processing (like [L]) but also prevents any subsequent rewrite
 processing from occurring in per-directory (htaccess) context.</p>
@@ -298,7 +298,7 @@ allows more flexibility in assigning a Forbidden status.</p>
 <p>The following rule will forbid <code>.exe</code> files from being
 downloaded from your server.</p>
 
-<pre class="prettyprint lang-config">RewriteRule \.exe - [F]</pre>
+<pre class="prettyprint lang-config">RewriteRule "\.exe"   "-" [F]</pre>
 
 
 <p>This example uses the "-" syntax for the rewrite target, which means
@@ -318,7 +318,7 @@ longer available.</p>
 <p>As with the [F] flag, you will typically use the "-" syntax for the
 rewrite target when using the [G] flag:</p>
 
-<pre class="prettyprint lang-config">RewriteRule oldproduct - [G,NC]</pre>
+<pre class="prettyprint lang-config">RewriteRule "oldproduct"   "-" [G,NC]</pre>
 
 
 <p>When using [G], an [L] is implied - that is, the response is returned
@@ -331,7 +331,7 @@ immediately, and no further rules are evaluated.</p>
 handler. For example, one might use this to force all files without a
 file extension to be parsed by the php handler:</p>
 
-<pre class="prettyprint lang-config">RewriteRule !\. - [H=application/x-httpd-php]</pre>
+<pre class="prettyprint lang-config">RewriteRule "!\."  "-" [H=application/x-httpd-php]</pre>
 
 
 <p>
@@ -344,7 +344,7 @@ For example, the following snippet used in per-server context allows
 <code>.php</code> files to be <em>displayed</em> by <code>mod_php</code>
 if they are requested with the <code>.phps</code> extension:</p>
 
-<pre class="prettyprint lang-config">RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source]</pre>
+<pre class="prettyprint lang-config">RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]</pre>
 
 
 <p>The regular expression above - <code>^(/source/.+\.php)s$</code> - will
@@ -392,9 +392,9 @@ redirects.</p>
 argument to <code>index.php</code>, however, the <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> ensures that if the request
 is already for <code>index.php</code>, the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> will be skipped.</p>
 
-<pre class="prettyprint lang-config">RewriteBase /
-RewriteCond %{REQUEST_URI} !=/index.php
-RewriteRule ^(.*) /index.php?req=$1 [L,PT]</pre>
+<pre class="prettyprint lang-config">RewriteBase "/"
+RewriteCond "%{REQUEST_URI}" !=/index.php
+RewriteRule "^(.*)"          "/index.php?req=$1" [L,PT]</pre>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -410,7 +410,7 @@ certain string or letter repeatedly in a request. The example shown here
 will replace A with B everywhere in a request, and will continue doing
 so until there are no more As to be replaced.
 </p>
-<pre class="prettyprint lang-config">RewriteRule (.*)A(.*) $1B$2 [N]</pre>
+<pre class="prettyprint lang-config">RewriteRule "(.*)A(.*)" "$1B$2" [N]</pre>
 
 <p>You can think of this as a <code>while</code> loop: While this
 pattern still matches (i.e., while the URI still contains an
@@ -418,12 +418,12 @@ pattern still matches (i.e., while the URI still contains an
 <code>A</code> with a <code>B</code>).</p>
 
 <p>In 2.5.0 and later, this module returns an error after 10,000 iterations to
-protect against unintended looping.  An alternative maximum number of 
+protect against unintended looping.  An alternative maximum number of
 iterations can be specified by adding to the N flag.  </p>
 <pre class="prettyprint lang-config"># Be willing to replace 1 character in each pass of the loop
-RewriteRule (.+)[&gt;&lt;;]$ $1 [N=32000]
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=32000]
 # ... or, give up if after 10 loops
-RewriteRule (.+)[&gt;&lt;;]$ $1 [N=10]</pre>
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=10]</pre>
 
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -438,7 +438,7 @@ to your dedicated image server. The match is case-insensitive, so that
 <code>.jpg</code> and <code>.JPG</code> files are both acceptable, for
 example.</p>
 
-<pre class="prettyprint lang-config">RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]</pre>
+<pre class="prettyprint lang-config">RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]</pre>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -448,7 +448,7 @@ example.</p>
 equivalent. Using the [NE] flag prevents that from happening.
 </p>
 
-<pre class="prettyprint lang-config">RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R]</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]</pre>
 
 
 <p>
@@ -490,7 +490,7 @@ requests.
 example, if you wanted all image requests to be handled by a back-end
 image server, you might do something like the following:</p>
 
-<pre class="prettyprint lang-config">RewriteRule /(.*)\.(jpg|gif|png)$ http://images.example.com/$1.$2 [P]</pre>
+<pre class="prettyprint lang-config">RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]</pre>
 
 
 <p>Use of the [P] flag implies [L] - that is, the request is immediately
@@ -548,7 +548,7 @@ use the [PT] flag to ensure that the
 </p>
 
 <pre class="prettyprint lang-config">Alias "/icons" "/usr/local/apache/icons"
-RewriteRule /pics/(.+)\.jpg$ /icons/$1.gif [PT]</pre>
+RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]</pre>
 
 
 <p>
@@ -578,7 +578,7 @@ Using the [QSA] flag causes the query strings to be combined.
 
 <p>Consider the following rule:</p>
 
-<pre class="prettyprint lang-config">RewriteRule /pages/(.+) /page.php?page=$1 [QSA]</pre>
+<pre class="prettyprint lang-config">RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]</pre>
 
 
 <p>With the [QSA] flag, a request for <code>/pages/123?one=two</code> will be
@@ -625,7 +625,7 @@ will be used to generate the URL sent with the redirect.
 <em>Any</em> valid HTTP response  status code may be specified,
 using the syntax [R=305], with a 302 status code being used by
 default if none is specified. The status code specified need not
-necessarily be a redirect (3xx) status code. However, 
+necessarily be a redirect (3xx) status code. However,
 if a status code is outside the redirect range (300-399) then the
 substitution string is dropped entirely, and rewriting is stopped as if
 the <code>L</code> were used.</p>
@@ -645,24 +645,24 @@ URI in request' warnings.
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="flag_s" id="flag_s">S|skip</a></h2>
-<p>The [S] flag is used to skip rules that you don't want to run. The 
-syntax of the skip flag is [S=<em>N</em>], where <em>N</em> signifies 
+<p>The [S] flag is used to skip rules that you don't want to run. The
+syntax of the skip flag is [S=<em>N</em>], where <em>N</em> signifies
 the number of rules to skip (provided the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">
 RewriteRule</a></code> and any preceding <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">
-RewriteCond</a></code> directives match). This can be thought of as a 
-<code>goto</code> statement in your rewrite ruleset. In the following 
+RewriteCond</a></code> directives match). This can be thought of as a
+<code>goto</code> statement in your rewrite ruleset. In the following
 example, we only want to run the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">
-RewriteRule</a></code> if the requested URI doesn't correspond with an 
+RewriteRule</a></code> if the requested URI doesn't correspond with an
 actual file.</p>
 
 <pre class="prettyprint lang-config"># Is the request for a non-existent file?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
 # If so, skip these two RewriteRules
-RewriteRule .? - [S=2]
+RewriteRule ".?"                  "-" [S=2]
 
-RewriteRule (.*\.gif) images.php?$1
-RewriteRule (.*\.html) docs.php?$1</pre>
+RewriteRule "(.*\.gif)"           "images.php?$1"
+RewriteRule "(.*\.html)"          "docs.php?$1"</pre>
 
 
 <p>This technique is useful because a <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> only applies to the
@@ -674,18 +674,18 @@ use this to make pseudo if-then-else constructs: The last rule of
 the then-clause becomes <code>skip=N</code>, where N is the
 number of rules in the else-clause:</p>
 <pre class="prettyprint lang-config"># Does the file exist?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
 # Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
-RewriteRule .? - [S=3]
+RewriteRule ".?"                  "-" [S=3]
 
 # IF the file exists, then:
-    RewriteRule (.*\.gif) images.php?$1
-    RewriteRule (.*\.html) docs.php?$1
+    RewriteRule "(.*\.gif)"  "images.php?$1"
+    RewriteRule "(.*\.html)" "docs.php?$1"
     # Skip past the "else" stanza.
-    RewriteRule .? - [S=1]
+    RewriteRule ".?"         "-" [S=1]
 # ELSE...
-    RewriteRule (.*) 404.php?file=$1
+    RewriteRule "(.*)"       "404.php?file=$1"
 # END</pre>
 
 
@@ -702,7 +702,7 @@ sent. This has the same effect as the <code class="directive"><a href="../mod/mo
 source code as plain text, if requested in a particular way:</p>
 
 <pre class="prettyprint lang-config"># Serve .pl files as plain text
-RewriteRule \.pl$ - [T=text/plain]</pre>
+RewriteRule "\.pl$"  "-" [T=text/plain]</pre>
 
 
 <p>Or, perhaps, if you have a camera that produces jpeg images without
@@ -710,7 +710,7 @@ file extensions, you could force those images to be served with the
 correct MIME type by virtue of their file names:</p>
 
 <pre class="prettyprint lang-config"># Files with 'IMG' in the name are jpg images.
-RewriteRule IMG - [T=image/jpg]</pre>
+RewriteRule "IMG"  "-" [T=image/jpg]</pre>
 
 
 <p>Please note that this is a trivial example, and could be better done
index b12cad3d3b37b648cdb92d63913ac407a0bc0b3f..b3bccb2584076455349d0a7a8ebe2e2d14774ce2 100644 (file)
@@ -81,7 +81,7 @@ Using the B flag, non-alphanumeric characters in backreferences
 will be escaped. For example, consider the rule:</p>
 
 <highlight language="config">
-RewriteRule ^search/(.*)$ /search.php?term=$1
+RewriteRule "^search/(.*)$" "/search.php?term=$1"
 </highlight>
 
 <p>Given a search term of 'x &amp; y/z', a browser will encode it as
@@ -180,7 +180,7 @@ browsers that support this feature.</dd>
 
 <highlight language="config">
 RewriteEngine On
-RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.com:1440:/]
+RewriteRule   "^/index\.html"   "-" [CO=frontdoor:yes:.example.com:1440:/]
 </highlight>
 
 <p>In the example give, the rule doesn't rewrite the request.
@@ -267,8 +267,8 @@ environment variable is used to exclude those requests from the access
 log.</p>
 
 <highlight language="config">
-RewriteRule \.(png|gif|jpg)$ - [E=image:1]
-CustomLog logs/access_log combined env=!image
+RewriteRule "\.(png|gif|jpg)$"   "-" [E=image:1]
+CustomLog   logs/access_log      combined env=!image
 </highlight>
 
 <p>Note that this same effect can be obtained using <directive
@@ -295,7 +295,7 @@ allows more flexibility in assigning a Forbidden status.</p>
 downloaded from your server.</p>
 
 <highlight language="config">
-RewriteRule \.exe - [F]
+RewriteRule "\.exe"   "-" [F]
 </highlight>
 
 <p>This example uses the "-" syntax for the rewrite target, which means
@@ -316,7 +316,7 @@ longer available.</p>
 rewrite target when using the [G] flag:</p>
 
 <highlight language="config">
-RewriteRule oldproduct - [G,NC]
+RewriteRule "oldproduct"   "-" [G,NC]
 </highlight>
 
 <p>When using [G], an [L] is implied - that is, the response is returned
@@ -330,7 +330,7 @@ handler. For example, one might use this to force all files without a
 file extension to be parsed by the php handler:</p>
 
 <highlight language="config">
-RewriteRule !\. - [H=application/x-httpd-php]
+RewriteRule "!\."  "-" [H=application/x-httpd-php]
 </highlight>
 
 <p>
@@ -344,7 +344,7 @@ For example, the following snippet used in per-server context allows
 if they are requested with the <code>.phps</code> extension:</p>
 
 <highlight language="config">
-RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source]
+RewriteRule "^(/source/.+\.php)s$" "$1" [H=application/x-httpd-php-source]
 </highlight>
 
 <p>The regular expression above - <code>^(/source/.+\.php)s$</code> - will
@@ -397,9 +397,9 @@ is already for <code>index.php</code>, the <directive
 module="mod_rewrite">RewriteRule</directive> will be skipped.</p>
 
 <highlight language="config">
-RewriteBase /
-RewriteCond %{REQUEST_URI} !=/index.php
-RewriteRule ^(.*) /index.php?req=$1 [L,PT]
+RewriteBase "/"
+RewriteCond "%{REQUEST_URI}" !=/index.php
+RewriteRule "^(.*)"          "/index.php?req=$1" [L,PT]
 </highlight>
 </section>
 
@@ -416,7 +416,7 @@ will replace A with B everywhere in a request, and will continue doing
 so until there are no more As to be replaced.
 </p>
 <highlight language="config">
-RewriteRule (.*)A(.*) $1B$2 [N]
+RewriteRule "(.*)A(.*)" "$1B$2" [N]
 </highlight>
 <p>You can think of this as a <code>while</code> loop: While this
 pattern still matches (i.e., while the URI still contains an
@@ -428,9 +428,9 @@ protect against unintended looping.  An alternative maximum number of
 iterations can be specified by adding to the N flag.  </p>
 <highlight language="config">
 # Be willing to replace 1 character in each pass of the loop
-RewriteRule (.+)[&gt;&lt;;]$ $1 [N=32000]
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=32000]
 # ... or, give up if after 10 loops
-RewriteRule (.+)[&gt;&lt;;]$ $1 [N=10]
+RewriteRule "(.+)[&gt;&lt;;]$" "$1" [N=10]
 </highlight>
 
 </section>
@@ -447,7 +447,7 @@ to your dedicated image server. The match is case-insensitive, so that
 example.</p>
 
 <highlight language="config">
-RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC]
+RewriteRule "(.*\.(jpg|gif|png))$" "http://images.example.com$1" [P,NC]
 </highlight>
 </section>
 
@@ -458,7 +458,7 @@ equivalent. Using the [NE] flag prevents that from happening.
 </p>
 
 <highlight language="config">
-RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R]
+RewriteRule "^/anchor/(.+)" "/bigpage.html#$1" [NE,R]
 </highlight>
 
 <p>
@@ -501,7 +501,7 @@ example, if you wanted all image requests to be handled by a back-end
 image server, you might do something like the following:</p>
 
 <highlight language="config">
-RewriteRule /(.*)\.(jpg|gif|png)$ http://images.example.com/$1.$2 [P]
+RewriteRule "/(.*)\.(jpg|gif|png)$" "http://images.example.com/$1.$2" [P]
 </highlight>
 
 <p>Use of the [P] flag implies [L] - that is, the request is immediately
@@ -566,7 +566,7 @@ use the [PT] flag to ensure that the
 
 <highlight language="config">
 Alias "/icons" "/usr/local/apache/icons"
-RewriteRule /pics/(.+)\.jpg$ /icons/$1.gif [PT]
+RewriteRule "/pics/(.+)\.jpg$" "/icons/$1.gif" [PT]
 </highlight>
 
 <p>
@@ -597,7 +597,7 @@ Using the [QSA] flag causes the query strings to be combined.
 <p>Consider the following rule:</p>
 
 <highlight language="config">
-RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
+RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]
 </highlight>
 
 <p>With the [QSA] flag, a request for <code>/pages/123?one=two</code> will be
@@ -677,13 +677,13 @@ actual file.</p>
 
 <highlight language="config">
 # Is the request for a non-existent file?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
 # If so, skip these two RewriteRules
-RewriteRule .? - [S=2]
+RewriteRule ".?"                  "-" [S=2]
 
-RewriteRule (.*\.gif) images.php?$1
-RewriteRule (.*\.html) docs.php?$1
+RewriteRule "(.*\.gif)"           "images.php?$1"
+RewriteRule "(.*\.html)"          "docs.php?$1"
 </highlight>
 
 <p>This technique is useful because a <directive
@@ -697,18 +697,18 @@ the then-clause becomes <code>skip=N</code>, where N is the
 number of rules in the else-clause:</p>
 <highlight language="config">
 # Does the file exist?
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
 # Create an if-then-else construct by skipping 3 lines if we meant to go to the &quot;else&quot; stanza.
-RewriteRule .? - [S=3]
+RewriteRule ".?"                  "-" [S=3]
 
 # IF the file exists, then:
-    RewriteRule (.*\.gif) images.php?$1
-    RewriteRule (.*\.html) docs.php?$1
+    RewriteRule "(.*\.gif)"  "images.php?$1"
+    RewriteRule "(.*\.html)" "docs.php?$1"
     # Skip past the &quot;else&quot; stanza.
-    RewriteRule .? - [S=1]
+    RewriteRule ".?"         "-" [S=1]
 # ELSE...
-    RewriteRule (.*) 404.php?file=$1
+    RewriteRule "(.*)"       "404.php?file=$1"
 # END
 </highlight>
 
@@ -729,7 +729,7 @@ source code as plain text, if requested in a particular way:</p>
 
 <highlight language="config">
 # Serve .pl files as plain text
-RewriteRule \.pl$ - [T=text/plain]
+RewriteRule "\.pl$"  "-" [T=text/plain]
 </highlight>
 
 <p>Or, perhaps, if you have a camera that produces jpeg images without
@@ -738,7 +738,7 @@ correct MIME type by virtue of their file names:</p>
 
 <highlight language="config">
 # Files with 'IMG' in the name are jpg images.
-RewriteRule IMG - [T=image/jpg]
+RewriteRule "IMG"  "-" [T=image/jpg]
 </highlight>
 
 <p>Please note that this is a trivial example, and could be better done
index b7a54570472bd563a8de99c816d610ed1af6f5c5..6144a16c7cfa56170235ab5c3a4d2bfa8fd8d2a9 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1585159:1673908 (outdated) -->
+<!-- English Revision: 1585159:1673932 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 548d88cc1be4ca32cfcaa6c2de73de8f3176c794..181e05df9662c27cd958b19c37f87df09b834ee0 100644 (file)
@@ -87,5 +87,3 @@ wiki</a></seealso>
 
 
 </manualpage>
-
-
index 915d8e17adc4654f185e9f4e226be1744274feac..6a293058d39877240184c2cfdb30548a911471cc 100644 (file)
@@ -141,21 +141,21 @@ the expression.</p>
       <em>CondPattern</em>, back-references are internally created
       which can be used with the strings <code>$N</code> and
       <code>%N</code> (see below). These are available for creating
-      the <em>Substitution</em> parameter of a 
+      the <em>Substitution</em> parameter of a
       <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> or
-      the <em>TestString</em> parameter of a 
+      the <em>TestString</em> parameter of a
       <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</p>
-      <p>  Captures in the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> patterns are (counterintuitively) available to 
-       all preceding 
+      <p>  Captures in the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> patterns are (counterintuitively) available to
+       all preceding
       <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> directives,
       because the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>
       expression is evaluated before the individual conditions.</p>
 
-      <p>Figure 1 shows to which 
-      locations the back-references are transferred for expansion as 
-      well as illustrating the flow of the RewriteRule, RewriteCond 
-      matching. In the next chapters, we will be exploring how to use 
-      these back-references, so do not fret if it seems a bit alien 
+      <p>Figure 1 shows to which
+      locations the back-references are transferred for expansion as
+      well as illustrating the flow of the RewriteRule, RewriteCond
+      matching. In the next chapters, we will be exploring how to use
+      these back-references, so do not fret if it seems a bit alien
       to you at first.
       </p>
 
@@ -177,12 +177,12 @@ of three arguments separated by spaces. The arguments are</p>
 <li><var>[flags]</var>: options affecting the rewritten request.</li>
 </ol>
 
-<p>The <var>Pattern</var> is a <a href="#regex">regular expression</a>. 
-It is initially (for the first rewrite rule or until a substitution occurs) 
-matched against the URL-path of the incoming request (the part after the 
-hostname but before any question mark indicating the beginning of a query 
-string) or, in per-directory context, against the request's path relative 
-to the directory for which the rule is defined. Once a substitution has 
+<p>The <var>Pattern</var> is a <a href="#regex">regular expression</a>.
+It is initially (for the first rewrite rule or until a substitution occurs)
+matched against the URL-path of the incoming request (the part after the
+hostname but before any question mark indicating the beginning of a query
+string) or, in per-directory context, against the request's path relative
+to the directory for which the rule is defined. Once a substitution has
 occurred, the rules that follow are matched against the substituted
 value.
 </p>
@@ -198,7 +198,7 @@ value.
 <dl>
 <dt>A full filesystem path to a resource</dt>
 <dd>
-<pre class="prettyprint lang-config">RewriteRule ^/games /usr/local/games/web</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/games" "/usr/local/games/web"</pre>
 
 <p>This maps a request to an arbitrary location on your filesystem, much
 like the <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> directive.</p>
@@ -206,7 +206,7 @@ like the <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a>
 
 <dt>A web-path to a resource</dt>
 <dd>
-<pre class="prettyprint lang-config">RewriteRule ^/foo$ /bar</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/foo$" "/bar"</pre>
 
 <p>If <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> is set
 to <code>/usr/local/apache2/htdocs</code>, then this directive would
@@ -216,7 +216,7 @@ path <code>/usr/local/apache2/htdocs/bar</code>.</p>
 
 <dt>An absolute URL</dt>
 <dd>
-<pre class="prettyprint lang-config">RewriteRule ^/product/view$ http://site2.example.com/seeproduct.html [R]</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/product/view$" "http://site2.example.com/seeproduct.html" [R]</pre>
 
 <p>This tells the client to make a new request for the specified URL.</p>
 </dd>
@@ -225,7 +225,7 @@ path <code>/usr/local/apache2/htdocs/bar</code>.</p>
 <p>The <var>Substitution</var> can also
 contain <em>back-references</em> to parts of the incoming URL-path
 matched by the <var>Pattern</var>. Consider the following:</p>
-<pre class="prettyprint lang-config">RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/product/(.*)/view$" "/var/web/productdb/$1"</pre>
 
 <p>The variable <code>$1</code> will be replaced with whatever text
 was matched by the expression inside the parenthesis in
@@ -247,7 +247,7 @@ application of one or more flags to the end of the rule. For example, the
 matching behavior of a rule can be made case-insensitive by the
 application of the <code>[NC]</code> flag:
 </p>
-<pre class="prettyprint lang-config">RewriteRule ^puppy.html smalldog.html [NC]</pre>
+<pre class="prettyprint lang-config">RewriteRule "^puppy.html" "smalldog.html" [NC]</pre>
 
 
 <p>For more details on the available flags, their meanings, and
@@ -272,8 +272,8 @@ argument is a list of flags that modify how the match is evaluated.</p>
 
 <p>For example, to send all requests from a particular IP range to a
 different server, you could use:</p>
-<pre class="prettyprint lang-config">RewriteCond %{REMOTE_ADDR} ^10\.2\.
-RewriteRule (.*) http://intranet.example.com$1</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{REMOTE_ADDR}" "^10\.2\."
+RewriteRule "(.*)"           "http://intranet.example.com$1"</pre>
 
 
 <p>When more than
@@ -283,9 +283,9 @@ the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">Rewrit
 applied. For example, to deny requests that contain the word "hack" in
 their query string, unless they also contain a cookie containing
 the word "go", you could use:</p>
-<pre class="prettyprint lang-config">RewriteCond %{QUERY_STRING} hack
-RewriteCond %{HTTP_COOKIE} !go
-RewriteRule . - [F]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{QUERY_STRING}" "hack"
+RewriteCond "%{HTTP_COOKIE}"  !go
+RewriteRule "."               "-"   [F]</pre>
 
 <p>Notice that the exclamation mark specifies a negative match, so the rule is only applied if the cookie does not contain "go".</p>
 
@@ -296,8 +296,8 @@ the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">Rewrit
 variables <code>%1</code>, <code>%2</code>, etc. For example, this
 will direct the request to a different directory depending on the
 hostname used to access the site:</p>
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_HOST} (.*)
-RewriteRule ^/(.*) /sites/%1/$1</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}" "(.*)"
+RewriteRule "^/(.*)"       "/sites/%1/$1"</pre>
 
 <p>If the request was for <code>http://example.com/foo/bar</code>,
 then <code>%1</code> would contain <code>example.com</code>
index 798bd00e93dfdc02aade715ac4403388bf4295f2..52cdb3dcc9ce35992a98c97746094aa84b01b84d 100644 (file)
@@ -145,22 +145,22 @@ the expression.</p>
       <em>CondPattern</em>, back-references are internally created
       which can be used with the strings <code>$N</code> and
       <code>%N</code> (see below). These are available for creating
-      the <em>Substitution</em> parameter of a 
+      the <em>Substitution</em> parameter of a
       <directive module="mod_rewrite">RewriteRule</directive> or
-      the <em>TestString</em> parameter of a 
+      the <em>TestString</em> parameter of a
       <directive module="mod_rewrite">RewriteCond</directive>.</p>
       <p>  Captures in the <directive module="mod_rewrite"
-      >RewriteRule</directive> patterns are (counterintuitively) available to 
-       all preceding 
+      >RewriteRule</directive> patterns are (counterintuitively) available to
+       all preceding
       <directive module="mod_rewrite">RewriteCond</directive> directives,
       because the <directive module="mod_rewrite">RewriteRule</directive>
       expression is evaluated before the individual conditions.</p>
 
-      <p>Figure 1 shows to which 
-      locations the back-references are transferred for expansion as 
-      well as illustrating the flow of the RewriteRule, RewriteCond 
-      matching. In the next chapters, we will be exploring how to use 
-      these back-references, so do not fret if it seems a bit alien 
+      <p>Figure 1 shows to which
+      locations the back-references are transferred for expansion as
+      well as illustrating the flow of the RewriteRule, RewriteCond
+      matching. In the next chapters, we will be exploring how to use
+      these back-references, so do not fret if it seems a bit alien
       to you at first.
       </p>
 
@@ -183,12 +183,12 @@ of three arguments separated by spaces. The arguments are</p>
 <li><var>[flags]</var>: options affecting the rewritten request.</li>
 </ol>
 
-<p>The <var>Pattern</var> is a <a href="#regex">regular expression</a>. 
-It is initially (for the first rewrite rule or until a substitution occurs) 
-matched against the URL-path of the incoming request (the part after the 
-hostname but before any question mark indicating the beginning of a query 
-string) or, in per-directory context, against the request's path relative 
-to the directory for which the rule is defined. Once a substitution has 
+<p>The <var>Pattern</var> is a <a href="#regex">regular expression</a>.
+It is initially (for the first rewrite rule or until a substitution occurs)
+matched against the URL-path of the incoming request (the part after the
+hostname but before any question mark indicating the beginning of a query
+string) or, in per-directory context, against the request's path relative
+to the directory for which the rule is defined. Once a substitution has
 occurred, the rules that follow are matched against the substituted
 value.
 </p>
@@ -206,7 +206,7 @@ value.
 <dt>A full filesystem path to a resource</dt>
 <dd>
 <highlight language="config">
-RewriteRule ^/games /usr/local/games/web
+RewriteRule "^/games" "/usr/local/games/web"
 </highlight>
 <p>This maps a request to an arbitrary location on your filesystem, much
 like the <directive module="mod_alias">Alias</directive> directive.</p>
@@ -215,7 +215,7 @@ like the <directive module="mod_alias">Alias</directive> directive.</p>
 <dt>A web-path to a resource</dt>
 <dd>
 <highlight language="config">
-RewriteRule ^/foo$ /bar
+RewriteRule "^/foo$" "/bar"
 </highlight>
 <p>If <directive module="core">DocumentRoot</directive> is set
 to <code>/usr/local/apache2/htdocs</code>, then this directive would
@@ -226,7 +226,7 @@ path <code>/usr/local/apache2/htdocs/bar</code>.</p>
 <dt>An absolute URL</dt>
 <dd>
 <highlight language="config">
-RewriteRule ^/product/view$ http://site2.example.com/seeproduct.html [R]
+RewriteRule "^/product/view$" "http://site2.example.com/seeproduct.html" [R]
 </highlight>
 <p>This tells the client to make a new request for the specified URL.</p>
 </dd>
@@ -236,7 +236,7 @@ RewriteRule ^/product/view$ http://site2.example.com/seeproduct.html [R]
 contain <em>back-references</em> to parts of the incoming URL-path
 matched by the <var>Pattern</var>. Consider the following:</p>
 <highlight language="config">
-RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1
+RewriteRule "^/product/(.*)/view$" "/var/web/productdb/$1"
 </highlight>
 <p>The variable <code>$1</code> will be replaced with whatever text
 was matched by the expression inside the parenthesis in
@@ -260,7 +260,7 @@ matching behavior of a rule can be made case-insensitive by the
 application of the <code>[NC]</code> flag:
 </p>
 <highlight language="config">
-RewriteRule ^puppy.html smalldog.html [NC]
+RewriteRule "^puppy.html" "smalldog.html" [NC]
 </highlight>
 
 <p>For more details on the available flags, their meanings, and
@@ -288,8 +288,8 @@ argument is a list of flags that modify how the match is evaluated.</p>
 <p>For example, to send all requests from a particular IP range to a
 different server, you could use:</p>
 <highlight language="config">
-RewriteCond %{REMOTE_ADDR} ^10\.2\.
-RewriteRule (.*) http://intranet.example.com$1
+RewriteCond "%{REMOTE_ADDR}" "^10\.2\."
+RewriteRule "(.*)"           "http://intranet.example.com$1"
 </highlight>
 
 <p>When more than
@@ -300,9 +300,9 @@ applied. For example, to deny requests that contain the word "hack" in
 their query string, unless they also contain a cookie containing
 the word "go", you could use:</p>
 <highlight language="config">
-RewriteCond %{QUERY_STRING} hack
-RewriteCond %{HTTP_COOKIE} !go
-RewriteRule . - [F]
+RewriteCond "%{QUERY_STRING}" "hack"
+RewriteCond "%{HTTP_COOKIE}"  !go
+RewriteRule "."               "-"   [F]
 </highlight>
 <p>Notice that the exclamation mark specifies a negative match, so the rule is only applied if the cookie does not contain "go".</p>
 
@@ -314,8 +314,8 @@ variables <code>%1</code>, <code>%2</code>, etc. For example, this
 will direct the request to a different directory depending on the
 hostname used to access the site:</p>
 <highlight language="config">
-RewriteCond %{HTTP_HOST} (.*)
-RewriteRule ^/(.*) /sites/%1/$1
+RewriteCond "%{HTTP_HOST}" "(.*)"
+RewriteRule "^/(.*)"       "/sites/%1/$1"
 </highlight>
 <p>If the request was for <code>http://example.com/foo/bar</code>,
 then <code>%1</code> would contain <code>example.com</code>
@@ -354,5 +354,3 @@ the <directive module="mod_rewrite">RewriteRule</directive>. In addition, the <d
 </section>
 
 </manualpage>
-
-
index 6c7e08d009290133301300a98b2c9eb82f74503d..fca4afcf0d1eaca56b0177a0ffe2d6ae42f2e68a 100644 (file)
@@ -57,8 +57,8 @@ A number of recipes are provided that describe common scenarios.</p>
       follows:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine  on
-RewriteBase    /products/
-RewriteRule    ^widget/(.*)$  http://product.example.com/widget/$1  [P]
+RewriteBase    "/products/"
+RewriteRule    "^widget/(.*)$"  "http://product.example.com/widget/$1"  [P]
 ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
 
 
@@ -67,9 +67,9 @@ ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"</pre>
    from one server to another, and you're not sure if all the content
    has been migrated yet.</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{REQUEST_FILENAME}       !-f
-RewriteCond %{REQUEST_FILENAME}       !-d
-RewriteRule ^/(.*) http://old.example.com/$1 [P]
+<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}"       !-f
+RewriteCond "%{REQUEST_FILENAME}"       !-d
+RewriteRule "^/(.*)"                    "http://old.example.com/$1" [P]
 ProxyPassReverse "/" "http://old.example.com/"</pre>
 
     </dd>
index 448a5e68c53b644d49899661631f98227437cfb7..8a255e891dbb6a231e9ad8e80de936780daa1989 100644 (file)
@@ -67,8 +67,8 @@ A number of recipes are provided that describe common scenarios.</p>
 
 <highlight language="config">
 RewriteEngine  on
-RewriteBase    /products/
-RewriteRule    ^widget/(.*)$  http://product.example.com/widget/$1  [P]
+RewriteBase    "/products/"
+RewriteRule    "^widget/(.*)$"  "http://product.example.com/widget/$1"  [P]
 ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
 </highlight>
 
@@ -78,9 +78,9 @@ ProxyPassReverse "/products/widget/" "http://product.example.com/widget/"
    has been migrated yet.</p>
 
 <highlight language="config">
-RewriteCond %{REQUEST_FILENAME}       !-f
-RewriteCond %{REQUEST_FILENAME}       !-d
-RewriteRule ^/(.*) http://old.example.com/$1 [P]
+RewriteCond "%{REQUEST_FILENAME}"       !-f
+RewriteCond "%{REQUEST_FILENAME}"       !-d
+RewriteRule "^/(.*)"                    "http://old.example.com/$1" [P]
 ProxyPassReverse "/" "http://old.example.com/"
 </highlight>
     </dd>
index debd3cdadb7d60950ed55b956e1e1e1c47ad3c8f..db22af1778408a00d8c49d66fea7342cec5d3921 100644 (file)
@@ -75,7 +75,7 @@ configuration.</div>
       following rule:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine  on
-RewriteRule    ^<strong>/foo</strong>\.html$  <strong>/bar</strong>.html [PT]</pre>
+RewriteRule    "^<strong>/foo</strong>\.html$"  "<strong>/bar</strong>.html" [PT]</pre>
 
     </dd>
   </dl>
@@ -105,7 +105,7 @@ RewriteRule    ^<strong>/foo</strong>\.html$  <strong>/bar</strong>.html [PT]</p
       change of the browsers and thus the users view:</p>
 
 <pre class="prettyprint lang-config">RewriteEngine  on
-RewriteRule    ^<strong>/foo</strong>\.html$  <strong>bar</strong>.html  [<strong>R</strong>]</pre>
+RewriteRule    "^<strong>/foo</strong>\.html$"  "<strong>bar</strong>.html"  [<strong>R</strong>]</pre>
 
 </dd>
 
@@ -146,7 +146,7 @@ RewriteRule    ^<strong>/foo</strong>\.html$  <strong>bar</strong>.html  [<stron
 
 <pre class="prettyprint lang-config">#With mod_rewrite
 RewriteEngine on
-RewriteRule   ^/docs/(.+)  http://new.example.com/docs/$1  [R,L]</pre>
+RewriteRule   "^/docs/(.+)"  "http://new.example.com/docs/$1"  [R,L]</pre>
 
 
 <pre class="prettyprint lang-config">#With RedirectMatch
@@ -186,8 +186,8 @@ Redirect "/docs/" "http://new.example.com/docs/"</pre>
       <code>/~quux/foo.cgi</code>.</p>
 
 <pre class="prettyprint lang-config">RewriteEngine  on
-RewriteBase    /~quux/
-RewriteRule    ^foo\.html$  foo.cgi   [H=<strong>cgi-script</strong>]</pre>
+RewriteBase    "/~quux/"
+RewriteRule    "^foo\.html$"  "foo.cgi"  [H=<strong>cgi-script</strong>]</pre>
 
     </dd>
   </dl>
@@ -220,11 +220,11 @@ RewriteRule    ^foo\.html$  foo.cgi 
 #   when and only when document.php exists
 &lt;Directory "/var/www/htdocs"&gt;
     RewriteEngine on
-    RewriteBase /var/www/htdocs
+    RewriteBase   "/var/www/htdocs"
 
-    RewriteCond $1.php -f
-    RewriteCond $1.html !-f
-    RewriteRule ^(.*).html$ $1.php
+    RewriteCond   "$1.php"           -f
+    RewriteCond   "$1.html"          !-f
+    RewriteRule   "^(.*).html$"      "$1.php"
 &lt;/Directory&gt;</pre>
 
     </dd>
@@ -307,16 +307,16 @@ might do the following:</p>
 you might use one of the recipes below.</p>
 
 <p>For sites running on a port other than 80:</p>
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST}   !^$
-RewriteCond %{SERVER_PORT} !^80$
-RewriteRule ^/?(.*)         http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}"   "!^www\.example\.com" [NC]
+RewriteCond "%{HTTP_HOST}"   "!^$"
+RewriteCond "%{SERVER_PORT}" "!^80$"
+RewriteRule "^/?(.*)"        "http://www.example.com:%{SERVER_PORT}/$1" [L,R,NE]</pre>
 
 
 <p>And for a site running on port 80</p>
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST}   !^$
-RewriteRule ^/?(.*)         http://www.example.com/$1 [L,R,NE]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}"   "!^www\.example\.com"       [NC]
+RewriteCond "%{HTTP_HOST}"   "!^$"
+RewriteRule "^/?(.*)"        "http://www.example.com/$1" [L,R,NE]</pre>
 
 
         <p>
@@ -326,9 +326,9 @@ RewriteRule ^/?(.*)         http://www.example.com/$1 [L,R,NE]</pre>
         <strong>example.com</strong>, you could use the following
         recipe:</p>
 
-<pre class="prettyprint lang-config">RewriteCond %{HTTP_HOST} !^www\. [NC]
-RewriteCond %{HTTP_HOST} !^$
-RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE]</pre>
+<pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}" "!^www\."                    [NC]
+RewriteCond "%{HTTP_HOST}" "!^$"
+RewriteRule "^/?(.*)"      "http://www.%{HTTP_HOST}/$1" [L,R,NE]</pre>
 
 
     <p>These rulesets will work either in your main server configuration
@@ -363,17 +363,17 @@ RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE]</pre>
 
 #   first try to find it in dir1/...
 #   ...and if found stop and be happy:
-RewriteCond         %{DOCUMENT_ROOT}/<strong>dir1</strong>/%{REQUEST_URI}  -f
-RewriteRule  ^(.+)  %{DOCUMENT_ROOT}/<strong>dir1</strong>/$1  [L]
+RewriteCond         "%{DOCUMENT_ROOT}/<strong>dir1</strong>/%{REQUEST_URI}"  -f
+RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/<strong>dir1</strong>/$1"  [L]
 
 #   second try to find it in dir2/...
 #   ...and if found stop and be happy:
-RewriteCond         %{DOCUMENT_ROOT}/<strong>dir2</strong>/%{REQUEST_URI}  -f
-RewriteRule  ^(.+)  %{DOCUMENT_ROOT}/<strong>dir2</strong>/$1  [L]
+RewriteCond         "%{DOCUMENT_ROOT}/<strong>dir2</strong>/%{REQUEST_URI}"  -f
+RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/<strong>dir2</strong>/$1"  [L]
 
 #   else go on for other Alias or ScriptAlias directives,
 #   etc.
-RewriteRule   ^  -  [PT]</pre>
+RewriteRule "^"     "-"                                          [PT]</pre>
 
     </dd>
   </dl>
@@ -404,9 +404,9 @@ RewriteRule   ^  -  [PT]</pre>
 
 <pre class="prettyprint lang-config">HostnameLookups on
 RewriteEngine on
-RewriteMap    multiplex         txt:/path/to/map.mirrors
-RewriteCond  %{REMOTE_HOST}     ([a-z]+)$ [NC]
-RewriteRule   ^/(.*)$  ${multiplex:<strong>%1</strong>|http://www.example.com/}$1  [R,L]</pre>
+RewriteMap    multiplex         "txt:/path/to/map.mirrors"
+RewriteCond  "%{REMOTE_HOST}"   "([a-z]+)$"                [NC]
+RewriteRule  "^/(.*)$"          "${multiplex:<strong>%1</strong>|http://www.example.com/}$1"  [R,L]</pre>
 
 
 <div class="example"><p><code>
@@ -461,7 +461,7 @@ com       http://www.example.com/<br />
        we replace <code>/puppies</code> and <code>/canines</code>
        by the canonical <code>/dogs</code>.</p>
 
-<pre class="prettyprint lang-config">RewriteRule   ^/(puppies|canines)/(.*)    /dogs/$2  [R]</pre>
+<pre class="prettyprint lang-config">RewriteRule   "^/(puppies|canines)/(.*)"    "/dogs/$2"  [R]</pre>
 
         </dd>
 
@@ -501,7 +501,7 @@ using the following ruleset:</p>
       </p>
 
 <pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule   ^/$  /about/  [<strong>R</strong>]</pre>
+RewriteRule   "^/$"  "/about/"  [<strong>R</strong>]</pre>
 
 
 <p>Note that this can also be handled using the <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> directive:</p>
@@ -545,18 +545,18 @@ complicated than this, you can use a variation of the following rewrite
 set to accomplish the same thing:</p>
 
 <pre class="prettyprint lang-config">&lt;Directory "/var/www/my_blog"&gt;
-  RewriteBase /my_blog
+  RewriteBase "/my_blog"
 
-  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
-  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
-  RewriteRule ^ index.php [PT]
+  RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-f
+  RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-d
+  RewriteRule "^"                                    "index.php" [PT]
 &lt;/Directory&gt;</pre>
 
 
 <p>If, on the other hand, you wish to pass the requested URI as a query
 string argument to index.php, you can replace that RewriteRule with:</p>
 
-<pre class="prettyprint lang-config">RewriteRule (.*) index.php?$1 [PT,QSA]</pre>
+<pre class="prettyprint lang-config">RewriteRule "(.*)" "index.php?$1" [PT,QSA]</pre>
 
 
 <p>Note that these rulesets can be used in a <code>.htaccess</code>
@@ -582,14 +582,14 @@ of the URL.</dd>
 <p> Many of the solutions in this section will all use the same condition,
 which leaves the matched value in the %2 backreference.  %1 is the beginining
 of the query string (up to the key of intererest), and %3 is the remainder. This
-condition is a bit complex for flexibility and to avoid double '&amp;&amp;' in the 
+condition is a bit complex for flexibility and to avoid double '&amp;&amp;' in the
 substitutions.</p>
 <ul>
   <li>This solution removes the matching key and value:
 
 <pre class="prettyprint lang-config"># Remove mykey=???
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteRule (.*) $1?%1%3</pre>
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteRule "(.*)"            "$1?%1%3"</pre>
 
   </li>
 
@@ -597,25 +597,25 @@ RewriteRule (.*) $1?%1%3</pre>
   discarding the rest of the original query by appending a '?':
 
 <pre class="prettyprint lang-config"># Copy from query string to PATH_INFO
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteRule (.*) $1/products/%2/? [PT]</pre>
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteRule "(.*)"            "$1/products/%2/?" [PT]</pre>
 
   </li>
 
   <li>This solution checks the captured value in a subsequent condition:
 
 <pre class="prettyprint lang-config"># Capture the value of mykey in the query string
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteCond %2 !=not-so-secret-value 
-RewriteRule (.*) - [F]</pre>
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteCond "%2"              !=not-so-secret-value
+RewriteRule "(.*)"            "-" [F]</pre>
 
   </li>
 
   <li>This solution shows the reverse of the previous ones, copying
       path components (perhaps PATH_INFO) from the URL into the query string.
-<pre class="prettyprint lang-config"># The desired URL might be /products/kitchen-sink, and the script expects 
+<pre class="prettyprint lang-config"># The desired URL might be /products/kitchen-sink, and the script expects
 # /path?products=kitchen-sink.
-RewriteRule ^/?path/([^/]+)/([^/]+) /path?$1=$2 [PT]</pre>
+RewriteRule "^/?path/([^/]+)/([^/]+)" "/path?$1=$2" [PT]</pre>
 
   </li>
 </ul>
index d392472a1bddf453ecc83a1ad546eefaf7f4b690..9a9866c7707b3ddb0969f05c1002f0316837b22f 100644 (file)
@@ -73,7 +73,7 @@ configuration.</note>
 
 <highlight language="config">
 RewriteEngine  on
-RewriteRule    ^<strong>/foo</strong>\.html$  <strong>/bar</strong>.html [PT]
+RewriteRule    "^<strong>/foo</strong>\.html$"  "<strong>/bar</strong>.html" [PT]
 </highlight>
     </dd>
   </dl>
@@ -104,7 +104,7 @@ RewriteRule    ^<strong>/foo</strong>\.html$  <strong>/bar</strong>.html [PT]
 
 <highlight language="config">
 RewriteEngine  on
-RewriteRule    ^<strong>/foo</strong>\.html$  <strong>bar</strong>.html  [<strong>R</strong>]
+RewriteRule    "^<strong>/foo</strong>\.html$"  "<strong>bar</strong>.html"  [<strong>R</strong>]
 </highlight>
 </dd>
 
@@ -148,7 +148,7 @@ Redirect "/foo.html" "/bar.html"
 <highlight language="config">
 #With mod_rewrite
 RewriteEngine on
-RewriteRule   ^/docs/(.+)  http://new.example.com/docs/$1  [R,L]
+RewriteRule   "^/docs/(.+)"  "http://new.example.com/docs/$1"  [R,L]
 </highlight>
 
 <highlight language="config">
@@ -191,8 +191,8 @@ Redirect "/docs/" "http://new.example.com/docs/"
 
 <highlight language="config">
 RewriteEngine  on
-RewriteBase    /~quux/
-RewriteRule    ^foo\.html$  foo.cgi &nbsp; [H=<strong>cgi-script</strong>]
+RewriteBase    "/~quux/"
+RewriteRule    "^foo\.html$"  "foo.cgi"  [H=<strong>cgi-script</strong>]
 </highlight>
     </dd>
   </dl>
@@ -226,11 +226,11 @@ RewriteRule    ^foo\.html$  foo.cgi &nbsp; [H=<strong>cgi-script</strong>]
 #   when and only when document.php exists
 &lt;Directory "/var/www/htdocs"&gt;
     RewriteEngine on
-    RewriteBase /var/www/htdocs
+    RewriteBase   "/var/www/htdocs"
 
-    RewriteCond $1.php -f
-    RewriteCond $1.html !-f
-    RewriteRule ^(.*).html$ $1.php
+    RewriteCond   "$1.php"           -f
+    RewriteCond   "$1.html"          !-f
+    RewriteRule   "^(.*).html$"      "$1.php"
 &lt;/Directory&gt;
 </highlight>
     </dd>
@@ -318,17 +318,17 @@ you might use one of the recipes below.</p>
 
 <p>For sites running on a port other than 80:</p>
 <highlight language="config">
-RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST}   !^$
-RewriteCond %{SERVER_PORT} !^80$
-RewriteRule ^/?(.*)         http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}"   "!^www\.example\.com" [NC]
+RewriteCond "%{HTTP_HOST}"   "!^$"
+RewriteCond "%{SERVER_PORT}" "!^80$"
+RewriteRule "^/?(.*)"        "http://www.example.com:%{SERVER_PORT}/$1" [L,R,NE]
 </highlight>
 
 <p>And for a site running on port 80</p>
 <highlight language="config">
-RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
-RewriteCond %{HTTP_HOST}   !^$
-RewriteRule ^/?(.*)         http://www.example.com/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}"   "!^www\.example\.com"       [NC]
+RewriteCond "%{HTTP_HOST}"   "!^$"
+RewriteRule "^/?(.*)"        "http://www.example.com/$1" [L,R,NE]
 </highlight>
 
         <p>
@@ -339,9 +339,9 @@ RewriteRule ^/?(.*)         http://www.example.com/$1 [L,R,NE]
         recipe:</p>
 
 <highlight language="config">
-RewriteCond %{HTTP_HOST} !^www\. [NC]
-RewriteCond %{HTTP_HOST} !^$
-RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE]
+RewriteCond "%{HTTP_HOST}" "!^www\."                    [NC]
+RewriteCond "%{HTTP_HOST}" "!^$"
+RewriteRule "^/?(.*)"      "http://www.%{HTTP_HOST}/$1" [L,R,NE]
 </highlight>
 
     <p>These rulesets will work either in your main server configuration
@@ -378,17 +378,17 @@ RewriteEngine on
 
 #   first try to find it in dir1/...
 #   ...and if found stop and be happy:
-RewriteCond         %{DOCUMENT_ROOT}/<strong>dir1</strong>/%{REQUEST_URI}  -f
-RewriteRule  ^(.+)  %{DOCUMENT_ROOT}/<strong>dir1</strong>/$1  [L]
+RewriteCond         "%{DOCUMENT_ROOT}/<strong>dir1</strong>/%{REQUEST_URI}"  -f
+RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/<strong>dir1</strong>/$1"  [L]
 
 #   second try to find it in dir2/...
 #   ...and if found stop and be happy:
-RewriteCond         %{DOCUMENT_ROOT}/<strong>dir2</strong>/%{REQUEST_URI}  -f
-RewriteRule  ^(.+)  %{DOCUMENT_ROOT}/<strong>dir2</strong>/$1  [L]
+RewriteCond         "%{DOCUMENT_ROOT}/<strong>dir2</strong>/%{REQUEST_URI}"  -f
+RewriteRule "^(.+)" "%{DOCUMENT_ROOT}/<strong>dir2</strong>/$1"  [L]
 
 #   else go on for other Alias or ScriptAlias directives,
 #   etc.
-RewriteRule   ^  -  [PT]
+RewriteRule "^"     "-"                                          [PT]
 </highlight>
     </dd>
   </dl>
@@ -420,9 +420,9 @@ RewriteRule   ^  -  [PT]
 <highlight language="config">
 HostnameLookups on
 RewriteEngine on
-RewriteMap    multiplex         txt:/path/to/map.mirrors
-RewriteCond  %{REMOTE_HOST}     ([a-z]+)$ [NC]
-RewriteRule   ^/(.*)$  ${multiplex:<strong>%1</strong>|http://www.example.com/}$1  [R,L]
+RewriteMap    multiplex         "txt:/path/to/map.mirrors"
+RewriteCond  "%{REMOTE_HOST}"   "([a-z]+)$"                [NC]
+RewriteRule  "^/(.*)$"          "${multiplex:<strong>%1</strong>|http://www.example.com/}$1"  [R,L]
 </highlight>
 
 <example>
@@ -478,7 +478,7 @@ com       http://www.example.com/<br />
        by the canonical <code>/dogs</code>.</p>
 
 <highlight language="config">
-RewriteRule   ^/(puppies|canines)/(.*)    /dogs/$2  [R]
+RewriteRule   "^/(puppies|canines)/(.*)"    "/dogs/$2"  [R]
 </highlight>
         </dd>
 
@@ -520,7 +520,7 @@ using the following ruleset:</p>
 
 <highlight language="config">
 RewriteEngine on
-RewriteRule   ^/$  /about/  [<strong>R</strong>]
+RewriteRule   "^/$"  "/about/"  [<strong>R</strong>]
 </highlight>
 
 <p>Note that this can also be handled using the <directive
@@ -569,11 +569,11 @@ set to accomplish the same thing:</p>
 
 <highlight language="config">
 &lt;Directory "/var/www/my_blog"&gt;
-  RewriteBase /my_blog
+  RewriteBase "/my_blog"
 
-  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
-  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
-  RewriteRule ^ index.php [PT]
+  RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-f
+  RewriteCond "/var/www/my_blog/%{REQUEST_FILENAME}" !-d
+  RewriteRule "^"                                    "index.php" [PT]
 &lt;/Directory&gt;
 </highlight>
 
@@ -581,7 +581,7 @@ set to accomplish the same thing:</p>
 string argument to index.php, you can replace that RewriteRule with:</p>
 
 <highlight language="config">
-RewriteRule (.*) index.php?$1 [PT,QSA]
+RewriteRule "(.*)" "index.php?$1" [PT,QSA]
 </highlight>
 
 <p>Note that these rulesets can be used in a <code>.htaccess</code>
@@ -614,8 +614,8 @@ substitutions.</p>
 
 <highlight language="config">
 # Remove mykey=???
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteRule (.*) $1?%1%3
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteRule "(.*)"            "$1?%1%3"
 </highlight>
   </li>
 
@@ -624,8 +624,8 @@ RewriteRule (.*) $1?%1%3
 
 <highlight language="config">
 # Copy from query string to PATH_INFO
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteRule (.*) $1/products/%2/? [PT]
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteRule "(.*)"            "$1/products/%2/?" [PT]
 </highlight>
   </li>
 
@@ -633,9 +633,9 @@ RewriteRule (.*) $1/products/%2/? [PT]
 
 <highlight language="config">
 # Capture the value of mykey in the query string
-RewriteCond %{QUERY_STRING} (.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$
-RewriteCond %2 !=not-so-secret-value
-RewriteRule (.*) - [F]
+RewriteCond "%{QUERY_STRING}" "(.*(?:^|&amp;))mykey=([^&amp;]*)&amp;?(.*)&amp;?$"
+RewriteCond "%2"              !=not-so-secret-value
+RewriteRule "(.*)"            "-" [F]
 </highlight>
   </li>
 
@@ -644,7 +644,7 @@ RewriteRule (.*) - [F]
 <highlight language="config">
 # The desired URL might be /products/kitchen-sink, and the script expects
 # /path?products=kitchen-sink.
-RewriteRule ^/?path/([^/]+)/([^/]+) /path?$1=$2 [PT]
+RewriteRule "^/?path/([^/]+)/([^/]+)" "/path?$1=$2" [PT]
 </highlight>
   </li>
 </ul>
index ff5fee698c38e9531cbd03585f35447722912801..c1be7ddc2bee9cd2eb923289282a5e116cf1e176 100644 (file)
@@ -64,7 +64,8 @@ configuration.</div>
    <p>The syntax of the <code>RewriteMap</code> directive is as
    follows:</p>
 
-<pre class="prettyprint lang-config">RewriteMap <em>MapName</em> <em>MapType</em>:<em>MapSource</em></pre>
+<pre class="prettyprint lang-config">RewriteMap <em>MapName</em> <em>MapType</em>:<em>MapSource</em>
+</pre>
 
 
     <p>The <a id="mapfunc" name="mapfunc"><em>MapName</em></a> is an
@@ -89,17 +90,17 @@ configuration.</div>
 
     <p>For example, you can define a
       <code class="directive">RewriteMap</code> as:</p>
-    <pre class="prettyprint lang-config">RewriteMap examplemap txt:/path/to/file/map.txt</pre>
+    <pre class="prettyprint lang-config">RewriteMap examplemap "txt:/path/to/file/map.txt"</pre>
 
     <p>You would then be able to use this map in a
       <code class="directive">RewriteRule</code> as follows:</p>
-<pre class="prettyprint lang-config">RewriteRule ^/ex/(.*) ${examplemap:$1}</pre>
+      <pre class="prettyprint lang-config">RewriteRule "^/ex/(.*)" "${examplemap:$1}"</pre>
 
 
 <p>A default value can be specified in the event that nothing is found
 in the map:</p>
 
-<pre class="prettyprint lang-config">RewriteRule ^/ex/(.*) ${examplemap:$1|/not_found.html}</pre>
+<pre class="prettyprint lang-config">RewriteRule "^/ex/(.*)" "${examplemap:$1|/not_found.html}"</pre>
 
 
 <div class="note"><h3>Per-directory and .htaccess context</h3>
@@ -146,8 +147,8 @@ may be used, and give examples of each.</p>
     </p>
 
    <p> <strong>Redirect a URI to an all-lowercase version of itself</strong></p>
-    <pre class="prettyprint lang-config">RewriteMap lc int:tolower
-RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R]</pre>
+    <pre class="prettyprint lang-config">RewriteMap lc "int:tolower"
+RewriteRule "(.*?[A-Z]+.*)" "${lc:$1}" [R]</pre>
 
 
     <div class="note">
@@ -184,8 +185,8 @@ RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R]</pre>
     product IDs for easier-to-remember URLs, using the following
     recipe:</p>
 <p><strong>Product to ID configuration</strong></p>
-    <pre class="prettyprint lang-config">RewriteMap product2id txt:/etc/apache2/productmap.txt
-RewriteRule ^/product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]</pre>
+    <pre class="prettyprint lang-config">RewriteMap product2id "txt:/etc/apache2/productmap.txt"
+RewriteRule "^/product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]</pre>
 
 
     <p>We assume here that the <code>prods.php</code> script knows what
@@ -216,7 +217,7 @@ telephone  328
     scope. If you're planning to use this in a <code>.htaccess</code>
     file, you'll need to remove the leading slash from the rewrite
     pattern in order for it to match anything:
-    <pre class="prettyprint lang-config">RewriteRule ^product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]</pre>
+    <pre class="prettyprint lang-config">RewriteRule "^product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]</pre>
 
     </div>
 
@@ -255,10 +256,10 @@ static   www1|www2|www3|www4<br />
 dynamic  www5|www6
     </code></p></div>
 <p><strong>Configuration directives</strong></p>
-    <pre class="prettyprint lang-config">RewriteMap servers rnd:/path/to/file/map.txt
+    <pre class="prettyprint lang-config">RewriteMap servers "rnd:/path/to/file/map.txt"
 
-RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]
-RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]</pre>
+RewriteRule "^/(.*\.(png|gif|jpg))" "http://${servers:static}/$1"  [NC,P,L]
+RewriteRule "^/(.*)"                "http://${servers:dynamic}/$1" [P,L]</pre>
 
 
     <p>So, when an image is requested and the first of these rules is
@@ -290,7 +291,7 @@ static   www1|www1|www2|www3|www4
 
     <p>You may optionally specify a particular dbm type:</p>
 
- <pre class="prettyprint lang-config">RewriteMap examplemap dbm=sdbm:/etc/apache/mapfile.dbm</pre>
+ <pre class="prettyprint lang-config">RewriteMap examplemap "dbm=sdbm:/etc/apache/mapfile.dbm"</pre>
 
 
     <p>The type can be sdbm, gdbm, ndbm or db.
@@ -309,7 +310,7 @@ $ httxt2dbm -i mapfile.txt -o mapfile.map
 <p>You can then reference the resulting file in your
 <code>RewriteMap</code> directive:</p>
 
-<pre class="prettyprint lang-config">RewriteMap mapname dbm:/etc/apache/mapfile.map</pre>
+<pre class="prettyprint lang-config">RewriteMap mapname "dbm:/etc/apache/mapfile.map"</pre>
 
 
 <div class="note">
@@ -364,10 +365,10 @@ by many requests.
 
     <p>A simple example is shown here which will replace all dashes with
     underscores in a request URI.</p>
-    
+
 <p><strong>Rewrite configuration</strong></p>
-    <pre class="prettyprint lang-config">RewriteMap d2u prg:/www/bin/dash2under.pl apache:apache<br />
-RewriteRule - ${d2u:%{REQUEST_URI}}</pre>
+    <pre class="prettyprint lang-config">RewriteMap d2u "prg:/www/bin/dash2under.programlisting" apache:apache<br />
+RewriteRule "-" "${d2u:%{REQUEST_URI}}"</pre>
 
 
     <p><strong>dash2under.pl</strong></p>
index 0b33e5269037edf5aeaba02d28f3313286fee085..c4e7df590bc6ecf10878ce8d591c340c919c7ac0 100644 (file)
@@ -87,19 +87,19 @@ RewriteMap <em>MapName</em> <em>MapType</em>:<em>MapSource</em>
     <p>For example, you can define a
       <directive>RewriteMap</directive> as:</p>
     <highlight language="config">
-RewriteMap examplemap txt:/path/to/file/map.txt
+RewriteMap examplemap "txt:/path/to/file/map.txt"
     </highlight>
     <p>You would then be able to use this map in a
       <directive>RewriteRule</directive> as follows:</p>
       <highlight language="config">
-RewriteRule ^/ex/(.*) ${examplemap:$1}
+RewriteRule "^/ex/(.*)" "${examplemap:$1}"
       </highlight>
 
 <p>A default value can be specified in the event that nothing is found
 in the map:</p>
 
 <highlight language="config">
-RewriteRule ^/ex/(.*) ${examplemap:$1|/not_found.html}
+RewriteRule "^/ex/(.*)" "${examplemap:$1|/not_found.html}"
 </highlight>
 
 <note><title>Per-directory and .htaccess context</title>
@@ -147,8 +147,8 @@ may be used, and give examples of each.</p>
 
    <p> <strong>Redirect a URI to an all-lowercase version of itself</strong></p>
     <highlight language="config">
-RewriteMap lc int:tolower
-RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R]
+RewriteMap lc "int:tolower"
+RewriteRule "(.*?[A-Z]+.*)" "${lc:$1}" [R]
     </highlight>
 
     <note>
@@ -186,8 +186,8 @@ RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R]
     recipe:</p>
 <p><strong>Product to ID configuration</strong></p>
     <highlight language="config">
-RewriteMap product2id txt:/etc/apache2/productmap.txt
-RewriteRule ^/product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]
+RewriteMap product2id "txt:/etc/apache2/productmap.txt"
+RewriteRule "^/product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]
     </highlight>
 
     <p>We assume here that the <code>prods.php</code> script knows what
@@ -219,7 +219,7 @@ telephone  328
     file, you'll need to remove the leading slash from the rewrite
     pattern in order for it to match anything:
     <highlight language="config">
-RewriteRule ^product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT]
+RewriteRule "^product/(.*)" "/prods.php?id=${product2id:$1|NOTFOUND}" [PT]
     </highlight>
     </note>
 
@@ -258,10 +258,10 @@ dynamic  www5|www6
     </example>
 <p><strong>Configuration directives</strong></p>
     <highlight language="config">
-RewriteMap servers rnd:/path/to/file/map.txt
+RewriteMap servers "rnd:/path/to/file/map.txt"
 
-RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]
-RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]
+RewriteRule "^/(.*\.(png|gif|jpg))" "http://${servers:static}/$1"  [NC,P,L]
+RewriteRule "^/(.*)"                "http://${servers:dynamic}/$1" [P,L]
     </highlight>
 
     <p>So, when an image is requested and the first of these rules is
@@ -294,7 +294,7 @@ static   www1|www1|www2|www3|www4
     <p>You may optionally specify a particular dbm type:</p>
 
  <highlight language="config">
-RewriteMap examplemap dbm=sdbm:/etc/apache/mapfile.dbm
+RewriteMap examplemap "dbm=sdbm:/etc/apache/mapfile.dbm"
  </highlight>
 
     <p>The type can be sdbm, gdbm, ndbm or db.
@@ -315,7 +315,7 @@ $ httxt2dbm -i mapfile.txt -o mapfile.map
 <code>RewriteMap</code> directive:</p>
 
 <highlight language="config">
-RewriteMap mapname dbm:/etc/apache/mapfile.map
+RewriteMap mapname "dbm:/etc/apache/mapfile.map"
 </highlight>
 
 <note>
@@ -374,8 +374,8 @@ by many requests.
 
 <p><strong>Rewrite configuration</strong></p>
     <highlight language="config">
-RewriteMap d2u prg:/www/bin/dash2under.pl apache:apache<br />
-RewriteRule - ${d2u:%{REQUEST_URI}}
+RewriteMap d2u "prg:/www/bin/dash2under.programlisting" apache:apache<br />
+RewriteRule "-" "${d2u:%{REQUEST_URI}}"
     </highlight>
 
     <p><strong>dash2under.pl</strong></p>
index b743efb3776f9e3ef78f29368e1df82936d2431c..e8a90490a64a7a0d32787fcdbe64f7c29f93c6d5 100644 (file)
@@ -77,11 +77,11 @@ and URL matching.</p>
     for /foo/bar/baz is being processed, an expression like ^bar/baz$ would
     match.</p>
 
-    <p> If a substitution is made in per-directory context, a new internal 
-    subrequest is issued with the new URL, which restarts processing of the 
-    request phases. If the substitution is a relative path, the <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> directive 
+    <p> If a substitution is made in per-directory context, a new internal
+    subrequest is issued with the new URL, which restarts processing of the
+    request phases. If the substitution is a relative path, the <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> directive
     determines the URL-path prefix prepended to the substitution.
-    In per-directory context, care must be taken to 
+    In per-directory context, care must be taken to
     create rules which will eventually (in some future "round" of per-directory
     rewrite processing) not perform a substitution to avoid looping.
     (See <a href="http://wiki.apache.org/httpd/RewriteLooping">RewriteLooping</a>
@@ -103,23 +103,23 @@ and URL matching.</p>
 
         <tr>
             <td>VirtualHost section</td>
-            <td>RewriteRule ^/images/(.+)\.jpg /images/$1.gif</td>
+            <td>RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif"</td>
         </tr>
 
         <tr>
             <td>.htaccess file in document root</td>
-            <td>RewriteRule ^images/(.+)\.jpg images/$1.gif</td>
+            <td>RewriteRule "^images/(.+)\.jpg" "images/$1.gif"</td>
         </tr>
 
         <tr>
             <td>.htaccess file in images directory</td>
-            <td>RewriteRule ^(.+)\.jpg $1.gif</td>
+            <td>RewriteRule "^(.+)\.jpg" "$1.gif"</td>
         </tr>
 
     </table>
 
     <p>For even more insight into how mod_rewrite manipulates URLs in
-    different contexts, you should consult the <a href="../mod/mod_rewrite.html#logging">log entries</a> made during 
+    different contexts, you should consult the <a href="../mod/mod_rewrite.html#logging">log entries</a> made during
     rewriting.</p>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 83a69f3fc48f5cddd939571a95874f0d3ecef1ca..e22c7cf8e151f0e18308f4f9f1f7643600623b9c 100644 (file)
@@ -76,7 +76,7 @@ and URL matching.</p>
     <p>In per-directory context (i.e., within <code>.htaccess</code> files
     and <code>Directory</code> blocks), these rules are being applied
     after a URL has already been translated to a filename. Because of
-    this, the URL-path that mod_rewrite initially compares <directive 
+    this, the URL-path that mod_rewrite initially compares <directive
     module="mod_rewrite">RewriteRule</directive> directives against
     is the full filesystem path to the translated filename with the current
     directories path (including a trailing slash) removed from the front.</p>
@@ -85,12 +85,12 @@ and URL matching.</p>
     for /foo/bar/baz is being processed, an expression like ^bar/baz$ would
     match.</p>
 
-    <p> If a substitution is made in per-directory context, a new internal 
-    subrequest is issued with the new URL, which restarts processing of the 
-    request phases. If the substitution is a relative path, the <directive 
-    module="mod_rewrite">RewriteBase</directive> directive 
+    <p> If a substitution is made in per-directory context, a new internal
+    subrequest is issued with the new URL, which restarts processing of the
+    request phases. If the substitution is a relative path, the <directive
+    module="mod_rewrite">RewriteBase</directive> directive
     determines the URL-path prefix prepended to the substitution.
-    In per-directory context, care must be taken to 
+    In per-directory context, care must be taken to
     create rules which will eventually (in some future "round" of per-directory
     rewrite processing) not perform a substitution to avoid looping.
     (See <a href="http://wiki.apache.org/httpd/RewriteLooping">RewriteLooping</a>
@@ -112,24 +112,24 @@ and URL matching.</p>
 
         <tr>
             <td>VirtualHost section</td>
-            <td>RewriteRule ^/images/(.+)\.jpg /images/$1.gif</td>
+            <td>RewriteRule "^/images/(.+)\.jpg" "/images/$1.gif"</td>
         </tr>
 
         <tr>
             <td>.htaccess file in document root</td>
-            <td>RewriteRule ^images/(.+)\.jpg images/$1.gif</td>
+            <td>RewriteRule "^images/(.+)\.jpg" "images/$1.gif"</td>
         </tr>
 
         <tr>
             <td>.htaccess file in images directory</td>
-            <td>RewriteRule ^(.+)\.jpg $1.gif</td>
+            <td>RewriteRule "^(.+)\.jpg" "$1.gif"</td>
         </tr>
 
     </table>
 
     <p>For even more insight into how mod_rewrite manipulates URLs in
     different contexts, you should consult the <a
-    href="../mod/mod_rewrite.html#logging">log entries</a> made during 
+    href="../mod/mod_rewrite.html#logging">log entries</a> made during
     rewriting.</p>
 
 </section>
@@ -188,4 +188,3 @@ and URL matching.</p>
 
 
 </manualpage>
-
index 1946a98d21f913f65d196263a5dab4b4c8d5de4c..8ad14c9eb04f0f1a48a55e883d743a188dad4527 100644 (file)
@@ -67,10 +67,10 @@ mod_rewrite</a> document.</div>
 
 <pre class="prettyprint lang-config">RewriteEngine on
 
-RewriteMap    lowercase int:tolower
+RewriteMap    lowercase "int:tolower"
 
-RewriteCond   ${lowercase:%{<strong>HTTP_HOST</strong>}}   ^www\.<strong>([^.]+)</strong>\.example\.com$
-RewriteRule   ^(.*) /home/<strong>%1</strong>/www$1</pre>
+RewriteCond   "${lowercase:%{<strong>HTTP_HOST</strong>}}"   "^www\.<strong>([^.]+)</strong>\.example\.com$"
+RewriteRule   "^(.*)"                                        "/home/<strong>%1</strong>/www$1"</pre>
 </dd>
 
 <dt>Discussion</dt>
@@ -137,19 +137,19 @@ CustomLog logs/access_log vcommon
 RewriteEngine On
 
 # a ServerName derived from a Host: header may be any case at all
-RewriteMap  lowercase  int:tolower
+RewriteMap  lowercase  "int:tolower"
 
 ## deal with normal documents first:
 # allow Alias /icons/ to work - repeat for other aliases
-RewriteCond  %{REQUEST_URI}  !^/icons/
+RewriteCond  "%{REQUEST_URI}"  "!^/icons/"
 # allow CGIs to work
-RewriteCond  %{REQUEST_URI}  !^/cgi-bin/
+RewriteCond  "%{REQUEST_URI}"  "!^/cgi-bin/"
 # do the magic
-RewriteRule  ^/(.*)$  /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
+RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"
 
 ## and now deal with CGIs - we have to force a handler
-RewriteCond  %{REQUEST_URI}  ^/cgi-bin/
-RewriteRule  ^/(.*)$  /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1  [H=cgi-script]</pre>
+RewriteCond  "%{REQUEST_URI}"  "^/cgi-bin/"
+RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1"  [H=cgi-script]</pre>
 
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -175,23 +175,23 @@ customer-N.example.com  /www/customers/N<br />
 
 <pre class="prettyprint lang-config">RewriteEngine on
 
-RewriteMap   lowercase  int:tolower
+RewriteMap   lowercase  "int:tolower"
 
 # define the map file
-RewriteMap   vhost      txt:/www/conf/vhost.map
+RewriteMap   vhost      "txt:/www/conf/vhost.map"
 
 # deal with aliases as above
-RewriteCond  %{REQUEST_URI}               !^/icons/
-RewriteCond  %{REQUEST_URI}               !^/cgi-bin/
-RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
+RewriteCond  "%{REQUEST_URI}"               "!^/icons/"
+RewriteCond  "%{REQUEST_URI}"               "!^/cgi-bin/"
+RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
 # this does the file-based remap
-RewriteCond  ${vhost:%1}                  ^(/.*)$
-RewriteRule  ^/(.*)$                      %1/docs/$1
+RewriteCond  "${vhost:%1}"                  "^(/.*)$"
+RewriteRule  "^/(.*)$"                      "%1/docs/$1"
 
-RewriteCond  %{REQUEST_URI}               ^/cgi-bin/
-RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
-RewriteCond  ${vhost:%1}                  ^(/.*)$
-RewriteRule  ^/(.*)$                      %1/cgi-bin/$1 [H=cgi-script]</pre>
+RewriteCond  "%{REQUEST_URI}"               "^/cgi-bin/"
+RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
+RewriteCond  "${vhost:%1}"                  "^(/.*)$"
+RewriteRule  "^/(.*)$"                      "%1/cgi-bin/$1" [H=cgi-script]</pre>
 
 
 </div></div>
index 8a44a8501672d658a410bbef8d72bdc51eb5ebe2..1cea3de0878bf14902a6fcb281d2d284eea79322 100644 (file)
@@ -74,10 +74,10 @@ mod_rewrite</a> document.</note>
 <highlight language="config">
 RewriteEngine on
 
-RewriteMap    lowercase int:tolower
+RewriteMap    lowercase "int:tolower"
 
-RewriteCond   ${lowercase:%{<strong>HTTP_HOST</strong>}}   ^www\.<strong>([^.]+)</strong>\.example\.com$
-RewriteRule   ^(.*) /home/<strong>%1</strong>/www$1
+RewriteCond   "${lowercase:%{<strong>HTTP_HOST</strong>}}"   "^www\.<strong>([^.]+)</strong>\.example\.com$"
+RewriteRule   "^(.*)"                                        "/home/<strong>%1</strong>/www$1"
 </highlight></dd>
 
 <dt>Discussion</dt>
@@ -146,19 +146,19 @@ CustomLog logs/access_log vcommon
 RewriteEngine On
 
 # a ServerName derived from a Host: header may be any case at all
-RewriteMap  lowercase  int:tolower
+RewriteMap  lowercase  "int:tolower"
 
 ## deal with normal documents first:
 # allow Alias /icons/ to work - repeat for other aliases
-RewriteCond  %{REQUEST_URI}  !^/icons/
+RewriteCond  "%{REQUEST_URI}"  "!^/icons/"
 # allow CGIs to work
-RewriteCond  %{REQUEST_URI}  !^/cgi-bin/
+RewriteCond  "%{REQUEST_URI}"  "!^/cgi-bin/"
 # do the magic
-RewriteRule  ^/(.*)$  /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
+RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"
 
 ## and now deal with CGIs - we have to force a handler
-RewriteCond  %{REQUEST_URI}  ^/cgi-bin/
-RewriteRule  ^/(.*)$  /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1  [H=cgi-script]
+RewriteCond  "%{REQUEST_URI}"  "^/cgi-bin/"
+RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1"  [H=cgi-script]
 </highlight>
 
 </section>
@@ -185,23 +185,23 @@ customer-N.example.com  /www/customers/N<br />
 <highlight language="config">
 RewriteEngine on
 
-RewriteMap   lowercase  int:tolower
+RewriteMap   lowercase  "int:tolower"
 
 # define the map file
-RewriteMap   vhost      txt:/www/conf/vhost.map
+RewriteMap   vhost      "txt:/www/conf/vhost.map"
 
 # deal with aliases as above
-RewriteCond  %{REQUEST_URI}               !^/icons/
-RewriteCond  %{REQUEST_URI}               !^/cgi-bin/
-RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
+RewriteCond  "%{REQUEST_URI}"               "!^/icons/"
+RewriteCond  "%{REQUEST_URI}"               "!^/cgi-bin/"
+RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
 # this does the file-based remap
-RewriteCond  ${vhost:%1}                  ^(/.*)$
-RewriteRule  ^/(.*)$                      %1/docs/$1
+RewriteCond  "${vhost:%1}"                  "^(/.*)$"
+RewriteRule  "^/(.*)$"                      "%1/docs/$1"
 
-RewriteCond  %{REQUEST_URI}               ^/cgi-bin/
-RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
-RewriteCond  ${vhost:%1}                  ^(/.*)$
-RewriteRule  ^/(.*)$                      %1/cgi-bin/$1 [H=cgi-script]
+RewriteCond  "%{REQUEST_URI}"               "^/cgi-bin/"
+RewriteCond  "${lowercase:%{SERVER_NAME}}"  "^(.+)$"
+RewriteCond  "${vhost:%1}"                  "^(/.*)$"
+RewriteRule  "^/(.*)$"                      "%1/cgi-bin/$1" [H=cgi-script]
 </highlight>
 
 </section>
index 06bf546e8740f493d5ec8378f44f910fcd60bd70..eaec0d32556db3afe537243e3fbd85bf172b7c8a 100644 (file)
@@ -451,10 +451,10 @@ are interpreted, it is important to understand how this works.</p>
     order.</p>
 
     <p>Later sections override earlier ones, however each module is responsible
-    for interpreting what form this override takes.  A later configuration section 
+    for interpreting what form this override takes.  A later configuration section
     with directives from a given module might cause a conceptual "merge" of some
-    directives, all directives, or a complete replacement of the modules 
-    configuration with the module defaults and directives explicitly listed in 
+    directives, all directives, or a complete replacement of the modules
+    configuration with the module defaults and directives explicitly listed in
     the later context.</p>
 
 <div class="note"><h3>Technical Note</h3>
index b42f06c52f106a86ecb6d5a0d63223af6e42398b..f8aa84183bf7e477ddc8af05f1f80e540ca51057 100644 (file)
@@ -511,10 +511,10 @@ are interpreted, it is important to understand how this works.</p>
     order.</p>
 
     <p>Later sections override earlier ones, however each module is responsible
-    for interpreting what form this override takes.  A later configuration section 
+    for interpreting what form this override takes.  A later configuration section
     with directives from a given module might cause a conceptual "merge" of some
-    directives, all directives, or a complete replacement of the modules 
-    configuration with the module defaults and directives explicitly listed in 
+    directives, all directives, or a complete replacement of the modules
+    configuration with the module defaults and directives explicitly listed in
     the later context.</p>
 
 <note><title>Technical Note</title>
index d2176b68ca721a68e29e7be9b308c7c3f584e12d..11088af6f8549898342a774723a673ea9e85d4e4 100644 (file)
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1636195:1673908 (outdated) -->
+<!-- English Revision: 1636195:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 8de16a1a57d78dac8c3fada2004690cb7fcfe71f..6fe92fb68607bb97cb85b86277eaa97fbecee805 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1673908 (outdated) -->
+<!-- English Revision: 420990:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index bcf0582b4e800fa506f4aa0ce079310696f12be4..9da559f5155db6f27a3284acc9b8cf60e7994454 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1673908 (outdated) -->
+<!-- English Revision: 105989:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 50c367941b3b7ecb46fade3f7ed5030770ef5342..0622fc0123e2f11e6d9e9d39d744722189d8cc38 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1300910:1673908 (outdated) -->
+<!-- English Revision: 1300910:1673930 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index a237fcb680b7719eced15836bc8b67d4b5f778f4..75d649bdeda1203ab72c9d2571eca2b3a5978ab4 100644 (file)
@@ -177,8 +177,8 @@ relative hyperlinks?</a></li>
     scheme).  Using <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> however, you can
     manipulate relative hyperlinks, to achieve the same effect.</p>
     <pre class="prettyprint lang-config">RewriteEngine on
-RewriteRule   ^/(.*)_SSL$   https://%{SERVER_NAME}/$1 [R,L]
-RewriteRule   ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1  [R,L]</pre>
+RewriteRule   "^/(.*)_SSL$"   "https://%{SERVER_NAME}/$1" [R,L]
+RewriteRule   "^/(.*)_NOSSL$" "http://%{SERVER_NAME}/$1"  [R,L]</pre>
 
 
     <p>This rewrite ruleset lets you use hyperlinks of the form
@@ -606,7 +606,7 @@ error when connecting to my newly installed server?</a></h3>
     handshake is finished, but the information is needed in order to
     complete the SSL handshake phase. See the next question for how to
     circumvent this issue.</p>
-    
+
     <p>Note that if you have a wildcard SSL certificate, or a
     certificate that has multiple hostnames on it using subjectAltName
     fields, you can use SSL on name-based virtual hosts without further
index c36d496d9613274049443bedd7430e217f0b03e6..99c6fb3fc2e093e6134eb52ec064ba824f7d4914 100644 (file)
@@ -174,8 +174,8 @@ relative hyperlinks?</a></li>
     manipulate relative hyperlinks, to achieve the same effect.</p>
     <highlight language="config">
 RewriteEngine on
-RewriteRule   ^/(.*)_SSL$   https://%{SERVER_NAME}/$1 [R,L]
-RewriteRule   ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1  [R,L]
+RewriteRule   "^/(.*)_SSL$"   "https://%{SERVER_NAME}/$1" [R,L]
+RewriteRule   "^/(.*)_NOSSL$" "http://%{SERVER_NAME}/$1"  [R,L]
     </highlight>
 
     <p>This rewrite ruleset lets you use hyperlinks of the form
@@ -608,7 +608,7 @@ error when connecting to my newly installed server?</title>
     handshake is finished, but the information is needed in order to
     complete the SSL handshake phase. See the next question for how to
     circumvent this issue.</p>
-    
+
     <p>Note that if you have a wildcard SSL certificate, or a
     certificate that has multiple hostnames on it using subjectAltName
     fields, you can use SSL on name-based virtual hosts without further
index c9295283c304d2ea5114c46dcc86b32c29eae042..b262f9778878e9d4a4b78d33d09ee76d107d57ca 100644 (file)
@@ -380,8 +380,8 @@ plain HTTP access for clients on the Intranet.</a></h3>
     #   Force clients from the Internet to use HTTPS
     RewriteEngine        on
     RewriteCond          "%{REMOTE_ADDR}" "!^192\.168\.1\.[0-9]+$"
-    RewriteCond          "%{HTTPS}" "!=on"
-    RewriteRule          "." "-" [F]
+    RewriteCond          "%{HTTPS}"       "!=on"
+    RewriteRule          "."              "-"                      [F]
 
     #   Allow Network Access and/or Basic Auth
     Satisfy              any
index 7763c757d26a1bb50368cf9ef408d1622a2cf041..69180c392fcc5b786a4ca7bcd6708292d0c087ec 100644 (file)
@@ -397,8 +397,8 @@ SSLCACertificateFile "conf/ssl.crt/company-ca.crt"
     #   Force clients from the Internet to use HTTPS
     RewriteEngine        on
     RewriteCond          "%{REMOTE_ADDR}" "!^192\.168\.1\.[0-9]+$"
-    RewriteCond          "%{HTTPS}" "!=on"
-    RewriteRule          "." "-" [F]
+    RewriteCond          "%{HTTPS}"       "!=on"
+    RewriteRule          "."              "-"                      [F]
 
     #   Allow Network Access and/or Basic Auth
     Satisfy              any
index a6fee9512eac41dac1f022ae5fb88993a618d07c..f4bd7fac946632985365b32e0245a075495ac79c 100644 (file)
@@ -572,7 +572,7 @@ Group webgroup</pre>
     option as indicated above, or to syslog if <code>--with-suexec-syslog</code>
     is used. If you feel you have configured and
     installed the wrapper properly, have a look at the log and the
-    error_log for the server to see where you may have gone astray. 
+    error_log for the server to see where you may have gone astray.
     The output of <code>"suexec -V"</code> will show the options
     used to compile suexec, if using a binary distribution.</p>
 
index b089e3f1fa9b51d3881eed553da925620d00c7e8..83144fbe58d8e8098214a8f2fc07bc7bb1e2b762 100644 (file)
@@ -568,7 +568,7 @@ Group webgroup
     option as indicated above, or to syslog if <code>--with-suexec-syslog</code>
     is used. If you feel you have configured and
     installed the wrapper properly, have a look at the log and the
-    error_log for the server to see where you may have gone astray. 
+    error_log for the server to see where you may have gone astray.
     The output of <code>"suexec -V"</code> will show the options
     used to compile suexec, if using a binary distribution.</p>
 
index 8322cfdfa38b74d6e34f5b55a798b53da313763b..62ae748733e6ea77614975447ca5ce4cfd03c070 100644 (file)
@@ -69,7 +69,7 @@
     <p>If a directory is requested (i.e. a path ending with
     <code>/</code>), the file served from that directory is defined by
     the <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> directive.
-    For example, if <code>DocumentRoot</code> were set as above, and 
+    For example, if <code>DocumentRoot</code> were set as above, and
     you were to set:</p>
 
     <div class="example"><p><code>DirectoryIndex index.html index.php</code></p></div>
@@ -259,7 +259,7 @@ content) in a page as it is being served to the client using
 <pre class="prettyprint lang-config">Substitute s/internal\.example\.com/www.example.com/i</pre>
 
 
-<p>For more sophisticated rewriting of links in HTML and XHTML, the 
+<p>For more sophisticated rewriting of links in HTML and XHTML, the
 <code class="module"><a href="./mod/mod_proxy_html.html">mod_proxy_html</a></code> module is also available. It allows you
 to create maps of URLs that need to be rewritten, so that complex
 proxying scenarios can be handled.</p>
index 9753ea2ccea3b273f3884f79ebd7de1097c945e1..627c90d56f0e88d1f339ad99ec14a19113d09c07 100644 (file)
@@ -89,7 +89,7 @@
     <p>If a directory is requested (i.e. a path ending with
     <code>/</code>), the file served from that directory is defined by
     the <directive module="mod_dir">DirectoryIndex</directive> directive.
-    For example, if <code>DocumentRoot</code> were set as above, and 
+    For example, if <code>DocumentRoot</code> were set as above, and
     you were to set:</p>
 
     <example>DirectoryIndex index.html index.php</example>
@@ -296,7 +296,7 @@ content) in a page as it is being served to the client using
 Substitute s/internal\.example\.com/www.example.com/i
 </highlight>
 
-<p>For more sophisticated rewriting of links in HTML and XHTML, the 
+<p>For more sophisticated rewriting of links in HTML and XHTML, the
 <module>mod_proxy_html</module> module is also available. It allows you
 to create maps of URLs that need to be rewritten, so that complex
 proxying scenarios can be handled.</p>
index 1fda9e5b789ed1d9ba8747a81f5d4ce4acf211b8..88eb68a04ef411f26a55400e4e795652ab36c851 100644 (file)
@@ -3,7 +3,7 @@
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1561569:1673908 (outdated) -->
+<!-- English Revision: 1561569:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 7b1068a051a39df9a4bfec31d86983e142c6e573..ff6d6b1ad0cc0277d80bea1817353e11df2aa345 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 151408:1673908 (outdated) -->
+<!-- English Revision: 151408:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index f70e92a240dc71e15851321cf1ae2db3549aa535..b9cb7bfcd872628816f662a30d4f085610bc671d 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1673908 (outdated) -->
+<!-- English Revision: 151408:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index f48a1d4efac4fb2147d1115de0fd0ae4df5a4b3c..270ced3f7c2e087bd3ddbb9fb58d79e0a3703bfa 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1310494:1673908 (outdated) -->
+<!-- English Revision: 1310494:1673930 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 542b87874bfc722b25a1e408c57693672c5b9c68..86cf5a5ed1af37279bf6a7a18d88ae268c662c1e 100644 (file)
@@ -64,7 +64,7 @@
     sites on a single IP address.</a></h2>
 
     <p>Your server has multiple hostnames that resolve to a single address,
-    and you want to respond differently for <code>www.example.com</code> 
+    and you want to respond differently for <code>www.example.com</code>
     and <code>www.example.org</code>.</p>
 
     <div class="note"><h3>Note</h3><p>Creating virtual
@@ -82,7 +82,7 @@ Listen 80
 &lt;VirtualHost *:80&gt;
     DocumentRoot "/www/example1"
     ServerName www.example.com
-  
+
     # Other directives here
 &lt;/VirtualHost&gt;
 
@@ -112,8 +112,8 @@ Listen 80
             <h3>Note</h3>
 
            <p>You may replace <code>*</code> with a specific IP address
-           on the system.  Such virtual hosts will only be used for 
-           HTTP requests received on connection to the specified IP 
+           on the system.  Such virtual hosts will only be used for
+           HTTP requests received on connection to the specified IP
            address.</p>
 
            <p>However, it is additionally useful to use <code>*</code>
@@ -148,14 +148,14 @@ DocumentRoot "/www/mainserver"
 &lt;VirtualHost 172.20.30.50&gt;
     DocumentRoot "/www/example1"
     ServerName www.example.com
-    
+
     # Other directives here ...
 &lt;/VirtualHost&gt;
 
 &lt;VirtualHost 172.20.30.50&gt;
     DocumentRoot "/www/example2"
     ServerName www.example.org
-    
+
     # Other directives here ...
 &lt;/VirtualHost&gt;</pre>
 
@@ -490,7 +490,7 @@ DocumentRoot "/www/example1"
     # primary vhost
     DocumentRoot "/www/subdomain"
     RewriteEngine On
-    RewriteRule . /www/subdomain/index.html
+    RewriteRule "." "/www/subdomain/index.html"
     # ...
 &lt;/VirtualHost&gt;
 
@@ -499,7 +499,7 @@ DocumentRoot "/www/example1"
     ServerName www.sub1.domain.tld
     ServerPath /sub1/
     RewriteEngine On
-    RewriteRule ^(/sub1/.*) /www/subdomain$1
+    RewriteRule "^(/sub1/.*)" "/www/subdomain$1"
     # ...
 &lt;/VirtualHost&gt;
 
@@ -508,7 +508,7 @@ DocumentRoot "/www/example1"
     ServerName www.sub2.domain.tld
     ServerPath /sub2/
     RewriteEngine On
-    RewriteRule ^(/sub2/.*) /www/subdomain$1
+    RewriteRule "^(/sub2/.*)" "/www/subdomain$1"
     # ...
 &lt;/VirtualHost&gt;</pre>
 
index 29ab8a3950db007451a022ce20acec49a683b30e..dfeb41d3b645e79c57576018ccc3554111b20dd1 100644 (file)
@@ -39,7 +39,7 @@
     sites on a single IP address.</title>
 
     <p>Your server has multiple hostnames that resolve to a single address,
-    and you want to respond differently for <code>www.example.com</code> 
+    and you want to respond differently for <code>www.example.com</code>
     and <code>www.example.org</code>.</p>
 
     <note><title>Note</title><p>Creating virtual
@@ -58,7 +58,7 @@ Listen 80
 &lt;VirtualHost *:80&gt;
     DocumentRoot "/www/example1"
     ServerName www.example.com
-  
+
     # Other directives here
 &lt;/VirtualHost&gt;
 
@@ -88,8 +88,8 @@ Listen 80
             <title>Note</title>
 
            <p>You may replace <code>*</code> with a specific IP address
-           on the system.  Such virtual hosts will only be used for 
-           HTTP requests received on connection to the specified IP 
+           on the system.  Such virtual hosts will only be used for
+           HTTP requests received on connection to the specified IP
            address.</p>
 
            <p>However, it is additionally useful to use <code>*</code>
@@ -125,14 +125,14 @@ DocumentRoot "/www/mainserver"
 &lt;VirtualHost 172.20.30.50&gt;
     DocumentRoot "/www/example1"
     ServerName www.example.com
-    
+
     # Other directives here ...
 &lt;/VirtualHost&gt;
 
 &lt;VirtualHost 172.20.30.50&gt;
     DocumentRoot "/www/example2"
     ServerName www.example.org
-    
+
     # Other directives here ...
 &lt;/VirtualHost&gt;
     </highlight>
@@ -480,7 +480,7 @@ DocumentRoot "/www/example1"
     # primary vhost
     DocumentRoot "/www/subdomain"
     RewriteEngine On
-    RewriteRule . /www/subdomain/index.html
+    RewriteRule "." "/www/subdomain/index.html"
     # ...
 &lt;/VirtualHost&gt;
 
@@ -489,7 +489,7 @@ DocumentRoot "/www/example1"
     ServerName www.sub1.domain.tld
     ServerPath /sub1/
     RewriteEngine On
-    RewriteRule ^(/sub1/.*) /www/subdomain$1
+    RewriteRule "^(/sub1/.*)" "/www/subdomain$1"
     # ...
 &lt;/VirtualHost&gt;
 
@@ -498,7 +498,7 @@ DocumentRoot "/www/example1"
     ServerName www.sub2.domain.tld
     ServerPath /sub2/
     RewriteEngine On
-    RewriteRule ^(/sub2/.*) /www/subdomain$1
+    RewriteRule "^(/sub2/.*)" "/www/subdomain$1"
     # ...
 &lt;/VirtualHost&gt;
     </highlight>
index 23597eb3b436ac79331cc2f2cf7dfd7aae8851a0..6289e6fca829abdf7fb91ab52fe7b25872847ff2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='ISO-8859-1' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1628690:1673917 (outdated) -->
+<!-- English Revision: 1628690:1673930 (outdated) -->
 <!-- French translation by Vincent Deffontaines, Alain B.  -->
 <!-- reviewed by Lucien Gentis -->
 
index d110e96f42459797c97b1f541ecaac9d9cf3a730..bc4d48ad13fb22502e56b2898a815da7a2b737bd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 659902:1673917 (outdated) -->
+<!-- English Revision: 659902:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 2dfb32c001e577840b61a1aafe4e1a787fe7c8bd..aff71156ae0e09340b68cb7882f21684af6f51ee 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='EUC-KR' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1673917 (outdated) -->
+<!-- English Revision: 105989:1673930 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 7d66275b074d9295d4458387a98bfc611d2a53f8..625f05aa3320021d7aeb773576f2af4c8a5ce9ce 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1132802:1673917 (outdated) -->
+<!-- English Revision: 1132802:1673930 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by:  Orhan Berent <berent belgeler.org>
index 527fe56bc7c77421cb8aeca35ce6df41a53ec1b8..1b98c65211231177811965ed256149c95497ec0a 100644 (file)
@@ -239,18 +239,18 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
 
 &lt;VirtualHost 111.22.33.44&gt;
     ServerName www.commercial.example.com
-    
+
     CustomLog logs/access_log.commercial vcommon
-    
+
     VirtualDocumentRoot "/www/commercial/%0/docs"
     VirtualScriptAlias  "/www/commercial/%0/cgi-bin"
 &lt;/VirtualHost&gt;
 
 &lt;VirtualHost 111.22.33.45&gt;
     ServerName www.homepages.example.com
-    
+
     CustomLog logs/access_log.homepages vcommon
-    
+
     VirtualDocumentRoot "/www/homepages/%0/docs"
     ScriptAlias         "/cgi-bin/" "/www/std-cgi/"
 &lt;/VirtualHost&gt;</pre>
index 9ebe26dfa016844699cc3dd933cdb2a8eda622ce..ea52263c2f7578bfb98afbeebcc45265ee8279a1 100644 (file)
@@ -232,18 +232,18 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
 
 &lt;VirtualHost 111.22.33.44&gt;
     ServerName www.commercial.example.com
-    
+
     CustomLog logs/access_log.commercial vcommon
-    
+
     VirtualDocumentRoot "/www/commercial/%0/docs"
     VirtualScriptAlias  "/www/commercial/%0/cgi-bin"
 &lt;/VirtualHost&gt;
 
 &lt;VirtualHost 111.22.33.45&gt;
     ServerName www.homepages.example.com
-    
+
     CustomLog logs/access_log.homepages vcommon
-    
+
     VirtualDocumentRoot "/www/homepages/%0/docs"
     ScriptAlias         "/cgi-bin/" "/www/std-cgi/"
 &lt;/VirtualHost&gt;
index 86bc8374289c793ab01eb591870ddeb42908a3c7..3efe852b455a548a190d8315515495adfe71bbed 100644 (file)
     compare the <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> and <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> directives to the server name
     present in the request.</p>
 
-    <p>If you omit the <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> 
+    <p>If you omit the <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>
     directive from any name-based virtual host, the server will default
     to a fully qualified domain name (FQDN) derived from the system hostname.
     This implicitly set server name can lead to counter-intuitive virtual host
     matching and is discouraged.</p>
+
     <h3><a name="defaultvhost" id="defaultvhost">The default name-based vhost for an IP and port combination </a></h3>
     <p> If no matching ServerName or ServerAlias is found in the set of
     virtual hosts containing the most specific matching IP address and port
 
     <div class="note"><h3>ServerName inheritance</h3>
        <p> It is best to always explicitly list a  <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> in every name-based virtual host.</p>
-       <p>If a <code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code> doesn't specify 
-       a <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>, a server name will be 
-       inherited from the base server configuration.  If no server name was 
+       <p>If a <code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code> doesn't specify
+       a <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>, a server name will be
+       inherited from the base server configuration.  If no server name was
        specified globally, one is detected at startup through reverse DNS resolution
        of the first listening address.  In either case, this inherited server name
        will influence name-based virtual host resolution, so it is best to always
     <pre class="prettyprint lang-config">&lt;VirtualHost *:80&gt;
     # This first-listed virtual host is also the default for *:80
     ServerName www.example.com
-    ServerAlias example.com 
+    ServerAlias example.com
     DocumentRoot "/www/domain"
 &lt;/VirtualHost&gt;
 
     first have your DNS server properly configured to map those names to an IP
     address associated with your server.</p>
 
-    <p>Name-based virtual hosts for the best-matching set of  <code class="directive"><a href="../mod/core.html#virtualhost">&lt;virtualhost&gt;</a></code>s are processed 
+    <p>Name-based virtual hosts for the best-matching set of  <code class="directive"><a href="../mod/core.html#virtualhost">&lt;virtualhost&gt;</a></code>s are processed
     in the order they appear in the configuration.  The first matching <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> or <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> is used, with no different precedence for wildcards
     (nor for ServerName vs. ServerAlias).  </p>
 
     <p>The complete list of names in the <code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code>
-    directive are treated just like a (non wildcard) 
+    directive are treated just like a (non wildcard)
     <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>.</p>
 
     <p>Finally, you can fine-tune the configuration of the virtual hosts
index 91e2b5ed1148a552e49e5deb1f2079f86f3c4be4..b6651b734ba728732fb3bc7a508605c477919f27 100644 (file)
     module="core">ServerAlias</directive> directives to the server name
     present in the request.</p>
 
-    <p>If you omit the <directive module="core">ServerName</directive> 
+    <p>If you omit the <directive module="core">ServerName</directive>
     directive from any name-based virtual host, the server will default
     to a fully qualified domain name (FQDN) derived from the system hostname.
     This implicitly set server name can lead to counter-intuitive virtual host
     matching and is discouraged.</p>
+
     <section id="defaultvhost"><title>The default name-based vhost for an IP and port combination </title>
     <p> If no matching ServerName or ServerAlias is found in the set of
     virtual hosts containing the most specific matching IP address and port
     <note><title>ServerName inheritance</title>
        <p> It is best to always explicitly list a  <directive module="core"
        >ServerName</directive> in every name-based virtual host.</p>
-       <p>If a <directive module="core">VirtualHost</directive> doesn't specify 
-       a <directive module="core">ServerName</directive>, a server name will be 
-       inherited from the base server configuration.  If no server name was 
+       <p>If a <directive module="core">VirtualHost</directive> doesn't specify
+       a <directive module="core">ServerName</directive>, a server name will be
+       inherited from the base server configuration.  If no server name was
        specified globally, one is detected at startup through reverse DNS resolution
        of the first listening address.  In either case, this inherited server name
        will influence name-based virtual host resolution, so it is best to always
 &lt;VirtualHost *:80&gt;
     # This first-listed virtual host is also the default for *:80
     ServerName www.example.com
-    ServerAlias example.com 
+    ServerAlias example.com
     DocumentRoot "/www/domain"
 &lt;/VirtualHost&gt;
 
     address associated with your server.</p>
 
     <p>Name-based virtual hosts for the best-matching set of  <directive
-    type="section" module="core">virtualhost</directive>s are processed 
+    type="section" module="core">virtualhost</directive>s are processed
     in the order they appear in the configuration.  The first matching <directive
     module="core">ServerName</directive> or <directive module="core"
     >ServerAlias</directive> is used, with no different precedence for wildcards
 
     <p>The complete list of names in the <directive module="core"
     >VirtualHost</directive>
-    directive are treated just like a (non wildcard) 
+    directive are treated just like a (non wildcard)
     <directive module="core">ServerAlias</directive>.</p>
 
     <p>Finally, you can fine-tune the configuration of the virtual hosts