coar        97/07/06 10:19:26

  Modified:    htdocs/manual  content-negotiation.html custom-error.html
                        dns-caveats.html  env.html host.html install.html
                        invoking.html  man-template.html multilogs.html
                        new_features_1_0.html  new_features_1_2.html
                        new_features_1_3.html process-model.html 
                        suexec.html vhosts-in-depth.html virtual-host.html
               htdocs/manual/misc  API.html FAQ.html client_block_api.html
                        compat_notes.html  descriptors.html fin_wait_2.html
                        known_bugs.html nopgp.html  perf-bsd44.html
                        perf-dec.html perf.html security_tips.html 
                        vif-info.html
               htdocs/manual/mod  core.html directives.html index.html
                        mod_access.html  mod_actions.html mod_alias.html
                        mod_auth_anon.html  mod_auth_dbm.html
                        mod_cern_meta.html mod_dir.html mod_env.html 
                        mod_imap.html mod_include.html mod_negotiation.html
                         mod_proxy.html mod_rewrite.html mod_status.html 
                        mod_userdir.html
  Log:
        More HTML cleanups, retrofit of intentional <XA> tag to a no-op
        <A NAME> (thanks, Marc).  Lots of trailing blanks removed throughout.
        Small addition to the new_features_1_3 page.  Plenty of
        cleanup still to come..
  
  Revision  Changes    Path
  1.11      +11 -11    apache/htdocs/manual/content-negotiation.html
  
  Index: content-negotiation.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/content-negotiation.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -C3 -r1.10 -r1.11
  *** content-negotiation.html  1997/06/04 11:07:47     1.10
  --- content-negotiation.html  1997/07/06 17:18:52     1.11
  ***************
  *** 22,28 ****
    couple of features to give more intelligent handling of requests from
    browsers which send incomplete negotiation information.  <p>
    
  ! Content negotiation is provided by the 
    <a href="mod/mod_negotiation.html">mod_negotiation</a> module,
    which is compiled in by default.
    
  --- 22,28 ----
    couple of features to give more intelligent handling of requests from
    browsers which send incomplete negotiation information.  <p>
    
  ! Content negotiation is provided by the
    <a href="mod/mod_negotiation.html">mod_negotiation</a> module,
    which is compiled in by default.
    
  ***************
  *** 47,53 ****
    </pre>
    
    Note that this preference will only be applied when there is a choice
  ! of representations and they vary by language. 
    <p>
    
    As an example of a more complex request, this browser has been
  --- 47,53 ----
    </pre>
    
    Note that this preference will only be applied when there is a choice
  ! of representations and they vary by language.
    <p>
    
    As an example of a more complex request, this browser has been
  ***************
  *** 78,89 ****
    
    In order to negotiate a resource, the server needs to be given
    information about each of the variants. This is done in one of two
  ! ways: 
    
    <ul>
      <li> Using a type map (i.e., a <code>*.var</code> file) which
           names the files containing the variants explicitly
  !   <li> Or using a 'MultiViews' search, where the server does an implicit 
           filename pattern match, and chooses from among the results.
    </ul>
    
  --- 78,89 ----
    
    In order to negotiate a resource, the server needs to be given
    information about each of the variants. This is done in one of two
  ! ways:
    
    <ul>
      <li> Using a type map (i.e., a <code>*.var</code> file) which
           names the files containing the variants explicitly
  !   <li> Or using a 'MultiViews' search, where the server does an implicit
           filename pattern match, and chooses from among the results.
    </ul>
    
  ***************
  *** 154,160 ****
           interpreted as URLs relative to the map file; they must be on
           the same server (!), and they must refer to files to which the
           client would be granted access if they were to be requested
  !        directly. 
      <dt> <code>Content-type:</code>
      <dd> media type --- charset, level and "qs" parameters may be given.  
These
           are often referred to as MIME types; typical media types are
  --- 154,160 ----
           interpreted as URLs relative to the map file; they must be on
           the same server (!), and they must refer to files to which the
           client would be granted access if they were to be requested
  !        directly.
      <dt> <code>Content-type:</code>
      <dd> media type --- charset, level and "qs" parameters may be given.  
These
           are often referred to as MIME types; typical media types are
  ***************
  *** 244,250 ****
    <tr><th>Dimension
    <th>Notes
    <tr><td>Media Type
  ! <td>Browser indicates preferences on Accept: header. Each item 
    can have an associated quality factor. Variant description can also
    have a quality factor.
    <tr><td>Language
  --- 244,250 ----
    <tr><th>Dimension
    <th>Notes
    <tr><td>Media Type
  ! <td>Browser indicates preferences on Accept: header. Each item
    can have an associated quality factor. Variant description can also
    have a quality factor.
    <tr><td>Language
  ***************
  *** 292,298 ****
      else the order of languages on the Accept-Language header.
    
    <li>Select the variants with the highest 'level' media parameter
  !   (used to give the version of text/html media types). 
    
    <li>Select only unencoded variants, if there is a mix of encoded
      and non-encoded variants. If either all variants are encoded
  --- 292,298 ----
      else the order of languages on the Accept-Language header.
    
    <li>Select the variants with the highest 'level' media parameter
  !   (used to give the version of text/html media types).
    
    <li>Select only unencoded variants, if there is a mix of encoded
      and non-encoded variants. If either all variants are encoded
  ***************
  *** 366,372 ****
    The explicit types have no quality factor, so they default to a
    preference of 1.0 (the highest). The wildcard */* is given
    a low preference of 0.01, so other types will only be returned if
  ! no variant matches an explicitly listed type. 
    <p>
    
    If the Accept: header contains <i>no</i> q factors at all, Apache sets
  --- 366,372 ----
    The explicit types have no quality factor, so they default to a
    preference of 1.0 (the highest). The wildcard */* is given
    a low preference of 0.01, so other types will only be returned if
  ! no variant matches an explicitly listed type.
    <p>
    
    If the Accept: header contains <i>no</i> q factors at all, Apache sets
  ***************
  *** 386,392 ****
    The reason for setting this language quality factor for
    variant with no language to a very low value is to allow
    for a default variant which can be supplied if none of the
  ! other variants match the browser's language preferences. 
    
    For example, consider the situation with three variants:
    
  --- 386,392 ----
    The reason for setting this language quality factor for
    variant with no language to a very low value is to allow
    for a default variant which can be supplied if none of the
  ! other variants match the browser's language preferences.
    
    For example, consider the situation with three variants:
    
  ***************
  *** 409,417 ****
    document, provided it is still within date. But if the resource is
    subject to content negotiation at the server, this would result in
    only the first requested variant being cached, and subsequent cache
  ! hits could return the wrong response. To prevent this, 
    Apache normally marks all responses that are returned after content 
negotiation
  ! as non-cacheable by HTTP/1.0 clients. Apache also supports the HTTP/1.1 
    protocol features to allow caching of negotiated responses. <P>
    
    For requests which come from a HTTP/1.0 compliant client (either a
  --- 409,417 ----
    document, provided it is still within date. But if the resource is
    subject to content negotiation at the server, this would result in
    only the first requested variant being cached, and subsequent cache
  ! hits could return the wrong response. To prevent this,
    Apache normally marks all responses that are returned after content 
negotiation
  ! as non-cacheable by HTTP/1.0 clients. Apache also supports the HTTP/1.1
    protocol features to allow caching of negotiated responses. <P>
    
    For requests which come from a HTTP/1.0 compliant client (either a
  
  
  
  1.10      +7 -8      apache/htdocs/manual/custom-error.html
  
  Index: custom-error.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/custom-error.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** custom-error.html 1997/06/24 18:39:30     1.9
  --- custom-error.html 1997/07/06 17:18:53     1.10
  ***************
  *** 29,41 ****
          response, then this response can be replaced with either some
          friendlier text or by a redirection to another URL (local or
          external).
  -         
          <P>
  !         
    <DT>Old behavior
    
  !   <DD>NCSA httpd 1.3 would return some boring old error/problem message 
  !       which would often be meaningless to the user, and would provide no 
          means of logging the symptoms which caused it.<BR>
    
          <P>
  --- 29,40 ----
          response, then this response can be replaced with either some
          friendlier text or by a redirection to another URL (local or
          external).
          <P>
  ! 
    <DT>Old behavior
    
  !   <DD>NCSA httpd 1.3 would return some boring old error/problem message
  !       which would often be meaningless to the user, and would provide no
          means of logging the symptoms which caused it.<BR>
    
          <P>
  ***************
  *** 69,75 ****
    REDIRECT_URL=/cgi-bin/buggy.pl <br>
      </code></blockquote>
    
  !   <P>note the <code>REDIRECT_</code> prefix. 
    
      <P>At least <code>REDIRECT_URL</code> and 
<code>REDIRECT_QUERY_STRING</code> will
         be passed to the new URL (assuming it's a cgi-script or a 
cgi-include). The
  --- 68,74 ----
    REDIRECT_URL=/cgi-bin/buggy.pl <br>
      </code></blockquote>
    
  !   <P>note the <code>REDIRECT_</code> prefix.
    
      <P>At least <code>REDIRECT_URL</code> and 
<code>REDIRECT_QUERY_STRING</code> will
         be passed to the new URL (assuming it's a cgi-script or a 
cgi-include). The
  ***************
  *** 94,109 ****
    ErrorDocument 401 /Subscription/how_to_subscribe.html
      </code></blockquote>
    
  !   <P>The syntax is, 
    
      <P><code><A HREF="mod/core.html#errordocument">ErrorDocument</A></code>
  ! &lt;3-digit-code&gt; action 
    
      <P>where the action can be,
    
      <OL>
        <LI>Text to be displayed.  Prefix the text with a quote (&quot;). 
Whatever
  !         follows the quote is displayed. <em>Note: the (&quot;) prefix isn't 
            displayed.</em>
    
        <LI>An external URL to redirect to.
  --- 93,108 ----
    ErrorDocument 401 /Subscription/how_to_subscribe.html
      </code></blockquote>
    
  !   <P>The syntax is,
    
      <P><code><A HREF="mod/core.html#errordocument">ErrorDocument</A></code>
  ! &lt;3-digit-code&gt; action
    
      <P>where the action can be,
    
      <OL>
        <LI>Text to be displayed.  Prefix the text with a quote (&quot;). 
Whatever
  !         follows the quote is displayed. <em>Note: the (&quot;) prefix isn't
            displayed.</em>
    
        <LI>An external URL to redirect to.
  
  
  
  1.6       +1 -1      apache/htdocs/manual/dns-caveats.html
  
  Index: dns-caveats.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/dns-caveats.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -C3 -r1.5 -r1.6
  *** dns-caveats.html  1997/06/04 11:07:48     1.5
  --- dns-caveats.html  1997/07/06 17:18:53     1.6
  ***************
  *** 188,194 ****
    than not booting at all depending on what the webserver is supposed
    to accomplish.
    
  ! <p>As HTTP/1.1 is deployed and browsers and proxies start issuing the 
    <code>Host</code> header it will become possible to avoid the use of
    IP-based virtual hosts entirely.  In this event a webserver has no 
requirement
    to do DNS lookups during configuration.  But as of March 1997 these
  --- 188,194 ----
    than not booting at all depending on what the webserver is supposed
    to accomplish.
    
  ! <p>As HTTP/1.1 is deployed and browsers and proxies start issuing the
    <code>Host</code> header it will become possible to avoid the use of
    IP-based virtual hosts entirely.  In this event a webserver has no 
requirement
    to do DNS lookups during configuration.  But as of March 1997 these
  
  
  
  1.5       +3 -3      apache/htdocs/manual/env.html
  
  Index: env.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/env.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -C3 -r1.4 -r1.5
  *** env.html  1997/06/04 11:07:48     1.4
  --- env.html  1997/07/06 17:18:53     1.5
  ***************
  *** 17,25 ****
    <P>Interoperability problems have led to the introduction of
    mechanisms to modify the way Apache behaves when talking to particular
    clients. To make these mechanisms as flexible as possible, they
  ! are invoked by defining environment variables, typically with 
  ! <A HREF="mod/mod_browser.html#browsermatch">BrowserMatch</A>, though 
  ! <A HREF="mod/mod_env.html#setenv">SetEnv</A> and 
    <A HREF="mod/mod_env.html#passenv">PassEnv</A> could also be used, for
    example.</P>
    
  --- 17,25 ----
    <P>Interoperability problems have led to the introduction of
    mechanisms to modify the way Apache behaves when talking to particular
    clients. To make these mechanisms as flexible as possible, they
  ! are invoked by defining environment variables, typically with
  ! <A HREF="mod/mod_browser.html#browsermatch">BrowserMatch</A>, though
  ! <A HREF="mod/mod_env.html#setenv">SetEnv</A> and
    <A HREF="mod/mod_env.html#passenv">PassEnv</A> could also be used, for
    example.</P>
    
  
  
  
  1.10      +1 -2      apache/htdocs/manual/host.html
  
  Index: host.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/host.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** host.html 1997/06/04 11:07:48     1.9
  --- host.html 1997/07/06 17:18:54     1.10
  ***************
  *** 165,173 ****
    be directly taken to the Apache pages. Older browsers will be able to
    click on the link from the main server, go to
    <code>http://www.apache.org/apache/</code>, and then access the
  ! pages.</p> 
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  - 
  --- 165,172 ----
    be directly taken to the Apache pages. Older browsers will be able to
    click on the link from the main server, go to
    <code>http://www.apache.org/apache/</code>, and then access the
  ! pages.</p>
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  
  
  
  1.11      +4 -4      apache/htdocs/manual/install.html
  
  Index: install.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/install.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -C3 -r1.10 -r1.11
  *** install.html      1997/06/30 21:42:25     1.10
  --- install.html      1997/07/06 17:18:54     1.11
  ***************
  *** 28,34 ****
    web server at <A
    HREF="http://www.apache.org/";>http://www.apache.org/</A>.  This will
    list the current release, any more recent beta-test release, together
  ! with details of mirror web and anonymous ftp sites.  
    
    <P>
    
  --- 28,34 ----
    web server at <A
    HREF="http://www.apache.org/";>http://www.apache.org/</A>.  This will
    list the current release, any more recent beta-test release, together
  ! with details of mirror web and anonymous ftp sites.
    
    <P>
    
  ***************
  *** 153,159 ****
    
    In addition to these three files, the server behavior can be configured
    on a directory-by-directory basis by using <CODE>.htaccess</CODE>
  ! files in directories accessed by the server. 
    
    <H3>Starting and Stopping the Server</H3>
    
  --- 153,159 ----
    
    In addition to these three files, the server behavior can be configured
    on a directory-by-directory basis by using <CODE>.htaccess</CODE>
  ! files in directories accessed by the server.
    
    <H3>Starting and Stopping the Server</H3>
    
  ***************
  *** 170,176 ****
    If all goes well this will return to the command prompt almost
    immediately.  This indicates that the server is now up and running. If
    anything goes wrong during the initialization of the server you will
  ! see an error message on the screen. 
    
    If the server started ok, you can now use your browser to
    connect to the server and read the documentation. If you are running
  --- 170,176 ----
    If all goes well this will return to the command prompt almost
    immediately.  This indicates that the server is now up and running. If
    anything goes wrong during the initialization of the server you will
  ! see an error message on the screen.
    
    If the server started ok, you can now use your browser to
    connect to the server and read the documentation. If you are running
  ***************
  *** 187,193 ****
    <i>child</i> processes to handle the requests. If you started Apache
    as the root user, the parent process will continue to run as root
    while the children will change to the user as given in the httpd.conf
  ! file. 
    
    <P>
    
  --- 187,193 ----
    <i>child</i> processes to handle the requests. If you started Apache
    as the root user, the parent process will continue to run as root
    while the children will change to the user as given in the httpd.conf
  ! file.
    
    <P>
    
  
  
  
  1.12      +3 -3      apache/htdocs/manual/invoking.html
  
  Index: invoking.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/invoking.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -C3 -r1.11 -r1.12
  *** invoking.html     1997/06/04 11:07:49     1.11
  --- invoking.html     1997/07/06 17:18:54     1.12
  ***************
  *** 18,27 ****
    <h2>Invoking Apache</h2>
    The <code>httpd</code> program is usually run as a daemon which executes
    continuously, handling requests.  It is possible to invoke Apache by
  ! the Internet daemon <code>inetd</code> each time a connection to the HTTP 
  ! service is made (use the 
    <A HREF="mod/core.html#servertype">ServerType</A> directive)
  ! but this is not recommended.  
    
    <h2>Command line options</h2>
    The following options are recognized on the httpd command line:
  --- 18,27 ----
    <h2>Invoking Apache</h2>
    The <code>httpd</code> program is usually run as a daemon which executes
    continuously, handling requests.  It is possible to invoke Apache by
  ! the Internet daemon <code>inetd</code> each time a connection to the HTTP
  ! service is made (use the
    <A HREF="mod/core.html#servertype">ServerType</A> directive)
  ! but this is not recommended.
    
    <h2>Command line options</h2>
    The following options are recognized on the httpd command line:
  
  
  
  1.8       +1 -3      apache/htdocs/manual/man-template.html
  
  Index: man-template.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/man-template.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** man-template.html 1997/07/06 14:54:44     1.7
  --- man-template.html 1997/07/06 17:18:54     1.8
  ***************
  *** 41,48 ****
    <BLOCKQUOTE><EM>Add these directives to the list in
    directives.html</EM></BLOCKQUOTE>
    
  !   <HR>
  ! 
      <H2><A NAME="adirective">ADirective directive</A></H2>
      <P>
      <STRONG>Syntax:</STRONG> ADirective <EM>some args</EM>
  --- 41,47 ----
    <BLOCKQUOTE><EM>Add these directives to the list in
    directives.html</EM></BLOCKQUOTE>
    
  !   <HR> <!-- the HR is part of the directive description -->
      <H2><A NAME="adirective">ADirective directive</A></H2>
      <P>
      <STRONG>Syntax:</STRONG> ADirective <EM>some args</EM>
  ***************
  *** 74,80 ****
      <P>
      The ADirective directive does something.
      </P>
  -   <HR>
    
    <!--#include virtual="footer.html" -->
     </BODY>
  --- 73,78 ----
  
  
  
  1.6       +2 -2      apache/htdocs/manual/multilogs.html
  
  Index: multilogs.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/multilogs.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -C3 -r1.5 -r1.6
  *** multilogs.html    1997/06/04 11:07:50     1.5
  --- multilogs.html    1997/07/06 17:18:55     1.6
  ***************
  *** 44,50 ****
    <p>
    
    The new <code>CustomLog</code> directive takes both a filename to log
  ! to, and a log file format. 
    
    <hr>
    
  --- 44,50 ----
    <p>
    
    The new <code>CustomLog</code> directive takes both a filename to log
  ! to, and a log file format.
    
    <hr>
    
  ***************
  *** 104,110 ****
    &lt;/VirtualHost&gt;
    </pre>
    
  ! Since no TransferLog or CustomLog directives appear inside the 
    &lt;VirtualHost&gt; section, any requests for this virtual host
    will be logged in the main server's log files. If however the
    directive
  --- 104,110 ----
    &lt;/VirtualHost&gt;
    </pre>
    
  ! Since no TransferLog or CustomLog directives appear inside the
    &lt;VirtualHost&gt; section, any requests for this virtual host
    will be logged in the main server's log files. If however the
    directive
  
  
  
  1.7       +1 -1      apache/htdocs/manual/new_features_1_0.html
  
  Index: new_features_1_0.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/new_features_1_0.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** new_features_1_0.html     1997/06/04 11:07:50     1.6
  --- new_features_1_0.html     1997/07/06 17:18:55     1.7
  ***************
  *** 54,60 ****
    "spare" - every couple of seconds the parent checks the actual number
    of spare servers and adjusts accordingly.  This should keep the number
    of servers concurrently running relatively low while still ensuring
  ! minimal forking.  
    
    <P>
    
  --- 54,60 ----
    "spare" - every couple of seconds the parent checks the actual number
    of spare servers and adjusts accordingly.  This should keep the number
    of servers concurrently running relatively low while still ensuring
  ! minimal forking.
    
    <P>
    
  
  
  
  1.32      +7 -6      apache/htdocs/manual/new_features_1_2.html
  
  Index: new_features_1_2.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/new_features_1_2.html,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -C3 -r1.31 -r1.32
  *** new_features_1_2.html     1997/07/06 14:54:44     1.31
  --- new_features_1_2.html     1997/07/06 17:18:56     1.32
  ***************
  *** 45,51 ****
    
    <ul>
    
  ! <li><b><a href="http11.html">HTTP/1.1 Compliance</a></b>
    [Documentation to be written]<br>
    Aside from the optional proxy module (which operates as HTTP/1.0),
    Apache is conditionally compliant with the HTTP/1.1 proposed standard,
  --- 45,52 ----
    
    <ul>
    
  ! <!-- change the "name" to an "href" if/when there's such a document -->
  ! <li><b><a name="http11.html">HTTP/1.1 Compliance</a></b>
    [Documentation to be written]<br>
    Aside from the optional proxy module (which operates as HTTP/1.0),
    Apache is conditionally compliant with the HTTP/1.1 proposed standard,
  ***************
  *** 66,72 ****
    
    <li><b><a href="mod/core.html#files">File-based and Regex-enabled
    Directive Sections</a></b><br>
  ! The new 
    <a href="mod/core.html#files"><code>&lt;Files&gt;</code></a>
    section allows directives to be enabled based on full filename, not just 
directory and URL. In
    addition, <code>&lt;Files&gt;</code> sections can appear in
  --- 67,73 ----
    
    <li><b><a href="mod/core.html#files">File-based and Regex-enabled
    Directive Sections</a></b><br>
  ! The new
    <a href="mod/core.html#files"><code>&lt;Files&gt;</code></a>
    section allows directives to be enabled based on full filename, not just 
directory and URL. In
    addition, <code>&lt;Files&gt;</code> sections can appear in
  ***************
  *** 74,80 ****
    <a href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>
     and <a href="mod/core.html#location"><code>&lt;Location&gt;</code></a>, can
    also now be based on regular expressions, not just simple prefix
  ! matching. 
    
    <li><b><a href="mod/mod_browser.html">Browser-based Environment
    Variables</a></b><br>
  --- 75,81 ----
    <a href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>
     and <a href="mod/core.html#location"><code>&lt;Location&gt;</code></a>, can
    also now be based on regular expressions, not just simple prefix
  ! matching.
    
    <li><b><a href="mod/mod_browser.html">Browser-based Environment
    Variables</a></b><br>
  ***************
  *** 99,105 ****
    The optional <code>mod_log_config</code> included with earlier
    versions of Apache is now standard, and has been enhanced to allow
    logging of much more detail about the transaction, and can be used to
  ! open <a href="multilogs.html">more than one log file</a> at once 
    (each of which can have a different log format).  If you have Apache
    write any logs to a directory which is writable by anyone other than
    the user that starts the server, see the <A HREF="misc/security_tips.html">
  --- 100,106 ----
    The optional <code>mod_log_config</code> included with earlier
    versions of Apache is now standard, and has been enhanced to allow
    logging of much more detail about the transaction, and can be used to
  ! open <a href="multilogs.html">more than one log file</a> at once
    (each of which can have a different log format).  If you have Apache
    write any logs to a directory which is writable by anyone other than
    the user that starts the server, see the <A HREF="misc/security_tips.html">
  ***************
  *** 138,144 ****
    
    <li><b><a href="mod/mod_alias.html">Redirect Directive Can Return Alternate 
Status</a></b><br>
        The Redirect directive can return permanent or temporary redirects,
  !     "Gone" or "See Other" HTTP status. For NCSA-compatibility, 
        RedirectTemp and RedirectPermanent are also implemented.
    
    <li><b><a href="install.html">Simplified Compilation</a></b><br>
  --- 139,145 ----
    
    <li><b><a href="mod/mod_alias.html">Redirect Directive Can Return Alternate 
Status</a></b><br>
        The Redirect directive can return permanent or temporary redirects,
  !     "Gone" or "See Other" HTTP status. For NCSA-compatibility,
        RedirectTemp and RedirectPermanent are also implemented.
    
    <li><b><a href="install.html">Simplified Compilation</a></b><br>
  ***************
  *** 171,177 ****
    now have a syntax compatible with the NCSA server.
    
    <li><b><a href="mod/core.html#satisfy">NCSA Satisfy authentication
  ! directive now implemented</a></b><br> 
    <code>Satisfy</code> allows for more flexible access control
    configurations.
    
  --- 172,178 ----
    now have a syntax compatible with the NCSA server.
    
    <li><b><a href="mod/core.html#satisfy">NCSA Satisfy authentication
  ! directive now implemented</a></b><br>
    <code>Satisfy</code> allows for more flexible access control
    configurations.
    
  
  
  
  1.3       +25 -4     apache/htdocs/manual/new_features_1_3.html
  
  Index: new_features_1_3.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/new_features_1_3.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -C3 -r1.2 -r1.3
  *** new_features_1_3.html     1997/07/06 14:54:45     1.2
  --- new_features_1_3.html     1997/07/06 17:18:56     1.3
  ***************
  *** 19,44 ****
    functionality. Because the core code has changed so
    significantly, there are certain liberties that earlier versions of
    Apache (and the NCSA daemon) took that recent Apache versions are
  ! pickier about - please check the 
    <a href="misc/compat_notes.html">compatibility notes</a> if you have any
    problems.</p>
    <hr>
    
    <p>In addition to a number of bug fixes and internal performance
    enhancements, <a href="http://www.apache.org/dist/";>Apache
  ! 1.2</a> has the following specific new user features:</p>
    
    <ul>
    
    <li><b><a href="nt.html">Support for Windows NT/95</a></b>
  ! [Documentation to be written]<br>
  ! 
    Apache now supports the Windows NT and Windows 95 operating systems,
    as well as the Unix systems supported in previos releases. Although the
    Windows version of Apache may not be perform as well as on the Unix
    systems for which Apache was originally written, the ability to run on
    Windows gives Apache the ability to run on a large number of web
    servers it was not previously able to.
    
    </ul>
    
  --- 19,65 ----
    functionality. Because the core code has changed so
    significantly, there are certain liberties that earlier versions of
    Apache (and the NCSA daemon) took that recent Apache versions are
  ! pickier about - please check the
    <a href="misc/compat_notes.html">compatibility notes</a> if you have any
    problems.</p>
    <hr>
    
    <p>In addition to a number of bug fixes and internal performance
    enhancements, <a href="http://www.apache.org/dist/";>Apache
  ! 1.3</a> has the following specific new user features:</p>
    
    <ul>
    
    <li><b><a href="nt.html">Support for Windows NT/95</a></b>
  ! [Documentation to be written]
  ! <P>
    Apache now supports the Windows NT and Windows 95 operating systems,
    as well as the Unix systems supported in previos releases. Although the
    Windows version of Apache may not be perform as well as on the Unix
    systems for which Apache was originally written, the ability to run on
    Windows gives Apache the ability to run on a large number of web
    servers it was not previously able to.
  + </P>
  +  </LI><STRONG>Support for Directory Icon Sizing</STRONG>
  +   <P>
  +   The
  +   <A
  +    HREF="mod/mod_dir.html"
  +   ><SAMP>mod_dir</SAMP></A>
  +   module provides listings of directory contents when appropriate.  If
  +   the <SAMP>FancyIndexing</SAMP> option is enabled, each file in the
  +   list is preceded by an icon representing the content type.  In earlier
  +   versions of Apache, the HTML <SAMP>IMG</SAMP> tags for these icons
  +   weren't sized, so the browser had to wait until the images were loaded
  +   before it could lay out the page.  With 1.3, the
  +   <A
  +    HREF="mod/mod_dir.html#indexoptions"
  +   ><SAMP>IndexOptions</SAMP></A>
  +   directive has two new keywords which allow you to control whether
  +   pre-sized <SAMP>IMG</SAMP> tags are used.  This can substantially
  +   speed up the display of large directory listings.
  +   </P>
  +  </LI>
    
    </ul>
    
  
  
  
  1.10      +1 -1      apache/htdocs/manual/process-model.html
  
  Index: process-model.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/process-model.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** process-model.html        1997/06/24 18:39:31     1.9
  --- process-model.html        1997/07/06 17:18:56     1.10
  ***************
  *** 24,30 ****
    "spare" - every couple of seconds the parent checks the actual number
    of spare servers and adjusts accordingly.  This should keep the number
    of servers concurrently running relatively low while still ensuring
  ! minimal forking.  
    
    <P>
    
  --- 24,30 ----
    "spare" - every couple of seconds the parent checks the actual number
    of spare servers and adjusts accordingly.  This should keep the number
    of servers concurrently running relatively low while still ensuring
  ! minimal forking.
    
    <P>
    
  
  
  
  1.13      +18 -18    apache/htdocs/manual/suexec.html
  
  Index: suexec.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/suexec.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -C3 -r1.12 -r1.13
  *** suexec.html       1997/06/24 18:39:31     1.12
  --- suexec.html       1997/07/06 17:18:56     1.13
  ***************
  *** 25,31 ****
            <LI><A HREF="#enable">Enabling &amp; Disabling suEXEC</A></LI>
            <LI><A HREF="#debug">Debugging suEXEC</A></LI>
            <LI><A HREF="#jabberwock">Beware the Jabberwock: Warnings &amp;
  !          Examples</A></LI> 
    </OL>
    </P>
    
  --- 25,31 ----
            <LI><A HREF="#enable">Enabling &amp; Disabling suEXEC</A></LI>
            <LI><A HREF="#debug">Debugging suEXEC</A></LI>
            <LI><A HREF="#jabberwock">Beware the Jabberwock: Warnings &amp;
  !          Examples</A></LI>
    </OL>
    </P>
    
  ***************
  *** 43,51 ****
    with allowing users to develop and run private CGI or SSI programs.  
However,
    if suEXEC is improperly configured, it can cause any number of problems and
    possibly create new holes in your computer's security.  If you aren't 
familiar
  ! with managing setuid root programs and the security issues they present, we 
    highly recommend that you not consider using suEXEC.
  ! </P> 
    
    <P ALIGN="CENTER">
    <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG>
  --- 43,51 ----
    with allowing users to develop and run private CGI or SSI programs.  
However,
    if suEXEC is improperly configured, it can cause any number of problems and
    possibly create new holes in your computer's security.  If you aren't 
familiar
  ! with managing setuid root programs and the security issues they present, we
    highly recommend that you not consider using suEXEC.
  ! </P>
    
    <P ALIGN="CENTER">
    <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG>
  ***************
  *** 65,71 ****
    </P>
    
    <P ALIGN="LEFT">
  ! Second, it is assumed you are familiar with some basic concepts of your 
    computer's security and its administration.  This involves an understanding
    of <STRONG>setuid/setgid</STRONG> operations and the various effects they
    may have on your system and its level of security.
  --- 65,71 ----
    </P>
    
    <P ALIGN="LEFT">
  ! Second, it is assumed you are familiar with some basic concepts of your
    computer's security and its administration.  This involves an understanding
    of <STRONG>setuid/setgid</STRONG> operations and the various effects they
    may have on your system and its level of security.
  ***************
  *** 76,89 ****
    version of suEXEC code.  All code for suEXEC has been carefully scrutinized 
and
    tested by the developers as well as numerous beta testers.  Every 
precaution has
    been taken to ensure a simple yet solidly safe base of code.  Altering this
  ! code can cause unexpected problems and new security risks.  It is 
  ! <STRONG>highly</STRONG> recommended you not alter the suEXEC code unless 
you 
    are well versed in the particulars of security programming and are willing 
to
    share your work with the Apache Group for consideration.
    </P>
    
    <P ALIGN="LEFT">
  ! Fourth, and last, it has been the decision of the Apache Group to 
    <STRONG>NOT</STRONG> make suEXEC part of the default installation of Apache.
    To this end, suEXEC configuration is a manual process requiring of the
    administrator careful attention to details.  It is through this process
  --- 76,89 ----
    version of suEXEC code.  All code for suEXEC has been carefully scrutinized 
and
    tested by the developers as well as numerous beta testers.  Every 
precaution has
    been taken to ensure a simple yet solidly safe base of code.  Altering this
  ! code can cause unexpected problems and new security risks.  It is
  ! <STRONG>highly</STRONG> recommended you not alter the suEXEC code unless you
    are well versed in the particulars of security programming and are willing 
to
    share your work with the Apache Group for consideration.
    </P>
    
    <P ALIGN="LEFT">
  ! Fourth, and last, it has been the decision of the Apache Group to
    <STRONG>NOT</STRONG> make suEXEC part of the default installation of Apache.
    To this end, suEXEC configuration is a manual process requiring of the
    administrator careful attention to details.  It is through this process
  ***************
  *** 112,118 ****
    called by the main Apache web server.  This wrapper is called when an HTTP
    request is made for a CGI or SSI program that the administrator has 
designated
    to run as a userid other than that of the main server.  When such a request
  ! is made, Apache provides the suEXEC wrapper with the program's name and the 
    user and group IDs under which the program is to execute.
    </P>
    
  --- 112,118 ----
    called by the main Apache web server.  This wrapper is called when an HTTP
    request is made for a CGI or SSI program that the administrator has 
designated
    to run as a userid other than that of the main server.  When such a request
  ! is made, Apache provides the suEXEC wrapper with the program's name and the
    user and group IDs under which the program is to execute.
    </P>
    
  ***************
  *** 299,313 ****
         #define GID_MIN 100
    
         /*
  !       * USERDIR_SUFFIX -- Define to be the subdirectory under users' 
          *                   home directories where suEXEC access should
          *                   be allowed.  All executables under this directory
  !       *                   will be executable by suEXEC as the user so 
  !       *                   they should be "safe" programs.  If you are 
  !       *                   using a "simple" UserDir directive (ie. one 
  !       *                   without a "*" in it) this should be set to 
          *                   the same value.  suEXEC will not work properly
  !       *                   in cases where the UserDir directive points to 
          *                   a location that is not the same as the user's
          *                   home directory as referenced in the passwd file.
          *
  --- 299,313 ----
         #define GID_MIN 100
    
         /*
  !       * USERDIR_SUFFIX -- Define to be the subdirectory under users'
          *                   home directories where suEXEC access should
          *                   be allowed.  All executables under this directory
  !       *                   will be executable by suEXEC as the user so
  !       *                   they should be "safe" programs.  If you are
  !       *                   using a "simple" UserDir directive (ie. one
  !       *                   without a "*" in it) this should be set to
          *                   the same value.  suEXEC will not work properly
  !       *                   in cases where the UserDir directive points to
          *                   a location that is not the same as the user's
          *                   home directory as referenced in the passwd file.
          *
  ***************
  *** 345,351 ****
    
    <P ALIGN="LEFT">
    <STRONG>COMPILING THE SUEXEC WRAPPER</STRONG><BR>
  ! You now need to compile the suEXEC wrapper.  At the shell command prompt, 
    type:&nbsp;&nbsp;<STRONG><CODE>cc suexec.c -o suexec 
[ENTER]</CODE></STRONG>.
    This should create the <STRONG><em>suexec</em></STRONG> wrapper executable.
    </P>
  --- 345,351 ----
    
    <P ALIGN="LEFT">
    <STRONG>COMPILING THE SUEXEC WRAPPER</STRONG><BR>
  ! You now need to compile the suEXEC wrapper.  At the shell command prompt,
    type:&nbsp;&nbsp;<STRONG><CODE>cc suexec.c -o suexec 
[ENTER]</CODE></STRONG>.
    This should create the <STRONG><em>suexec</em></STRONG> wrapper executable.
    </P>
  ***************
  *** 382,389 ****
    </P>
    
    <P ALIGN="LEFT">
  ! In order for the wrapper to set the user ID, it must me installed as owner 
  ! <STRONG><em>root</em></STRONG> and must have the setuserid execution bit 
    set for file modes.  If you are not running a <STRONG><em>root</em></STRONG>
    user shell, do so now and execute the following commands.
    </P>
  --- 382,389 ----
    </P>
    
    <P ALIGN="LEFT">
  ! In order for the wrapper to set the user ID, it must me installed as owner
  ! <STRONG><em>root</em></STRONG> and must have the setuserid execution bit
    set for file modes.  If you are not running a <STRONG><em>root</em></STRONG>
    user shell, do so now and execute the following commands.
    </P>
  ***************
  *** 447,453 ****
    <P ALIGN="LEFT">
    The suEXEC wrapper will write log information to the location defined in
    the <code>suexec.h</code> as indicated above. If you feel you have
  ! configured and installed the wrapper properly, have a look at this log 
    and the error_log for the server to see where you may have gone astray.
    </P>
    
  --- 447,453 ----
    <P ALIGN="LEFT">
    The suEXEC wrapper will write log information to the location defined in
    the <code>suexec.h</code> as indicated above. If you feel you have
  ! configured and installed the wrapper properly, have a look at this log
    and the error_log for the server to see where you may have gone astray.
    </P>
    
  
  
  
  1.12      +3 -3      apache/htdocs/manual/vhosts-in-depth.html
  
  Index: vhosts-in-depth.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -C3 -r1.11 -r1.12
  *** vhosts-in-depth.html      1997/07/06 14:54:45     1.11
  --- vhosts-in-depth.html      1997/07/06 17:18:57     1.12
  ***************
  *** 143,149 ****
        the final setting of that value is in the main_server.)
    
    <li>The &quot;lookup defaults&quot; that define the default directory
  !     permissions 
        for a vhost are merged with those of the main server.  This includes
        any per-directory configuration information for any module.
    
  --- 143,149 ----
        the final setting of that value is in the main_server.)
    
    <li>The &quot;lookup defaults&quot; that define the default directory
  !     permissions
        for a vhost are merged with those of the main server.  This includes
        any per-directory configuration information for any module.
    
  ***************
  *** 218,224 ****
    the connection vhost.  If it does then the hostname portion of the URI
    is saved as the <EM>request_hostname</EM>.  If it does not match, then the
    URI remains untouched.  <STRONG>Note</STRONG>: to achieve this address
  ! comparison, 
    the hostname supplied goes through a DNS lookup unless it matches the
    <code>ServerName</code> or the local IP address of the client's socket.
    
  --- 218,224 ----
    the connection vhost.  If it does then the hostname portion of the URI
    is saved as the <EM>request_hostname</EM>.  If it does not match, then the
    URI remains untouched.  <STRONG>Note</STRONG>: to achieve this address
  ! comparison,
    the hostname supplied goes through a DNS lookup unless it matches the
    <code>ServerName</code> or the local IP address of the client's socket.
    
  ***************
  *** 301,307 ****
        If you do have a <SAMP>_default_</SAMP> vhost, then you cannot place
        named-based vhosts after it in the config.  This is because on any
        connection to the main server IPs the connection vhost will always be
  !     the <SAMP>_default_</SAMP> vhost since none of the name-based are 
        considered during <code>find_virtual_server</code>.
        </p>
    
  --- 301,307 ----
        If you do have a <SAMP>_default_</SAMP> vhost, then you cannot place
        named-based vhosts after it in the config.  This is because on any
        connection to the main server IPs the connection vhost will always be
  !     the <SAMP>_default_</SAMP> vhost since none of the name-based are
        considered during <code>find_virtual_server</code>.
        </p>
    
  
  
  
  1.14      +4 -4      apache/htdocs/manual/virtual-host.html
  
  Index: virtual-host.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/virtual-host.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -C3 -r1.13 -r1.14
  *** virtual-host.html 1997/06/24 18:39:32     1.13
  --- virtual-host.html 1997/07/06 17:18:57     1.14
  ***************
  *** 66,72 ****
    <ul>
    <li>The different virtual hosts need very different httpd configurations, 
such
       as different values for: <A 
HREF="mod/core.html#servertype">ServerType</A>,
  !    <A HREF="mod/core.html#user">User</A>, 
       <A HREF="mod/core.html#group">Group</A>,
       <A HREF="mod/mod_mime.html#typesconfig">TypesConfig</A> or
       <A HREF="mod/core.html#serverroot">ServerRoot</A>.
  --- 66,72 ----
    <ul>
    <li>The different virtual hosts need very different httpd configurations, 
such
       as different values for: <A 
HREF="mod/core.html#servertype">ServerType</A>,
  !    <A HREF="mod/core.html#user">User</A>,
       <A HREF="mod/core.html#group">Group</A>,
       <A HREF="mod/mod_mime.html#typesconfig">TypesConfig</A> or
       <A HREF="mod/core.html#serverroot">ServerRoot</A>.
  ***************
  *** 154,160 ****
    may be used by a process; the limit is typically 64, and may usually be
    increased up to a large hard-limit.
    <p>
  ! Although Apache attempts to increase the limit as required, this 
    may not work if:
    <ol>
    <li>Your system does not provide the setrlimit() system call.
  --- 154,160 ----
    may be used by a process; the limit is typically 64, and may usually be
    increased up to a large hard-limit.
    <p>
  ! Although Apache attempts to increase the limit as required, this
    may not work if:
    <ol>
    <li>Your system does not provide the setrlimit() system call.
  ***************
  *** 181,189 ****
    for the root process. This will exhibit itself as errors in the error log 
like
    "unable to fork". There are two ways you can bump this up:
    
  ! <OL> 
    <LI>Have a <code>csh</code> script wrapper around httpd which sets the
  ! "rlimit" to some large number, like 512.  
    <LI>Edit http_main.c to add calls to setrlimit() from main(), along the 
lines of
    <PRE>
            struct rlimit rlp;
  --- 181,189 ----
    for the root process. This will exhibit itself as errors in the error log 
like
    "unable to fork". There are two ways you can bump this up:
    
  ! <OL>
    <LI>Have a <code>csh</code> script wrapper around httpd which sets the
  ! "rlimit" to some large number, like 512.
    <LI>Edit http_main.c to add calls to setrlimit() from main(), along the 
lines of
    <PRE>
            struct rlimit rlp;
  
  
  
  1.10      +23 -23    apache/htdocs/manual/misc/API.html
  
  Index: API.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/API.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** API.html  1997/07/06 14:54:47     1.9
  --- API.html  1997/07/06 17:19:04     1.10
  ***************
  *** 59,65 ****
    
    <h2><a name="basics">Basic concepts.</a></h2>
    
  ! We begin with an overview of the basic concepts behind the 
    API, and how they are manifested in the code.
    
    <h3><a name="HMR">Handlers, Modules, and Requests</a></h3>
  --- 59,65 ----
    
    <h2><a name="basics">Basic concepts.</a></h2>
    
  ! We begin with an overview of the basic concepts behind the
    API, and how they are manifested in the code.
    
    <h3><a name="HMR">Handlers, Modules, and Requests</a></h3>
  ***************
  *** 78,84 ****
      <li> `Fixups' --- there aren't any of these yet, but the phase is
           intended as a hook for possible extensions like
           <code>SetEnv</code>, which don't really fit well elsewhere.
  !   <li> Actually sending a response back to the client.  
      <li> Logging the request
    </ul>
    
  --- 78,84 ----
      <li> `Fixups' --- there aren't any of these yet, but the phase is
           intended as a hook for possible extensions like
           <code>SetEnv</code>, which don't really fit well elsewhere.
  !   <li> Actually sending a response back to the client.
      <li> Logging the request
    </ul>
    
  ***************
  *** 89,95 ****
    
    <ul>
      <li> <em>Handle</em> the request, and indicate that it has done so
  !        by returning the magic constant <code>OK</code>.  
      <li> <em>Decline</em> to handle the request, by returning the magic
           integer constant <code>DECLINED</code>.  In this case, the
           server behaves in all respects as if the handler simply hadn't
  --- 89,95 ----
    
    <ul>
      <li> <em>Handle</em> the request, and indicate that it has done so
  !        by returning the magic constant <code>OK</code>.
      <li> <em>Decline</em> to handle the request, by returning the magic
           integer constant <code>DECLINED</code>.  In this case, the
           server behaves in all respects as if the handler simply hadn't
  ***************
  *** 160,166 ****
    (such as <code>ScriptAlias</code>).
    
    With no further ado, the module itself:
  !  
    <pre>
    /* Declarations of handlers. */
    
  --- 160,166 ----
    (such as <code>ScriptAlias</code>).
    
    With no further ado, the module itself:
  ! 
    <pre>
    /* Declarations of handlers. */
    
  ***************
  *** 273,289 ****
      server_rec *server;
    
      /* What object is being requested */
  !   
      char *uri;
      char *filename;
      char *path_info;
      char *args;           /* QUERY_ARGS, if any */
      struct stat finfo;    /* Set by server core;
                             * st_mode set to zero if no such file */
  !   
      char *content_type;
      char *content_encoding;
  !   
      /* MIME header environments, in and out.  Also, an array containing
       * environment variables to be passed to subprocesses, so people can
       * write modules to add to that environment.
  --- 273,289 ----
      server_rec *server;
    
      /* What object is being requested */
  ! 
      char *uri;
      char *filename;
      char *path_info;
      char *args;           /* QUERY_ARGS, if any */
      struct stat finfo;    /* Set by server core;
                             * st_mode set to zero if no such file */
  ! 
      char *content_type;
      char *content_encoding;
  ! 
      /* MIME header environments, in and out.  Also, an array containing
       * environment variables to be passed to subprocesses, so people can
       * write modules to add to that environment.
  ***************
  *** 293,306 ****
       * redirects (so the headers printed for ErrorDocument handlers will
       * have them).
       */
  !   
      table *headers_in;
      table *headers_out;
      table *err_headers_out;
      table *subprocess_env;
    
      /* Info about the request itself... */
  !   
      int header_only;     /* HEAD request, as opposed to GET */
      char *protocol;      /* Protocol, as given to us, or HTTP/0.9 */
      char *method;        /* GET, HEAD, POST, etc. */
  --- 293,306 ----
       * redirects (so the headers printed for ErrorDocument handlers will
       * have them).
       */
  ! 
      table *headers_in;
      table *headers_out;
      table *err_headers_out;
      table *subprocess_env;
    
      /* Info about the request itself... */
  ! 
      int header_only;     /* HEAD request, as opposed to GET */
      char *protocol;      /* Protocol, as given to us, or HTTP/0.9 */
      char *method;        /* GET, HEAD, POST, etc. */
  ***************
  *** 321,330 ****
       * These are config vectors, with one void* pointer for each module
       * (the thing pointed to being the module's business).
       */
  !   
      void *per_dir_config;   /* Options set in config files, etc. */
      void *request_config;   /* Notes on *this* request */
  !   
    };
    
    </pre>
  --- 321,330 ----
       * These are config vectors, with one void* pointer for each module
       * (the thing pointed to being the module's business).
       */
  ! 
      void *per_dir_config;   /* Options set in config files, etc. */
      void *request_config;   /* Notes on *this* request */
  ! 
    };
    
    </pre>
  ***************
  *** 426,439 ****
    {
        int errstatus;
        FILE *f;
  !     
        if (r-&gt;method_number != M_GET) return DECLINED;
        if (r-&gt;finfo.st_mode == 0) return NOT_FOUND;
    
        if ((errstatus = set_content_length (r, r-&gt;finfo.st_size))
            || (errstatus = set_last_modified (r, r-&gt;finfo.st_mtime)))
            return errstatus;
  !     
        f = fopen (r-&gt;filename, "r");
    
        if (f == NULL) {
  --- 426,439 ----
    {
        int errstatus;
        FILE *f;
  ! 
        if (r-&gt;method_number != M_GET) return DECLINED;
        if (r-&gt;finfo.st_mode == 0) return NOT_FOUND;
    
        if ((errstatus = set_content_length (r, r-&gt;finfo.st_size))
            || (errstatus = set_last_modified (r, r-&gt;finfo.st_mtime)))
            return errstatus;
  ! 
        f = fopen (r-&gt;filename, "r");
    
        if (f == NULL) {
  ***************
  *** 441,447 ****
                       r-&gt;filename, r);
            return FORBIDDEN;
        }
  !       
        register_timeout ("send", r);
        send_http_header (r);
    
  --- 441,447 ----
                       r-&gt;filename, r);
            return FORBIDDEN;
        }
  ! 
        register_timeout ("send", r);
        send_http_header (r);
    
  ***************
  *** 491,497 ****
    handlers in such cases is the one which was originally built for the
    initial request from the client; note that the bytes_sent field will
    only be correct in the last request in the chain (the one for which a
  ! response was actually sent). 
    
    <h2><a name="pools">Resource allocation and resource pools</a></h2>
    
  --- 491,497 ----
    handlers in such cases is the one which was originally built for the
    initial request from the client; note that the bytes_sent field will
    only be correct in the last request in the chain (the one for which a
  ! response was actually sent).
    
    <h2><a name="pools">Resource allocation and resource pools</a></h2>
    
  ***************
  *** 641,647 ****
    <h3>Other sorts of resources --- cleanup functions</h3>
    
    More text goes here.  Describe the the cleanup primitives in terms of
  ! which the file stuff is implemented; also, <code>spawn_process</code>. 
    
    <h3>Fine control --- creating and dealing with sub-pools, with a note
    on sub-requests</h3>
  --- 641,647 ----
    <h3>Other sorts of resources --- cleanup functions</h3>
    
    More text goes here.  Describe the the cleanup primitives in terms of
  ! which the file stuff is implemented; also, <code>spawn_process</code>.
    
    <h3>Fine control --- creating and dealing with sub-pools, with a note
    on sub-requests</h3>
  ***************
  *** 783,789 ****
    
        new-&gt;forced_types = make_table (p, 4);
        new-&gt;encoding_types = make_table (p, 4);
  !     
        return new;
    }
    </pre>
  --- 783,789 ----
    
        new-&gt;forced_types = make_table (p, 4);
        new-&gt;encoding_types = make_table (p, 4);
  ! 
        return new;
    }
    </pre>
  ***************
  *** 876,884 ****
    
    <pre>
    command_rec mime_cmds[] = {
  ! { "AddType", add_type, NULL, OR_FILEINFO, TAKE2, 
        "a mime type followed by a file extension" },
  ! { "AddEncoding", add_encoding, NULL, OR_FILEINFO, TAKE2, 
        "an encoding (e.g., gzip), followed by a file extension" },
    { NULL }
    };
  --- 876,884 ----
    
    <pre>
    command_rec mime_cmds[] = {
  ! { "AddType", add_type, NULL, OR_FILEINFO, TAKE2,
        "a mime type followed by a file extension" },
  ! { "AddEncoding", add_encoding, NULL, OR_FILEINFO, TAKE2,
        "an encoding (e.g., gzip), followed by a file extension" },
    { NULL }
    };
  ***************
  *** 919,925 ****
           should be present.  If the arguments in the actual config file
           are not as required, this string will be used to help give a
           more specific error message.  (You can safely leave this
  !        <code>NULL</code>). 
    </ul>
    
    Finally, having set this all up, we have to use it.  This is
  --- 919,925 ----
           should be present.  If the arguments in the actual config file
           are not as required, this string will be used to help give a
           more specific error message.  (You can safely leave this
  !        <code>NULL</code>).
    </ul>
    
    Finally, having set this all up, we have to use it.  This is
  ***************
  *** 942,948 ****
            r-&gt;content_type = DIR_MAGIC_TYPE;
            return OK;
        }
  !     
        if((i=rind(fn,'.')) &lt; 0) return DECLINED;
        ++i;
    
  --- 942,948 ----
            r-&gt;content_type = DIR_MAGIC_TYPE;
            return OK;
        }
  ! 
        if((i=rind(fn,'.')) &lt; 0) return DECLINED;
        ++i;
    
  ***************
  *** 961,967 ****
        {
            r-&gt;content_type = type;
        }
  !     
        return OK;
    }
    
  --- 961,967 ----
        {
            r-&gt;content_type = type;
        }
  ! 
        return OK;
    }
    
  ***************
  *** 995,1001 ****
        alias_entry *new = push_array (conf-&gt;redirects);
    
        if (!is_url (url)) return "Redirect to non-URL";
  !     
        new-&gt;fake = f; new-&gt;real = url;
        return NULL;
    }
  --- 995,1001 ----
        alias_entry *new = push_array (conf-&gt;redirects);
    
        if (!is_url (url)) return "Redirect to non-URL";
  ! 
        new-&gt;fake = f; new-&gt;real = url;
        return NULL;
    }
  
  
  
  1.82      +60 -60    apache/htdocs/manual/misc/FAQ.html
  
  Index: FAQ.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -C3 -r1.81 -r1.82
  *** FAQ.html  1997/07/06 14:54:47     1.81
  --- FAQ.html  1997/07/06 17:19:04     1.82
  ***************
  *** 15,21 ****
      <!--#include virtual="header.html" -->
      <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
      <P>
  !   $Revision: 1.81 $ ($Date: 1997/07/06 14:54:47 $)
      </P>
      <P>
      The latest version of this FAQ is always available from the main
  --- 15,21 ----
      <!--#include virtual="header.html" -->
      <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
      <P>
  !   $Revision: 1.82 $ ($Date: 1997/07/06 17:19:04 $)
      </P>
      <P>
      The latest version of this FAQ is always available from the main
  ***************
  *** 85,91 ****
       <LI><A HREF="#why">Why was Apache created?</A>
       </LI>
       <LI><A HREF="#relate">How does The Apache Group's work relate to
  !     other servers?</A> 
       </LI>
       <LI><A HREF="#name">Why the name &quot;Apache&quot;?</A>
       </LI>
  --- 85,91 ----
       <LI><A HREF="#why">Why was Apache created?</A>
       </LI>
       <LI><A HREF="#relate">How does The Apache Group's work relate to
  !     other servers?</A>
       </LI>
       <LI><A HREF="#name">Why the name &quot;Apache&quot;?</A>
       </LI>
  ***************
  *** 116,122 ****
       </LI>
       <LI><A HREF="#premature-script-headers">What does it mean when my
            CGIs fail with &quot;<SAMP>Premature end of script
  !         headers</SAMP>&quot;?</A> 
       </LI>
       <LI><A HREF="#ssi-part-i">How do I enable SSI (parsed HTML)?</A>
       </LI>
  --- 116,122 ----
       </LI>
       <LI><A HREF="#premature-script-headers">What does it mean when my
            CGIs fail with &quot;<SAMP>Premature end of script
  !         headers</SAMP>&quot;?</A>
       </LI>
       <LI><A HREF="#ssi-part-i">How do I enable SSI (parsed HTML)?</A>
       </LI>
  ***************
  *** 147,153 ****
       </LI>
       <LI><A HREF="#cookies1">Why does Apache send a cookie on every 
response?</A>
       </LI>
  !    <LI><A HREF="#cookies2">Why don't my cookies work, I even compiled in 
        <SAMP>mod_cookies</SAMP>?</A>
       </LI>
       <LI><A HREF="#jdk1-and-http1.1">Why do my Java app[let]s give me plain 
text
  --- 147,153 ----
       </LI>
       <LI><A HREF="#cookies1">Why does Apache send a cookie on every 
response?</A>
       </LI>
  !    <LI><A HREF="#cookies2">Why don't my cookies work, I even compiled in
        <SAMP>mod_cookies</SAMP>?</A>
       </LI>
       <LI><A HREF="#jdk1-and-http1.1">Why do my Java app[let]s give me plain 
text
  ***************
  *** 191,197 ****
       <LI><A HREF="#addlog">How do I add browsers and referrers to my
        logs?</A>
       </LI>
  !    <LI><A HREF="#bind8.1">Why do I get an error about an undefined 
        reference to &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
        <SAMP>__inet_*</SAMP> symbols?</A>
       </LI>
  --- 191,197 ----
       <LI><A HREF="#addlog">How do I add browsers and referrers to my
        logs?</A>
       </LI>
  !    <LI><A HREF="#bind8.1">Why do I get an error about an undefined
        reference to &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
        <SAMP>__inet_*</SAMP> symbols?</A>
       </LI>
  ***************
  *** 257,263 ****
      <P>
      To address the concerns of a group of WWW providers and part-time httpd
      programmers that httpd didn't behave as they wanted it to behave.
  !   Apache is an entirely volunteer effort, completely funded by its 
      members, not by commercial sales.
      </P>
      <HR>
  --- 257,263 ----
      <P>
      To address the concerns of a group of WWW providers and part-time httpd
      programmers that httpd didn't behave as they wanted it to behave.
  !   Apache is an entirely volunteer effort, completely funded by its
      members, not by commercial sales.
      </P>
      <HR>
  ***************
  *** 291,297 ****
      For an independent assessment, see
      <A
       HREF="http://webcompare.iworld.com/compare/chart.html";
  !   >Web Compare</A>'s 
      comparison chart.
      </P>
      <P>
  --- 291,297 ----
      For an independent assessment, see
      <A
       HREF="http://webcompare.iworld.com/compare/chart.html";
  !   >Web Compare</A>'s
      comparison chart.
      </P>
      <P>
  ***************
  *** 417,426 ****
        <P>
        Apache tries to be helpful when it encounters a problem.  In many
        cases, it will provide some details by writing one or messages to
  !     the server error log.  Sometimes this is enough for you to diagnose 
        &amp; fix the problem yourself (such as file permissions or the like).
  !     The default location of the error log is 
  !     <SAMP>/usr/local/etc/httpd/logs/error_log</SAMP>, but see the 
        <A
         HREF="../mod/core.html#errorlog"
        ><SAMP>ErrorLog</SAMP></A>
  --- 417,426 ----
        <P>
        Apache tries to be helpful when it encounters a problem.  In many
        cases, it will provide some details by writing one or messages to
  !     the server error log.  Sometimes this is enough for you to diagnose
        &amp; fix the problem yourself (such as file permissions or the like).
  !     The default location of the error log is
  !     <SAMP>/usr/local/etc/httpd/logs/error_log</SAMP>, but see the
        <A
         HREF="../mod/core.html#errorlog"
        ><SAMP>ErrorLog</SAMP></A>
  ***************
  *** 510,516 ****
      NCSA httpd 1.4 and NCSA httpd 1.5.
      </P>
      <P>
  !   NCSA httpd appears to be moving toward adding experimental features 
      which are not generally required at the moment. Some of the experiments
      will succeed while others will inevitably be dropped. The Apache
      philosophy is to add what's needed as and when it is needed.
  --- 510,516 ----
      NCSA httpd 1.4 and NCSA httpd 1.5.
      </P>
      <P>
  !   NCSA httpd appears to be moving toward adding experimental features
      which are not generally required at the moment. Some of the experiments
      will succeed while others will inevitably be dropped. The Apache
      philosophy is to add what's needed as and when it is needed.
  ***************
  *** 577,583 ****
     <LI><A NAME="premature-script-headers">
          <STRONG>What does it mean when my CGIs fail with
          &quot;<SAMP>Premature end of script headers</SAMP>&quot;?</STRONG>
  !      </A> 
      <P>
      It means just what it says: the server was expecting a complete set of
      HTTP headers (one or more followed by a blank line), and didn't get
  --- 577,583 ----
     <LI><A NAME="premature-script-headers">
          <STRONG>What does it mean when my CGIs fail with
          &quot;<SAMP>Premature end of script headers</SAMP>&quot;?</STRONG>
  !      </A>
      <P>
      It means just what it says: the server was expecting a complete set of
      HTTP headers (one or more followed by a blank line), and didn't get
  ***************
  *** 594,600 ****
      <P>
      The second most common cause of this (aside from people not
      outputting the required headers at all) is a result of an interaction
  !   with Perl's output buffering.  To make Perl flush its buffers 
      after each output statement, insert the following statements around
      the <CODE>print</CODE> or <CODE>write</CODE> statements that send your
      HTTP headers:
  --- 594,600 ----
      <P>
      The second most common cause of this (aside from people not
      outputting the required headers at all) is a result of an interaction
  !   with Perl's output buffering.  To make Perl flush its buffers
      after each output statement, insert the following statements around
      the <CODE>print</CODE> or <CODE>write</CODE> statements that send your
      HTTP headers:
  ***************
  *** 615,621 ****
      </DL>
      </P>
      <P>
  !   This is generally only necessary when you are calling external 
      programs from your script that send output to stdout, or if there will
      be a long delay between the time the headers are sent and the actual
      content starts being emitted.  To maximise performance, you should
  --- 615,621 ----
      </DL>
      </P>
      <P>
  !   This is generally only necessary when you are calling external
      programs from your script that send output to stdout, or if there will
      be a long delay between the time the headers are sent and the actual
      content starts being emitted.  To maximise performance, you should
  ***************
  *** 625,631 ****
      </P>
      <P>
      If your script isn't written in Perl, do the equivalent thing for
  !   whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call 
      <CODE>fflush()</CODE> after writing the headers).
      </P>
      <HR>
  --- 625,631 ----
      </P>
      <P>
      If your script isn't written in Perl, do the equivalent thing for
  !   whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call
      <CODE>fflush()</CODE> after writing the headers).
      </P>
      <HR>
  ***************
  *** 637,643 ****
      SSI (an acronym for Server-Side Include) directives allow static HTML
      documents to be enhanced at run-time (<EM>e.g.</EM>, when delivered to
      a client by Apache).  The format of SSI directives is covered
  !   in the <A HREF="../mod/mod_include.html">mod_include manual</A>; 
      suffice it to say that Apache supports not only SSI but
      xSSI (eXtended SSI) directives.
      </P>
  --- 637,643 ----
      SSI (an acronym for Server-Side Include) directives allow static HTML
      documents to be enhanced at run-time (<EM>e.g.</EM>, when delivered to
      a client by Apache).  The format of SSI directives is covered
  !   in the <A HREF="../mod/mod_include.html">mod_include manual</A>;
      suffice it to say that Apache supports not only SSI but
      xSSI (eXtended SSI) directives.
      </P>
  ***************
  *** 764,770 ****
       HREF="../mod/mod_proxy.html"
      >proxy module</A>.
      If compiled
  !   in, this will make Apache act as a caching-proxy server.  
      </P>
      <HR>
     </LI>
  --- 764,770 ----
       HREF="../mod/mod_proxy.html"
      >proxy module</A>.
      If compiled
  !   in, this will make Apache act as a caching-proxy server.
      </P>
      <HR>
     </LI>
  ***************
  *** 774,780 ****
      <P>
      &quot;Multiviews&quot; is the general name given to the Apache
      server's ability to provide language-specific document variants in
  !   response to a request.  This is documented quite thoroughly in the 
      <A
       HREF="../content-negotiation.html"
       REL="Help"
  --- 774,780 ----
      <P>
      &quot;Multiviews&quot; is the general name given to the Apache
      server's ability to provide language-specific document variants in
  !   response to a request.  This is documented quite thoroughly in the
      <A
       HREF="../content-negotiation.html"
       REL="Help"
  ***************
  *** 793,815 ****
          virtual hosts?</STRONG>
         </A>
      <P>
  !   You are probably running into resource limitations in your 
  !   operating system.  The most common limitation is the 
  !   <EM>per</EM>-process limit on <STRONG>file descriptors</STRONG>, 
  !   which is almost always the cause of problems seen when adding 
  !   virtual hosts.  Apache often does not give an intuitive error 
  !   message because it is normally some library routine (such as 
  !   <CODE>gethostbyname()</CODE>) which needs file descriptors and 
  !   doesn't complain intelligibly when it can't get them.  
      </P>
      <P>
      Each log file requires a file descriptor, which means that if you are
      using separate access and error logs for each virtual host, each
  !   virtual host needs two file descriptors.  Each 
      <A
       HREF="../mod/core.html#listen"
      ><SAMP>Listen</SAMP></A>
  !   directive also needs a file descriptor.  
      </P>
      <P>
      Typical values for &lt;<EM>n</EM>&gt; that we've seen are in
  --- 793,815 ----
          virtual hosts?</STRONG>
         </A>
      <P>
  !   You are probably running into resource limitations in your
  !   operating system.  The most common limitation is the
  !   <EM>per</EM>-process limit on <STRONG>file descriptors</STRONG>,
  !   which is almost always the cause of problems seen when adding
  !   virtual hosts.  Apache often does not give an intuitive error
  !   message because it is normally some library routine (such as
  !   <CODE>gethostbyname()</CODE>) which needs file descriptors and
  !   doesn't complain intelligibly when it can't get them.
      </P>
      <P>
      Each log file requires a file descriptor, which means that if you are
      using separate access and error logs for each virtual host, each
  !   virtual host needs two file descriptors.  Each
      <A
       HREF="../mod/core.html#listen"
      ><SAMP>Listen</SAMP></A>
  !   directive also needs a file descriptor.
      </P>
      <P>
      Typical values for &lt;<EM>n</EM>&gt; that we've seen are in
  ***************
  *** 828,844 ****
           <A
            HREF="../mod/core.html#listen"
           ><SAMP>Listen</SAMP></A>
  !        directives.  If there are no other servers running on the machine 
           on the same port then you normally don't
           need any Listen directives at all.  By default Apache listens to
           all addresses on port 80.
       </LI>
  !    <LI>Reduce the number of log files.  You can use 
           <A
            HREF="../mod/mod_log_config.html"
           ><SAMP>mod_log_config</SAMP></A>
           to log all requests to a single log file while including the name
  !        of the virtual host in the log file.  You can then write a 
           script to split the logfile into separate files later if
           necessary.
       </LI>
  --- 828,844 ----
           <A
            HREF="../mod/core.html#listen"
           ><SAMP>Listen</SAMP></A>
  !        directives.  If there are no other servers running on the machine
           on the same port then you normally don't
           need any Listen directives at all.  By default Apache listens to
           all addresses on port 80.
       </LI>
  !    <LI>Reduce the number of log files.  You can use
           <A
            HREF="../mod/mod_log_config.html"
           ><SAMP>mod_log_config</SAMP></A>
           to log all requests to a single log file while including the name
  !        of the virtual host in the log file.  You can then write a
           script to split the logfile into separate files later if
           necessary.
       </LI>
  ***************
  *** 877,883 ****
         </A>
      <P>
      On FreeBSD 2.2 and older <SAMP>FD_SETSIZE</SAMP>, which limits the
  !   number of open 
      files on the system, is limited to 256. This can restrict the number of
      virtual hosts you can use; especially if they all use different log
      files. Increasing this limit (and recompiling Apache) is not enough,
  --- 877,883 ----
         </A>
      <P>
      On FreeBSD 2.2 and older <SAMP>FD_SETSIZE</SAMP>, which limits the
  !   number of open
      files on the system, is limited to 256. This can restrict the number of
      virtual hosts you can use; especially if they all use different log
      files. Increasing this limit (and recompiling Apache) is not enough,
  ***************
  *** 972,978 ****
      <P>
      You need to use it with a URL in the form
      &quot;<SAMP>/foo/bar</SAMP>&quot; and not one with a method and
  !   hostname such as &quot;<SAMP>http://host/foo/bar</SAMP>&quot;.  See the 
      <A
       HREF="../mod/core.html#errordocument"
      ><SAMP>ErrorDocument</SAMP></A>
  --- 972,978 ----
      <P>
      You need to use it with a URL in the form
      &quot;<SAMP>/foo/bar</SAMP>&quot; and not one with a method and
  !   hostname such as &quot;<SAMP>http://host/foo/bar</SAMP>&quot;.  See the
      <A
       HREF="../mod/core.html#errordocument"
      ><SAMP>ErrorDocument</SAMP></A>
  ***************
  *** 1000,1006 ****
         </A>
      <P>
      Apache does <EM>not</EM> send automatically send a cookie on every
  !   response, unless you have re-compiled it with the 
      <A
       HREF="../mod/mod_cookies.html"
      ><SAMP>mod_cookies</SAMP></A>
  --- 1000,1006 ----
         </A>
      <P>
      Apache does <EM>not</EM> send automatically send a cookie on every
  !   response, unless you have re-compiled it with the
      <A
       HREF="../mod/mod_cookies.html"
      ><SAMP>mod_cookies</SAMP></A>
  ***************
  *** 1009,1019 ****
      This module may help track users, and uses cookies to do this. If
      you are not using the data generated by <SAMP>mod_cookies</SAMP>, do
      not compile it into Apache. Note that in 1.2 this module was renamed
  !   to the more correct name 
      <A
       HREF="../mod/mod_usertrack.html"
      ><SAMP>mod_usertrack</SAMP></A>,
  !   and cookies 
      have to be specifically enabled with the
      <A
        HREF="../mod/mod_usertrack.html#cookietracking"
  --- 1009,1019 ----
      This module may help track users, and uses cookies to do this. If
      you are not using the data generated by <SAMP>mod_cookies</SAMP>, do
      not compile it into Apache. Note that in 1.2 this module was renamed
  !   to the more correct name
      <A
       HREF="../mod/mod_usertrack.html"
      ><SAMP>mod_usertrack</SAMP></A>,
  !   and cookies
      have to be specifically enabled with the
      <A
        HREF="../mod/mod_usertrack.html#cookietracking"
  ***************
  *** 1128,1134 ****
     <LI><A NAME="nodelay">
          <STRONG>Why am I getting &quot;<SAMP>httpd: could not set socket
          option TCP_NODELAY</SAMP>&quot; in my error log?</STRONG>
  !      </A> 
      <P>
      This message almost always indicates that the client disconnected
      before Apache reached the point of calling <CODE>setsockopt()</CODE>
  --- 1128,1134 ----
     <LI><A NAME="nodelay">
          <STRONG>Why am I getting &quot;<SAMP>httpd: could not set socket
          option TCP_NODELAY</SAMP>&quot; in my error log?</STRONG>
  !      </A>
      <P>
      This message almost always indicates that the client disconnected
      before Apache reached the point of calling <CODE>setsockopt()</CODE>
  ***************
  *** 1140,1146 ****
     <LI><A NAME="peerreset">
          <STRONG>Why am I getting &quot;<SAMP>connection reset by
          peer</SAMP>&quot; in my error log?</STRONG>
  !      </A> 
      <P>
      This is a normal message and nothing about which to be alarmed.  It simply
      means that the client cancelled the connection before it had been
  --- 1140,1146 ----
     <LI><A NAME="peerreset">
          <STRONG>Why am I getting &quot;<SAMP>connection reset by
          peer</SAMP>&quot; in my error log?</STRONG>
  !      </A>
      <P>
      This is a normal message and nothing about which to be alarmed.  It simply
      means that the client cancelled the connection before it had been
  ***************
  *** 1222,1228 ****
      <P>
      <UL>
       <LI>Remove the definition of <CODE>struct iovec</CODE> from your C
  !     library includes.  It is located in 
<CODE>/usr/include/sys/uio.h</CODE>.  
        <STRONG>Or,</STRONG>
       </LI>
       <LI>Add  <CODE>-DNO_WRITEV</CODE> to the <CODE>EXTRA_CFLAGS</CODE>
  --- 1222,1228 ----
      <P>
      <UL>
       <LI>Remove the definition of <CODE>struct iovec</CODE> from your C
  !     library includes.  It is located in <CODE>/usr/include/sys/uio.h</CODE>.
        <STRONG>Or,</STRONG>
       </LI>
       <LI>Add  <CODE>-DNO_WRITEV</CODE> to the <CODE>EXTRA_CFLAGS</CODE>
  ***************
  *** 1241,1249 ****
      In Apache version 1.2, the error log message
      about dumped core includes the directory where the dump file should be
      located.  However, many Unixes do not allow a process that has
  !   called <CODE>setuid()</CODE> to dump core for security reasons; 
  !   the typical Apache setup has the server started as root to bind to 
  !   port 80, after which it changes UIDs to a non-privileged user to 
      serve requests.
      </P>
      <P>
  --- 1241,1249 ----
      In Apache version 1.2, the error log message
      about dumped core includes the directory where the dump file should be
      located.  However, many Unixes do not allow a process that has
  !   called <CODE>setuid()</CODE> to dump core for security reasons;
  !   the typical Apache setup has the server started as root to bind to
  !   port 80, after which it changes UIDs to a non-privileged user to
      serve requests.
      </P>
      <P>
  ***************
  *** 1318,1325 ****
      encryption technology.  If Apache included SSL in the base package,
      its distribution would involve all sorts of legal and bureaucratic
      issues, and it would no longer be freely available.  Also, some of
  !   the technology required to talk to current clients using SSL is 
  !   patented by <A HREF="http://www.rsa.com/";>RSA Data Security</A>, 
      who restricts its use without a license.
      </P>
      <P>
  --- 1318,1325 ----
      encryption technology.  If Apache included SSL in the base package,
      its distribution would involve all sorts of legal and bureaucratic
      issues, and it would no longer be freely available.  Also, some of
  !   the technology required to talk to current clients using SSL is
  !   patented by <A HREF="http://www.rsa.com/";>RSA Data Security</A>,
      who restricts its use without a license.
      </P>
      <P>
  ***************
  *** 1340,1346 ****
      <HR>
     </LI>
     <LI><A NAME="HPUX-core">
  !        <STRONG>Why do I get core dumps under HPUX using HP's ANSI 
                   C compiler?</STRONG>
          </A>
      <P>
  --- 1340,1346 ----
      <HR>
     </LI>
     <LI><A NAME="HPUX-core">
  !        <STRONG>Why do I get core dumps under HPUX using HP's ANSI
                   C compiler?</STRONG>
          </A>
      <P>
  ***************
  *** 1417,1423 ****
        the operating system.
       </LI>
       <LI><STRONG>Your operating system or compiler may be out of
  !     revision.</STRONG> 
        <BR>
        Software vendors (including those that develop operating systems)
        issue new releases for a reason; sometimes to add functionality, but
  --- 1417,1423 ----
        the operating system.
       </LI>
       <LI><STRONG>Your operating system or compiler may be out of
  !     revision.</STRONG>
        <BR>
        Software vendors (including those that develop operating systems)
        issue new releases for a reason; sometimes to add functionality, but
  ***************
  *** 1482,1507 ****
      <HR>
     </LI>
     <LI><A NAME="bind8.1">
  !       <STRONG>Why do I get an error about an undefined reference to 
          &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
          <SAMP>__inet_*</SAMP> symbols?</STRONG>
         </A>
      <P>
      If you have installed <A HREF="http://www.isc.org/bind.html";>BIND-8</A>
      then this is normally due to a conflict between your include files
  !   and your libraries.  BIND-8 installs its include files and libraries 
      <CODE>/usr/local/include/</CODE> and <CODE>/usr/local/lib/</CODE>, while
      the resolver that comes with your system is probably installed in
      <CODE>/usr/include/</CODE> and <CODE>/usr/lib/</CODE>.  If
      your system uses the header files in <CODE>/usr/local/include/</CODE>
      before those in <CODE>/usr/include/</CODE> but you do not use the new
  !   resolver library, then the two versions will conflict.  
      </P>
      <P>
      To resolve this, you can either make sure you use the include files
      and libraries that came with your system or make sure to use the
      new include files and libraries.  Adding <CODE>-lbind</CODE> to the
  !   <CODE>EXTRA_LDFLAGS</CODE> line in your <SAMP>Configuration</SAMP> 
      file, then re-running <SAMP>Configure</SAMP>, should resolve the
      problem.  (Apache versions 1.2.* and earlier use
      <CODE>EXTRA_LFLAGS</CODE> instead.)
  --- 1482,1507 ----
      <HR>
     </LI>
     <LI><A NAME="bind8.1">
  !       <STRONG>Why do I get an error about an undefined reference to
          &quot;<SAMP>__inet_ntoa</SAMP>&quot; or other
          <SAMP>__inet_*</SAMP> symbols?</STRONG>
         </A>
      <P>
      If you have installed <A HREF="http://www.isc.org/bind.html";>BIND-8</A>
      then this is normally due to a conflict between your include files
  !   and your libraries.  BIND-8 installs its include files and libraries
      <CODE>/usr/local/include/</CODE> and <CODE>/usr/local/lib/</CODE>, while
      the resolver that comes with your system is probably installed in
      <CODE>/usr/include/</CODE> and <CODE>/usr/lib/</CODE>.  If
      your system uses the header files in <CODE>/usr/local/include/</CODE>
      before those in <CODE>/usr/include/</CODE> but you do not use the new
  !   resolver library, then the two versions will conflict.
      </P>
      <P>
      To resolve this, you can either make sure you use the include files
      and libraries that came with your system or make sure to use the
      new include files and libraries.  Adding <CODE>-lbind</CODE> to the
  !   <CODE>EXTRA_LDFLAGS</CODE> line in your <SAMP>Configuration</SAMP>
      file, then re-running <SAMP>Configure</SAMP>, should resolve the
      problem.  (Apache versions 1.2.* and earlier use
      <CODE>EXTRA_LFLAGS</CODE> instead.)
  ***************
  *** 1525,1559 ****
      <HR>
     </LI>
     <LI><A NAME="set-servername">
  !       <STRONG>Why does accessing directories only work when I include 
          the trailing "/"
          (<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user/</SAMP>)
  !       but not when I omit it 
          
(<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user</SAMP>)?</STRONG>
         </A>
      <P>
      When you access a directory without a trailing "/", Apache needs
      to send what is called a redirect to the client to tell it to
      add the trailing slash.  If it did not do so, relative URLs would
  !   not work properly.  When it sends the redirect, it needs to know 
      the name of the server so that it can include it in the redirect.
      There are two ways for Apache to find this out; either it can guess,
      or you can tell it.  If your DNS is configured correctly, it can
      normally guess without any problems.  If it is not, however, then
  !   you need to tell it.  
      </P>
      <P>
  !   Add a <A HREF="../mod/core.html#servername">ServerName</A> directive 
      to the config file to tell it what the domain name of the server is.
      </P>
      <HR>
     </LI>
     <LI><A NAME="user-authentication">
  !       <STRONG>How do I set up Apache to require a username and 
          password to access certain documents?</STRONG>
         </A>
      <P>
  !   There are several ways to do this; some of the more popular 
      ones are to use the <A HREF="../mod/mod_auth.html">mod_auth</A>,
      <A HREF="../mod/mod_auth_db.html">mod_auth_db</A>, or
      <A HREF="../mod/mod_auth_dbm.html">mod_auth_dbm</A> modules.
  --- 1525,1559 ----
      <HR>
     </LI>
     <LI><A NAME="set-servername">
  !       <STRONG>Why does accessing directories only work when I include
          the trailing "/"
          (<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user/</SAMP>)
  !       but not when I omit it
          
(<EM>e.g.</EM>,&nbsp;<SAMP>http://foo.domain.com/~user</SAMP>)?</STRONG>
         </A>
      <P>
      When you access a directory without a trailing "/", Apache needs
      to send what is called a redirect to the client to tell it to
      add the trailing slash.  If it did not do so, relative URLs would
  !   not work properly.  When it sends the redirect, it needs to know
      the name of the server so that it can include it in the redirect.
      There are two ways for Apache to find this out; either it can guess,
      or you can tell it.  If your DNS is configured correctly, it can
      normally guess without any problems.  If it is not, however, then
  !   you need to tell it.
      </P>
      <P>
  !   Add a <A HREF="../mod/core.html#servername">ServerName</A> directive
      to the config file to tell it what the domain name of the server is.
      </P>
      <HR>
     </LI>
     <LI><A NAME="user-authentication">
  !       <STRONG>How do I set up Apache to require a username and
          password to access certain documents?</STRONG>
         </A>
      <P>
  !   There are several ways to do this; some of the more popular
      ones are to use the <A HREF="../mod/mod_auth.html">mod_auth</A>,
      <A HREF="../mod/mod_auth_db.html">mod_auth_db</A>, or
      <A HREF="../mod/mod_auth_dbm.html">mod_auth_dbm</A> modules.
  ***************
  *** 1567,1573 ****
      <A
       HREF="http://www.apacheweek.com/features/userauth";
      ><CITE>Using User Authentication</CITE></A>
  !   or 
      <A
       HREF="http://www.apacheweek.com/features/dbmauth";
      ><CITE>DBM User Authentication</CITE></A>.
  --- 1567,1573 ----
      <A
       HREF="http://www.apacheweek.com/features/userauth";
      ><CITE>Using User Authentication</CITE></A>
  !   or
      <A
       HREF="http://www.apacheweek.com/features/dbmauth";
      ><CITE>DBM User Authentication</CITE></A>.
  ***************
  *** 1575,1581 ****
      <HR>
     </LI>
     <LI><A NAME="remote-auth-only">
  !       <STRONG>How do I set up Apache to allow access to certain 
          documents only if a site is either a local site <EM>or</EM>
          the user supplies a password and username?</STRONG>
         </A>
  --- 1575,1581 ----
      <HR>
     </LI>
     <LI><A NAME="remote-auth-only">
  !       <STRONG>How do I set up Apache to allow access to certain
          documents only if a site is either a local site <EM>or</EM>
          the user supplies a password and username?</STRONG>
         </A>
  ***************
  *** 1747,1753 ****
      the database, rather than a fast internal device.  The
      <SAMP>libmsql</SAMP>, the mSQL FAQ, and the <SAMP>mod_auth_msql</SAMP>
      documentation warn you about this.  If you have to use different
  !   hosts, check out the <SAMP>mod_auth_msql</SAMP> code for 
      some compile time flags which might - or might not - suit you.
      </P>
      <HR>
  --- 1747,1753 ----
      the database, rather than a fast internal device.  The
      <SAMP>libmsql</SAMP>, the mSQL FAQ, and the <SAMP>mod_auth_msql</SAMP>
      documentation warn you about this.  If you have to use different
  !   hosts, check out the <SAMP>mod_auth_msql</SAMP> code for
      some compile time flags which might - or might not - suit you.
      </P>
      <HR>
  
  
  
  1.7       +1 -1      apache/htdocs/manual/misc/client_block_api.html
  
  Index: client_block_api.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/client_block_api.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** client_block_api.html     1997/06/04 11:42:56     1.6
  --- client_block_api.html     1997/07/06 17:19:05     1.7
  ***************
  *** 69,75 ****
        100 response is defeated). Never call this function more than once.
    
    <li>Finally, call <code>get_client_block</code> in a loop. Pass it a
  !     buffer and its 
        size. It will put data into the buffer (not necessarily the full
        buffer, in the case of chunked inputs), and return the length of
        the input block. When it is done reading, it will
  --- 69,75 ----
        100 response is defeated). Never call this function more than once.
    
    <li>Finally, call <code>get_client_block</code> in a loop. Pass it a
  !     buffer and its
        size. It will put data into the buffer (not necessarily the full
        buffer, in the case of chunked inputs), and return the length of
        the input block. When it is done reading, it will
  
  
  
  1.10      +25 -11    apache/htdocs/manual/misc/compat_notes.html
  
  Index: compat_notes.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/compat_notes.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** compat_notes.html 1997/06/23 05:16:18     1.9
  --- compat_notes.html 1997/07/06 17:19:05     1.10
  ***************
  *** 30,36 ****
    
    <OL>
    
  ! <LI>The basic mod_auth <CODE>AuthGroupFile</CODE>-specified group file 
        format allows commas between user names - Apache does not.<BR>
        <I>- added 12/1/96</I>
    </LI>
  --- 30,36 ----
    
    <OL>
    
  ! <LI>The basic mod_auth <CODE>AuthGroupFile</CODE>-specified group file
        format allows commas between user names - Apache does not.<BR>
        <I>- added 12/1/96</I>
    </LI>
  ***************
  *** 51,57 ****
      <LI><CODE>AuthUserFile</CODE> requires a full pathname. In earlier
          versions of NCSA httpd and Apache, you could use a filename
          relative to the .htaccess file. This could be a major security hole,
  !       as it made it trivially easy to make a ".htpass" file in the a 
          directory easily accessible by the world. We recommend you store
          your passwords outside your document tree.
    
  --- 51,57 ----
      <LI><CODE>AuthUserFile</CODE> requires a full pathname. In earlier
          versions of NCSA httpd and Apache, you could use a filename
          relative to the .htaccess file. This could be a major security hole,
  !       as it made it trivially easy to make a ".htpass" file in the a
          directory easily accessible by the world. We recommend you store
          your passwords outside your document tree.
    
  ***************
  *** 78,95 ****
    
      <P>
    
  !   <LI>Icons for FancyIndexing broken - well, no, they're not broken, we've 
just upgraded the
  !   icons from flat .xbm files to pretty and much smaller .gif files, 
courtesy of 
    <a href="mailto:[EMAIL PROTECTED]">Kevin Hughes</a> at
  ! <a href="http://www.eit.com";>EIT</a>.
  !   If you are using the same srm.conf from an old distribution, make sure 
you add the new
  !   AddIcon, AddIconByType, and DefaultIcon commands.
    
      <P>
    
  !   <LI>Under IRIX, the "Group" directive in httpd.conf needs to be a valid 
group name 
  !   (i.e. "nogroup") not the numeric group ID.  The distribution httpd.conf, 
and earlier 
  !   ones, had the default Group be "#-1", which was causing silent exits at 
startup.<p>
    
    <li><code>.asis</code> files: Apache 0.6.5 did not require a Status header;
    it added one automatically if the .asis file contained a Location header.
  --- 78,109 ----
    
      <P>
    
  !   <LI>Icons for FancyIndexing broken - well, no, they're not broken,
  !   we've just upgraded the
  !   icons from flat .xbm files to pretty and much smaller .gif files, 
courtesy of
    <a href="mailto:[EMAIL PROTECTED]">Kevin Hughes</a> at
  ! <a href="http://www.eit.com/";>EIT</a>.
  !   If you are using the same srm.conf from an old distribution, make sure
  !   you add the new
  !   <A
  !    HREF="../mod/mod_dir.html#addicon"
  !   >AddIcon</A>,
  !   <A
  !    HREF="../mod/mod_dir.html#addiconbytype"
  !   >AddIconByType</A>,
  !   and
  !   <A
  !    HREF="../mod/mod_dir.html#defaulticon"
  !   >DefaultIcon</A>
  !   directives.
    
      <P>
    
  !   <LI>Under IRIX, the "Group" directive in httpd.conf needs to be a
  !   valid group name
  !   (<EM>i.e.</EM>, "nogroup") not the numeric group ID.  The distribution
  !   httpd.conf, and earlier  ones, had the default Group be "#-1", which
  !   was causing silent exits at startup.<p>
    
    <li><code>.asis</code> files: Apache 0.6.5 did not require a Status header;
    it added one automatically if the .asis file contained a Location header.
  ***************
  *** 103,109 ****
      </LI>
    
      <LI>Apache does not permit commas delimiting the methods in &lt;Limit&gt;.
  !  
    </OL>
    
    More to come when we notice them....
  --- 117,123 ----
      </LI>
    
      <LI>Apache does not permit commas delimiting the methods in &lt;Limit&gt;.
  ! 
    </OL>
    
    More to come when we notice them....
  
  
  
  1.4       +60 -60    apache/htdocs/manual/misc/descriptors.html
  
  Index: descriptors.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/descriptors.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -C3 -r1.3 -r1.4
  *** descriptors.html  1997/07/02 18:07:17     1.3
  --- descriptors.html  1997/07/06 17:19:05     1.4
  ***************
  *** 15,21 ****
    <!--#include virtual="header.html" -->
    <H1 ALIGN="CENTER">Descriptors and Apache</H1>
    
  ! <p>A <i>descriptor</i>, also commonly called a <i>file handle</i> is
    an object that a program uses to read or write an open file, or open
    network socket, or a variety of other devices.  It is represented
    by an integer, and you may be familiar with <code>stdin</code>,
  --- 15,21 ----
    <!--#include virtual="header.html" -->
    <H1 ALIGN="CENTER">Descriptors and Apache</H1>
    
  ! <p>A <EM>descriptor</EM>, also commonly called a <EM>file handle</EM> is
    an object that a program uses to read or write an open file, or open
    network socket, or a variety of other devices.  It is represented
    by an integer, and you may be familiar with <code>stdin</code>,
  ***************
  *** 32,43 ****
    that a program can have open at a time.  There are typically three limits
    involved here.  One is a kernel limitation, depending on your operating
    system you will either be able to tune the number of descriptors available
  ! to higher numbers (this is frequently called <i>FD_SETSIZE</i>).  Or you
    may be stuck with a (relatively) low amount.  The second limit is called
  ! the <i>hard resource</i> limit, and it is sometimes set by root in an
    obscure operating system file, but frequently is the same as the kernel
  ! limit.  The third limit is called the <i>soft
  ! resource</i> limit.  The soft limit is always less than or equal to
    the hard limit.  For example, the hard limit may be 1024, but the soft
    limit only 64.  Any user can raise their soft limit up to the hard limit.
    Root can raise the hard limit up to the system maximum limit.  The soft
  --- 32,43 ----
    that a program can have open at a time.  There are typically three limits
    involved here.  One is a kernel limitation, depending on your operating
    system you will either be able to tune the number of descriptors available
  ! to higher numbers (this is frequently called <EM>FD_SETSIZE</EM>).  Or you
    may be stuck with a (relatively) low amount.  The second limit is called
  ! the <EM>hard resource</EM> limit, and it is sometimes set by root in an
    obscure operating system file, but frequently is the same as the kernel
  ! limit.  The third limit is called the <EM>soft
  ! resource</EM> limit.  The soft limit is always less than or equal to
    the hard limit.  For example, the hard limit may be 1024, but the soft
    limit only 64.  Any user can raise their soft limit up to the hard limit.
    Root can raise the hard limit up to the system maximum limit.  The soft
  ***************
  *** 65,123 ****
    
    <dl>
    
  !     <dt> <b>BSDI 2.0</b>
  !     <dd> Under BSDI 2.0 you can build Apache to support more descriptors
  !     by adding <code>-DFD_SETSIZE=nnn</code> to
  !     <code>EXTRA_CFLAGS</code> (where nnn is the number of descriptors
  !     you wish to support, keep it less than the hard limit).  But it
  !     will run into trouble if more than approximately 240 Listen
  !     directives are used.  This may be cured by rebuilding your kernel
  !     with a higher FD_SETSIZE.
  !     <p>
  ! 
  !     <dt> <b>FreeBSD 2.2, BSDI 2.1+</b>
  !     <dd> Similar to the BSDI 2.0 case, you should define
  !     <code>FD_SETSIZE</code> and rebuild.  But the extra
  !     Listen limitation doesn't exist.
  !     <p>
  ! 
  !     <dt> <b>Linux</b>
  !     <dd> By default Linux has a kernel maximum of 256 open descriptors
  !     per process.  There are several patches available for the
  !     2.0.x series which raise this to 1024 and beyond, and you
  !     can find them in the "unofficial patches" section of <a
  !     href="http://www.linuxhq.com/";>the Linux Information HQ</a>.
  !     None of these patches are perfect, and an entirely different
  !     approach is likely to be taken during the 2.1.x development.
  !     Applying these patches will raise the FD_SETSIZE used to compile
  !     all programs, and unless you rebuild all your libraries you should
  !     avoid running any other program with a soft descriptor limit above
  !     256.  As of this writing the patches available for increasing
  !     the number of descriptors do not take this into account.  On a
  !     dedicated webserver you probably won't run into trouble.
  !     <p>
  ! 
  !     <dt> <b>Solaris through 2.5.1</b>
  !     <dd> Solaris has a kernel hard limit of 1024 (may be lower in earlier
  !     versions).  But it has a limitation that files using
  !     the stdio library cannot have a descriptor above 255.
  !     Apache uses the stdio library for the ErrorLog directive.
  !     When you have more than approximately 110 virtual hosts
  !     (with an error log and an access log each) you will need to
  !     build Apache with <code>-DHIGH_SLACK_LINE=256</code> added to
  !     <code>EXTRA_CFLAGS</code>.  You will be limited to approximately
  !     240 error logs if you do this.
  !     <p>
  ! 
  !     <dt> <b>AIX version ??</b>
  !     <dd> AIX appears to have a hard limit of 128 descriptors.  End of
  !     story.
  !     <p>
  ! 
  !     <dt> <b>Others</b>
  !     <dd> If you have details on another operating system, please submit
  !     it through our <a href="http://www.apache.org/bug_report.html";>Bug
  !     Report Page</a>.
        <p>
    
    </dl>
  --- 65,123 ----
    
    <dl>
    
  !     <dt><STRONG>BSDI 2.0</STRONG>
  !     <dd>Under BSDI 2.0 you can build Apache to support more descriptors
  !         by adding <code>-DFD_SETSIZE=nnn</code> to
  !         <code>EXTRA_CFLAGS</code> (where nnn is the number of descriptors
  !         you wish to support, keep it less than the hard limit).  But it
  !         will run into trouble if more than approximately 240 Listen
  !         directives are used.  This may be cured by rebuilding your kernel
  !         with a higher FD_SETSIZE.
  !     <p>
  ! 
  !     <dt><STRONG>FreeBSD 2.2, BSDI 2.1+</STRONG>
  !     <dd>Similar to the BSDI 2.0 case, you should define
  !         <code>FD_SETSIZE</code> and rebuild.  But the extra
  !         Listen limitation doesn't exist.
  !     <p>
  ! 
  !     <dt><STRONG>Linux</STRONG>
  !     <dd>By default Linux has a kernel maximum of 256 open descriptors
  !         per process.  There are several patches available for the
  !         2.0.x series which raise this to 1024 and beyond, and you
  !         can find them in the "unofficial patches" section of <a
  !         href="http://www.linuxhq.com/";>the Linux Information HQ</a>.
  !         None of these patches are perfect, and an entirely different
  !         approach is likely to be taken during the 2.1.x development.
  !         Applying these patches will raise the FD_SETSIZE used to compile
  !         all programs, and unless you rebuild all your libraries you should
  !         avoid running any other program with a soft descriptor limit above
  !         256.  As of this writing the patches available for increasing
  !         the number of descriptors do not take this into account.  On a
  !         dedicated webserver you probably won't run into trouble.
  !     <p>
  ! 
  !     <dt><STRONG>Solaris through 2.5.1</STRONG>
  !     <dd>Solaris has a kernel hard limit of 1024 (may be lower in earlier
  !         versions).  But it has a limitation that files using
  !         the stdio library cannot have a descriptor above 255.
  !         Apache uses the stdio library for the ErrorLog directive.
  !         When you have more than approximately 110 virtual hosts
  !         (with an error log and an access log each) you will need to
  !         build Apache with <code>-DHIGH_SLACK_LINE=256</code> added to
  !         <code>EXTRA_CFLAGS</code>.  You will be limited to approximately
  !         240 error logs if you do this.
  !     <p>
  ! 
  !     <dt><STRONG>AIX version ??</STRONG>
  !     <dd>AIX appears to have a hard limit of 128 descriptors.  End of
  !         story.
  !     <p>
  ! 
  !     <dt><STRONG>Others</STRONG>
  !     <dd>If you have details on another operating system, please submit
  !         it through our <a href="http://www.apache.org/bug_report.html";>Bug
  !         Report Page</a>.
        <p>
    
    </dl>
  ***************
  *** 128,135 ****
    fails if it ends up with a descriptor above 256.  We suspect there
    are other libraries that similar limitations.  So the code as of 1.2.1
    takes a defensive stance and tries to save descriptors less than 16
  ! for use while processing each request.  This is called the <i>low
  ! slack line</i>.
    
    <p>Note that this shouldn't waste descriptors.  If you really are pushing
    the limits and Apache can't get a descriptor above 16 when it wants
  --- 128,135 ----
    fails if it ends up with a descriptor above 256.  We suspect there
    are other libraries that similar limitations.  So the code as of 1.2.1
    takes a defensive stance and tries to save descriptors less than 16
  ! for use while processing each request.  This is called the <EM>low
  ! slack line</EM>.
    
    <p>Note that this shouldn't waste descriptors.  If you really are pushing
    the limits and Apache can't get a descriptor above 16 when it wants
  
  
  
  1.10      +19 -19    apache/htdocs/manual/misc/fin_wait_2.html
  
  Index: fin_wait_2.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/fin_wait_2.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** fin_wait_2.html   1997/06/28 20:55:43     1.9
  --- fin_wait_2.html   1997/07/06 17:19:06     1.10
  ***************
  *** 29,38 ****
    state that the connection is in during the period between when the
    server gets the ACK from the client and the server gets the FIN from
    the client is known as FIN_WAIT_2.  See the <A
  ! HREF="ftp://ds.internic.net/rfc/rfc793.txt";>TCP RFC</A> for the 
    technical details of the state transitions.<P>
    
  ! The FIN_WAIT_2 state is somewhat unusual in that there is no timeout 
    defined in the standard for it.  This means that on many operating
    systems, a connection in the FIN_WAIT_2 state will stay around until
    the system is rebooted.  If the system does not have a timeout and
  --- 29,38 ----
    state that the connection is in during the period between when the
    server gets the ACK from the client and the server gets the FIN from
    the client is known as FIN_WAIT_2.  See the <A
  ! HREF="ftp://ds.internic.net/rfc/rfc793.txt";>TCP RFC</A> for the
    technical details of the state transitions.<P>
    
  ! The FIN_WAIT_2 state is somewhat unusual in that there is no timeout
    defined in the standard for it.  This means that on many operating
    systems, a connection in the FIN_WAIT_2 state will stay around until
    the system is rebooted.  If the system does not have a timeout and
  ***************
  *** 158,196 ****
            <LI><A HREF="http://www.freebsd.org/";>FreeBSD</A> versions starting 
at 2.0 or possibly earlier.
            <LI><A HREF="http://www.netbsd.org/";>NetBSD</A> version 1.2(?)
            <LI><A HREF="http://www.openbsd.org/";>OpenBSD</A> all versions(?)
  !         <LI><A HREF="http://www.bsdi.com/";>BSD/OS</A> 2.1, with the 
                <A HREF="ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/K210-027";>
  !             K210-027</A> patch installed.  
            <LI><A HREF="http://www.sun.com/";>Solaris</A> as of around version
  !             2.2.  The timeout can be tuned by using <CODE>ndd</CODE> to 
                modify <CODE>tcp_fin_wait_2_flush_interval</CODE>, but the
  !             default should be appropriate for most servers and improper 
                tuning can have negative impacts.
            <LI><A HREF="http://www.sco.com/";>SCO TCP/IP Release 1.2.1</A>
                can be modified to have a timeout by following
                <A 
HREF="http://www.sco.com/cgi-bin/waisgate?WAISdocID=2242622956+0+0+0&WAISaction=retrieve";>
 SCO's instructions</A>.
            <LI><A HREF="http://www.linux.org/";>Linux</A> 2.0.x and
                earlier(?)
  !         <LI><A HREF="http://www.hp.com/";>HP-UX</A> 10.x defaults to 
  !             terminating connections in the FIN_WAIT_2 state after the 
                normal keepalive timeouts.  This does not
                refer to the persistent connection or HTTP keepalive
  !             timeouts, but the <CODE>SO_LINGER</CODE> socket option 
  !             which is enabled by Apache.  This parameter can be adjusted 
                by using <CODE>nettune</CODE> to modify parameters such as
                <CODE>tcp_keepstart</CODE> and <CODE>tcp_keepstop</CODE>.
                In later revisions, there is an explicit timer for
                connections in FIN_WAIT_2 that can be modified; contact HP
                support for details.
            <LI><A HREF="http://www.sgi.com/";>SGI IRIX</A> can be patched to
  !             support a timeout.  For IRIX 5.3, 6.2, and 6.3, 
                use patches 1654, 1703 and 1778 respectively.  If you
                have trouble locating these patches, please contact your
                SGI support channel for help.
            <LI><A HREF="http://www.ncr.com/";>NCR's MP RAS Unix</A> 2.xx and
                3.xx both have FIN_WAIT_2 timeouts.  In 2.xx it is non-tunable
                at 600 seconds, while in 3.xx it defaults to 600 seconds and
  !             is calculated based on the tunable "max keep alive probes" 
                (default of 8) multiplied by the "keep alive interval" (default
                75 seconds).
            <LI><A HREF="http://www.sequent.com";>Squent's ptx/TCP/IP for
  --- 158,196 ----
            <LI><A HREF="http://www.freebsd.org/";>FreeBSD</A> versions starting 
at 2.0 or possibly earlier.
            <LI><A HREF="http://www.netbsd.org/";>NetBSD</A> version 1.2(?)
            <LI><A HREF="http://www.openbsd.org/";>OpenBSD</A> all versions(?)
  !         <LI><A HREF="http://www.bsdi.com/";>BSD/OS</A> 2.1, with the
                <A HREF="ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/K210-027";>
  !             K210-027</A> patch installed.
            <LI><A HREF="http://www.sun.com/";>Solaris</A> as of around version
  !             2.2.  The timeout can be tuned by using <CODE>ndd</CODE> to
                modify <CODE>tcp_fin_wait_2_flush_interval</CODE>, but the
  !             default should be appropriate for most servers and improper
                tuning can have negative impacts.
            <LI><A HREF="http://www.sco.com/";>SCO TCP/IP Release 1.2.1</A>
                can be modified to have a timeout by following
                <A 
HREF="http://www.sco.com/cgi-bin/waisgate?WAISdocID=2242622956+0+0+0&WAISaction=retrieve";>
 SCO's instructions</A>.
            <LI><A HREF="http://www.linux.org/";>Linux</A> 2.0.x and
                earlier(?)
  !         <LI><A HREF="http://www.hp.com/";>HP-UX</A> 10.x defaults to
  !             terminating connections in the FIN_WAIT_2 state after the
                normal keepalive timeouts.  This does not
                refer to the persistent connection or HTTP keepalive
  !             timeouts, but the <CODE>SO_LINGER</CODE> socket option
  !             which is enabled by Apache.  This parameter can be adjusted
                by using <CODE>nettune</CODE> to modify parameters such as
                <CODE>tcp_keepstart</CODE> and <CODE>tcp_keepstop</CODE>.
                In later revisions, there is an explicit timer for
                connections in FIN_WAIT_2 that can be modified; contact HP
                support for details.
            <LI><A HREF="http://www.sgi.com/";>SGI IRIX</A> can be patched to
  !             support a timeout.  For IRIX 5.3, 6.2, and 6.3,
                use patches 1654, 1703 and 1778 respectively.  If you
                have trouble locating these patches, please contact your
                SGI support channel for help.
            <LI><A HREF="http://www.ncr.com/";>NCR's MP RAS Unix</A> 2.xx and
                3.xx both have FIN_WAIT_2 timeouts.  In 2.xx it is non-tunable
                at 600 seconds, while in 3.xx it defaults to 600 seconds and
  !             is calculated based on the tunable "max keep alive probes"
                (default of 8) multiplied by the "keep alive interval" (default
                75 seconds).
            <LI><A HREF="http://www.sequent.com";>Squent's ptx/TCP/IP for
  ***************
  *** 207,213 ****
                source should be easy to patch.
    </UL>
    <P>
  ! There is a 
    <A HREF="http://www.apache.org/dist/contrib/patches/1.2/fin_wait_2.patch";>
    patch available</A> for adding a timeout to the FIN_WAIT_2 state; it
    was originally intended for BSD/OS, but should be adaptable to most
  --- 207,213 ----
                source should be easy to patch.
    </UL>
    <P>
  ! There is a
    <A HREF="http://www.apache.org/dist/contrib/patches/1.2/fin_wait_2.patch";>
    patch available</A> for adding a timeout to the FIN_WAIT_2 state; it
    was originally intended for BSD/OS, but should be adaptable to most
  ***************
  *** 221,228 ****
    <CODE>lingering_close()</CODE> function.  This will result in that
    section of code being similar to that which was in 1.1.  If you do
    this, be aware that it can cause problems with PUTs, POSTs and
  ! persistent connections, especially if the client uses pipelining.  
  ! That said, it is no worse than on 1.1, and we understand that keeping your 
    server running is quite important.<P>
    
    To compile without the <CODE>lingering_close()</CODE> function, add
  --- 221,228 ----
    <CODE>lingering_close()</CODE> function.  This will result in that
    section of code being similar to that which was in 1.1.  If you do
    this, be aware that it can cause problems with PUTs, POSTs and
  ! persistent connections, especially if the client uses pipelining.
  ! That said, it is no worse than on 1.1, and we understand that keeping your
    server running is quite important.<P>
    
    To compile without the <CODE>lingering_close()</CODE> function, add
  ***************
  *** 261,269 ****
    
    The exact way to increase them may depend on your OS; look
    for some reference to the number of "mbufs" or "mbuf clusters".  On
  ! many systems, this can be done by adding the line 
  ! <CODE>NMBCLUSTERS="n"</CODE>, where <CODE>n</CODE> is the number of 
  ! mbuf clusters you want to your kernel config file and rebuilding your 
    kernel.<P>
    </DL>
    
  --- 261,269 ----
    
    The exact way to increase them may depend on your OS; look
    for some reference to the number of "mbufs" or "mbuf clusters".  On
  ! many systems, this can be done by adding the line
  ! <CODE>NMBCLUSTERS="n"</CODE>, where <CODE>n</CODE> is the number of
  ! mbuf clusters you want to your kernel config file and rebuilding your
    kernel.<P>
    </DL>
    
  ***************
  *** 305,311 ****
    There are two conditions under which this is likely to occur:
    <OL>
    <LI>sending POST or PUT data without proper authorization
  ! <LI>sending multiple requests before each response (pipelining) 
        and one of the middle requests resulting in an error or
        other break-the-connection result.
    </OL>
  --- 305,311 ----
    There are two conditions under which this is likely to occur:
    <OL>
    <LI>sending POST or PUT data without proper authorization
  ! <LI>sending multiple requests before each response (pipelining)
        and one of the middle requests resulting in an error or
        other break-the-connection result.
    </OL>
  
  
  
  1.23      +6 -6      apache/htdocs/manual/misc/known_bugs.html
  
  Index: known_bugs.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/known_bugs.html,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -C3 -r1.22 -r1.23
  *** known_bugs.html   1997/07/06 14:54:48     1.22
  --- known_bugs.html   1997/07/06 17:19:06     1.23
  ***************
  *** 48,54 ****
        <a name="cnegbug">Apache's</A> <A 
HREF="../content-negotiation.html">Content
        Negotiation</A> should pick the smallest variant if there
        are several that are equally acceptable. A bug in 1.2 means it no
  !     longer does this unless all the variants have character sets. 
        This <A HREF="../../dist/contrib/patches/1.2/conneg-bug.patch">patch</A>
        fixes this problem. It also fixes the problem which makes Apache
        pick the last equally acceptable variant instead of the first.
  --- 48,54 ----
        <a name="cnegbug">Apache's</A> <A 
HREF="../content-negotiation.html">Content
        Negotiation</A> should pick the smallest variant if there
        are several that are equally acceptable. A bug in 1.2 means it no
  !     longer does this unless all the variants have character sets.
        This <A HREF="../../dist/contrib/patches/1.2/conneg-bug.patch">patch</A>
        fixes this problem. It also fixes the problem which makes Apache
        pick the last equally acceptable variant instead of the first.
  ***************
  *** 58,64 ****
    
        <LI>
        The PATH_INFO part of a request URI cannot include the sequence
  !     <CODE>%2f</CODE>. This will be tracked as 
        <A HREF="http://www.apache.org/bugdb.cgi/full/543";>PR#543</A>.
        <P></LI>
    
  --- 58,64 ----
    
        <LI>
        The PATH_INFO part of a request URI cannot include the sequence
  !     <CODE>%2f</CODE>. This will be tracked as
        <A HREF="http://www.apache.org/bugdb.cgi/full/543";>PR#543</A>.
        <P></LI>
    
  ***************
  *** 80,94 ****
    
        <LI>If compilation fails complaining about "unknown symbol 
__inet_ntoa()"
        then you have probably installed version 8 of bind. You will need to
  !     explicitly link with the bind library by adding <CODE>-lbind</CODE> 
        to <CODE>EXTRA_LDFLAGS</CODE> in <CODE>Configuration</CODE>. See
        <A HREF="http://www.apache.org/bugdb.cgi/full/616";>PR#616</A>
  !     and the 
        <A HREF="FAQ.html#bind8.1">Apache FAQ</A>.
        <P></LI>
    
        <LI>The message "<CODE>created shared memory segment #730499</CODE>"
  !     in error_log is not an error and should be ignored. See 
        <a href="http://www.apache.org/bugdb.cgi/full/696";>PR#696</A>.
        <P></LI>
    
  --- 80,94 ----
    
        <LI>If compilation fails complaining about "unknown symbol 
__inet_ntoa()"
        then you have probably installed version 8 of bind. You will need to
  !     explicitly link with the bind library by adding <CODE>-lbind</CODE>
        to <CODE>EXTRA_LDFLAGS</CODE> in <CODE>Configuration</CODE>. See
        <A HREF="http://www.apache.org/bugdb.cgi/full/616";>PR#616</A>
  !     and the
        <A HREF="FAQ.html#bind8.1">Apache FAQ</A>.
        <P></LI>
    
        <LI>The message "<CODE>created shared memory segment #730499</CODE>"
  !     in error_log is not an error and should be ignored. See
        <a href="http://www.apache.org/bugdb.cgi/full/696";>PR#696</A>.
        <P></LI>
    
  ***************
  *** 104,110 ****
        virtual hosts. This appears similar to a file-descriptor limit
        but BSDI should not have this problem. This will be tracked as
        <A HREF="http://www.apache.org/bugdb.cgi/full/611";>PR#611</A>.
  !     See also the <A HREF="FAQ.html#fdlim">Apache FAQ</A>. 
        <P></LI>
    
        <LI><a href="descriptors.html"><b>Workaround available in 1.2.1.</b></a>
  --- 104,110 ----
        virtual hosts. This appears similar to a file-descriptor limit
        but BSDI should not have this problem. This will be tracked as
        <A HREF="http://www.apache.org/bugdb.cgi/full/611";>PR#611</A>.
  !     See also the <A HREF="FAQ.html#fdlim">Apache FAQ</A>.
        <P></LI>
    
        <LI><a href="descriptors.html"><b>Workaround available in 1.2.1.</b></a>
  
  
  
  1.6       +1 -1      apache/htdocs/manual/misc/nopgp.html
  
  Index: nopgp.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/nopgp.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -C3 -r1.5 -r1.6
  *** nopgp.html        1997/06/24 18:39:35     1.5
  --- nopgp.html        1997/07/06 17:19:06     1.6
  ***************
  *** 54,60 ****
    
    </UL>
    
  ! It kind of sickens us that we had to do it, but so be it.  
    
    <P>
    
  --- 54,60 ----
    
    </UL>
    
  ! It kind of sickens us that we had to do it, but so be it.
    
    <P>
    
  
  
  
  1.8       +4 -4      apache/htdocs/manual/misc/perf-bsd44.html
  
  Index: perf-bsd44.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf-bsd44.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** perf-bsd44.html   1997/06/06 01:04:52     1.7
  --- perf-bsd44.html   1997/07/06 17:19:06     1.8
  ***************
  *** 41,47 ****
    <p>
    
    After the edit, recompile the kernel and recompile the Apache server
  ! then reboot.  
    
    <P>
    
  --- 41,47 ----
    <p>
    
    After the edit, recompile the kernel and recompile the Apache server
  ! then reboot.
    
    <P>
    
  ***************
  *** 134,141 ****
    which time its mbufs are not yet freed. Another reason is that, on server
    timeouts, some connections end up in FIN_WAIT_2 state forever, because
    this state doesn't time out on the server, and the browser never sent
  ! a final FIN.  For more details see the 
  ! <A HREF="fin_wait_2.html">FIN_WAIT_2</A> page. 
    
    <p>
    
  --- 134,141 ----
    which time its mbufs are not yet freed. Another reason is that, on server
    timeouts, some connections end up in FIN_WAIT_2 state forever, because
    this state doesn't time out on the server, and the browser never sent
  ! a final FIN.  For more details see the
  ! <A HREF="fin_wait_2.html">FIN_WAIT_2</A> page.
    
    <p>
    
  ***************
  *** 169,175 ****
    Be aware that your system may not boot with a kernel that is configured
    to use more resources than you have available system RAM. <b>ALWAYS</b>
    have a known bootable kernel available when tuning your system this way,
  ! and use the system tools beforehand to learn if you need to buy more 
    memory before tuning.
    
    <p>
  --- 169,175 ----
    Be aware that your system may not boot with a kernel that is configured
    to use more resources than you have available system RAM. <b>ALWAYS</b>
    have a known bootable kernel available when tuning your system this way,
  ! and use the system tools beforehand to learn if you need to buy more
    memory before tuning.
    
    <p>
  
  
  
  1.5       +1 -1      apache/htdocs/manual/misc/perf-dec.html
  
  Index: perf-dec.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf-dec.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -C3 -r1.4 -r1.5
  *** perf-dec.html     1997/06/04 11:42:58     1.4
  --- perf-dec.html     1997/07/06 17:19:07     1.5
  ***************
  *** 16,22 ****
    
    Below is a set of newsgroup posts made by an engineer from DEC in
    response to queries about how to modify DEC's Digital Unix OS for more
  ! heavily loaded web sites.  Copied with permission.  
    
    <HR>
    
  --- 16,22 ----
    
    Below is a set of newsgroup posts made by an engineer from DEC in
    response to queries about how to modify DEC's Digital Unix OS for more
  ! heavily loaded web sites.  Copied with permission.
    
    <HR>
    
  
  
  
  1.11      +9 -8      apache/htdocs/manual/misc/perf.html
  
  Index: perf.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -C3 -r1.10 -r1.11
  *** perf.html 1997/06/24 18:39:35     1.10
  --- perf.html 1997/07/06 17:19:07     1.11
  ***************
  *** 59,69 ****
    Digital UNIX
    </A></H3>
    
  ! <UL> 
  !   <LI><A 
HREF="http://www.digital.com/info/internet/document/ias/tuning.html";>DIGITAL
  !         UNIX Tuning Parameters for Web Servers</A> 
  !   <LI>We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to 
tune 
  !         Digital UNIX 3.2 and 4.0. 
    </UL>
    
    <P><HR>
  --- 59,70 ----
    Digital UNIX
    </A></H3>
    
  ! <UL>
  !   <LI><A
  !        HREF="http://www.digital.com/info/internet/document/ias/tuning.html";
  !       >DIGITAL UNIX Tuning Parameters for Web Servers</A>
  !   <LI>We have some <A HREF="perf-dec.html">newsgroup postings</A> on how
  !       to tune Digital UNIX 3.2 and 4.0.
    </UL>
    
    <P><HR>
  ***************
  *** 108,114 ****
    <UL>
    
    <LI><A 
href="http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/";>
  ! World Wide Web Server Performance, 
    
&lt;http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/&gt;</a>
    <LI><A HREF="http://www.sun.com/solaris/products/siss/";>
    Solaris Internet Server Supplement for 2.5.1</A>
  --- 109,115 ----
    <UL>
    
    <LI><A 
href="http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/";>
  ! World Wide Web Server Performance,
    
&lt;http://www.sun.com/sun-on-net/Sun.Internet.Solutions/performance/&gt;</a>
    <LI><A HREF="http://www.sun.com/solaris/products/siss/";>
    Solaris Internet Server Supplement for 2.5.1</A>
  ***************
  *** 120,128 ****
    SunOS 4.x
    </A></H3>
    
  ! More information on tuning SOMAXCONN on SunOS can be found at 
    <A HREF="http://www.islandnet.com/~mark/somaxconn.html";>
  ! http://www.islandnet.com/~mark/somaxconn.html</A>.  
    
    <P><HR>
    
  --- 121,129 ----
    SunOS 4.x
    </A></H3>
    
  ! More information on tuning SOMAXCONN on SunOS can be found at
    <A HREF="http://www.islandnet.com/~mark/somaxconn.html";>
  ! http://www.islandnet.com/~mark/somaxconn.html</A>.
    
    <P><HR>
    
  
  
  
  1.10      +2 -2      apache/htdocs/manual/misc/security_tips.html
  
  Index: security_tips.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/security_tips.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** security_tips.html        1997/07/02 02:22:03     1.9
  --- security_tips.html        1997/07/06 17:19:07     1.10
  ***************
  *** 24,37 ****
    
    <H2>Permissions on Log File Directories</H2>
    <P>When Apache starts, it opens the log files as the user who started the
  ! server before switching to the user defined in the 
    <a href="../mod/core.html#user"><b>User</b></a> directive.  Anyone who
    has write permission for the directory where any log files are
    being written to can append pseudo-arbitrary data to any file on the
    system which is writable by the user who starts Apache.  Since the
    server is normally started by root, you should <EM>NOT</EM> give anyone
    write permission to the directory where logs are stored unless you
  ! want them to have root access. 
    <P>
    <HR>
    <H2>Server Side Includes</H2>
  --- 24,37 ----
    
    <H2>Permissions on Log File Directories</H2>
    <P>When Apache starts, it opens the log files as the user who started the
  ! server before switching to the user defined in the
    <a href="../mod/core.html#user"><b>User</b></a> directive.  Anyone who
    has write permission for the directory where any log files are
    being written to can append pseudo-arbitrary data to any file on the
    system which is writable by the user who starts Apache.  Since the
    server is normally started by root, you should <EM>NOT</EM> give anyone
    write permission to the directory where logs are stored unless you
  ! want them to have root access.
    <P>
    <HR>
    <H2>Server Side Includes</H2>
  
  
  
  1.8       +23 -23    apache/htdocs/manual/misc/vif-info.html
  
  Index: vif-info.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/misc/vif-info.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** vif-info.html     1997/06/24 18:39:35     1.7
  --- vif-info.html     1997/07/06 17:19:08     1.8
  ***************
  *** 26,32 ****
    
    This is a topic that comes up once in a while on comp.protocols.tcp-ip
    and other newsgroups. The question is, how to get a machine with one
  ! network interface to respond to more than one IP addresses. 
    
    I have a solution than might suit you.  For my doctoral work (there's
    a paper about it in this year's ('91) SIGCOMM, also available for
  --- 26,32 ----
    
    This is a topic that comes up once in a while on comp.protocols.tcp-ip
    and other newsgroups. The question is, how to get a machine with one
  ! network interface to respond to more than one IP addresses.
    
    I have a solution than might suit you.  For my doctoral work (there's
    a paper about it in this year's ('91) SIGCOMM, also available for
  ***************
  *** 52,67 ****
      ifconfig le0 198.3.2.1 up -trailers   # config primary interface
    
      ifconfig vif0 198.4.3.2 up            # config first virtual interface
  !   route delete net 198.4.3 198.4.3.2    # delete spurious route 
      route add host 198.4.3.2 198.4.3.2 0  # add route for this i/f
    
      ifconfig vif1 198.5.4.3 up            # config second virtual interface
  !   route delete net 198.5.4 198.5.4.3    # delete spurious route 
      route add host 198.5.4.3 198.5.4.3 0  # add route for this i/f
    
    The route deletes are needed because the ifconfig creates a default
    route to the interface's network, which can cause problems; all that's
  ! needed is the (host) route to the interface's address. 
    
    Now, get le0's ethernet address (say, 8:0:20:3:2:1), and add the
    following static ARP entries:
  --- 52,67 ----
      ifconfig le0 198.3.2.1 up -trailers   # config primary interface
    
      ifconfig vif0 198.4.3.2 up            # config first virtual interface
  !   route delete net 198.4.3 198.4.3.2    # delete spurious route
      route add host 198.4.3.2 198.4.3.2 0  # add route for this i/f
    
      ifconfig vif1 198.5.4.3 up            # config second virtual interface
  !   route delete net 198.5.4 198.5.4.3    # delete spurious route
      route add host 198.5.4.3 198.5.4.3 0  # add route for this i/f
    
    The route deletes are needed because the ifconfig creates a default
    route to the interface's network, which can cause problems; all that's
  ! needed is the (host) route to the interface's address.
    
    Now, get le0's ethernet address (say, 8:0:20:3:2:1), and add the
    following static ARP entries:
  ***************
  *** 70,81 ****
      arp -s 198.5.4.3 8:0:20:3:2:1 pub
    
    This will cause any ARP requests for the VIF addresses to be replied
  ! with your machine's ethernet address. 
    
    Now, make sure your default route is to your segment's gateway,
    through the real interface. Finally, make sure your routers and/or
    hosts on the same segment as yours know that 198.4.3.2 and 198.5.4.3
  ! are on that cable. 
    
    Here's what you've accomplished.
    
  --- 70,81 ----
      arp -s 198.5.4.3 8:0:20:3:2:1 pub
    
    This will cause any ARP requests for the VIF addresses to be replied
  ! with your machine's ethernet address.
    
    Now, make sure your default route is to your segment's gateway,
    through the real interface. Finally, make sure your routers and/or
    hosts on the same segment as yours know that 198.4.3.2 and 198.5.4.3
  ! are on that cable.
    
    Here's what you've accomplished.
    
  ***************
  *** 85,91 ****
    reaching your host with any of these addresses will be accepted by the
    ip_input routine because they match the address of one of the host's
    interfaces. Packets leaving your host can have any of its addresses
  ! (real and virtual). 
    
    The code for vif follows. To use it, put the stuff in netinet/if_vif.c
    and netinet/if_vif.h, configure your kernel with the number of
  --- 85,91 ----
    reaching your host with any of these addresses will be accepted by the
    ip_input routine because they match the address of one of the host's
    interfaces. Packets leaving your host can have any of its addresses
  ! (real and virtual).
    
    The code for vif follows. To use it, put the stuff in netinet/if_vif.c
    and netinet/if_vif.h, configure your kernel with the number of
  ***************
  *** 134,143 ****
    Finally, here's the code. It has the tunneling pieces removed (you
    need more code to use that anyway), and it comes from a Mach 2.6
    kernel; it should compile on any Berkeley-derived unix with minor
  ! changes (most likely only in the includes). 
    
    ---------------------netinet/if_vif.h--------------------------------------
  ! typedef struct 
    {
            struct ifnet    vif_if;
            struct ifnet    *vif_sif;       /* slave interface */
  --- 134,143 ----
    Finally, here's the code. It has the tunneling pieces removed (you
    need more code to use that anyway), and it comes from a Mach 2.6
    kernel; it should compile on any Berkeley-derived unix with minor
  ! changes (most likely only in the includes).
    
    ---------------------netinet/if_vif.h--------------------------------------
  ! typedef struct
    {
            struct ifnet    vif_if;
            struct ifnet    *vif_sif;       /* slave interface */
  ***************
  *** 194,200 ****
            register int i;
            register struct ifnet *ifp;
            int     vifoutput(), vififioctl();
  !         
            for (i=0; i&lt;NVIF; i++)
            {
                    ifp = &vif_softc[i].vif_if;
  --- 194,200 ----
            register int i;
            register struct ifnet *ifp;
            int     vifoutput(), vififioctl();
  ! 
            for (i=0; i&lt;NVIF; i++)
            {
                    ifp = &vif_softc[i].vif_if;
  ***************
  *** 212,231 ****
    int dev, flag;
    {
            int unit;
  !         
            if (!vifs_inited)
            {
                    vifattach();
                    vifs_inited = 1;
                    printf("vif initialized\n");
            }
  !         
            unit = minor(dev);
            if ((unit &lt; 0) || (unit &gt;= NVIF))
            {
                    return ENXIO;
            }
  !         
            return 0;
    }
    
  --- 212,231 ----
    int dev, flag;
    {
            int unit;
  ! 
            if (!vifs_inited)
            {
                    vifattach();
                    vifs_inited = 1;
                    printf("vif initialized\n");
            }
  ! 
            unit = minor(dev);
            if ((unit &lt; 0) || (unit &gt;= NVIF))
            {
                    return ENXIO;
            }
  ! 
            return 0;
    }
    
  ***************
  *** 259,268 ****
            register struct ifqueue *ifq;
            struct mbuf *m;
            struct sockaddr_in *din;
  !         
            if (dst-&gt;sa_family != AF_INET)
            {
  !                 printf("%s%d: can't handle af%d\n", 
                           ifp-&gt;if_name, ifp-&gt;if_unit,
                           dst-&gt;sa_family);
                    m_freem(m0);
  --- 259,268 ----
            register struct ifqueue *ifq;
            struct mbuf *m;
            struct sockaddr_in *din;
  ! 
            if (dst-&gt;sa_family != AF_INET)
            {
  !                 printf("%s%d: can't handle af%d\n",
                           ifp-&gt;if_name, ifp-&gt;if_unit,
                           dst-&gt;sa_family);
                    m_freem(m0);
  ***************
  *** 270,280 ****
            }
    
            din = (struct sockaddr_in *)dst;
  !         
            if (din-&gt;sin_addr.s_addr == 
IA_SIN(ifp-&gt;if_addrlist)-&gt;sin_addr.s_addr)
            {
                    /* printf("%s%d: looping\n", ifp-&gt;if_name, 
ifp-&gt;if_unit); */
  !                 
                    /*
                     * Place interface pointer before the data
                     * for the receiving protocol.
  --- 270,280 ----
            }
    
            din = (struct sockaddr_in *)dst;
  ! 
            if (din-&gt;sin_addr.s_addr == 
IA_SIN(ifp-&gt;if_addrlist)-&gt;sin_addr.s_addr)
            {
                    /* printf("%s%d: looping\n", ifp-&gt;if_name, 
ifp-&gt;if_unit); */
  ! 
                    /*
                     * Place interface pointer before the data
                     * for the receiving protocol.
  ***************
  *** 345,358 ****
    int mode;
    {
            int unit;
  !         
            unit = minor(dev);
            if ((unit &lt; 0) || (unit &gt;= NVIF))
              return ENXIO;
  !         
            return EINVAL;
    }
  ! 
---------------------------------------------------------------------------- 
    
    To use it, compile your kernel, and reboot. Then create the vif
    device:
  --- 345,358 ----
    int mode;
    {
            int unit;
  ! 
            unit = minor(dev);
            if ((unit &lt; 0) || (unit &gt;= NVIF))
              return ENXIO;
  ! 
            return EINVAL;
    }
  ! ----------------------------------------------------------------------------
    
    To use it, compile your kernel, and reboot. Then create the vif
    device:
  ***************
  *** 367,381 ****
    This will cause the device to be opened, which will if_attach the
    interfaces. If you feel like playing with the code, you may want to
    kmem_alloc() the vif_softc structrure at open time, and use the minor
  ! number of the device to tell it how many interfaces to create. 
    
  ! Now you can go ahead and ifconfig etc. 
    
    I'll be happy to answer minor questions, and hear about success and
    failure stories, but I cannot help you if you don't already know how
    to hack kernels.
    
  ! Good luck! 
    
    /ji
    
  --- 367,381 ----
    This will cause the device to be opened, which will if_attach the
    interfaces. If you feel like playing with the code, you may want to
    kmem_alloc() the vif_softc structrure at open time, and use the minor
  ! number of the device to tell it how many interfaces to create.
    
  ! Now you can go ahead and ifconfig etc.
    
    I'll be happy to answer minor questions, and hear about success and
    failure stories, but I cannot help you if you don't already know how
    to hack kernels.
    
  ! Good luck!
    
    /ji
    
  
  
  
  1.62      +19 -18    apache/htdocs/manual/mod/core.html
  
  Index: core.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -C3 -r1.61 -r1.62
  *** core.html 1997/07/06 14:54:49     1.61
  --- core.html 1997/07/06 17:19:13     1.62
  ***************
  *** 397,410 ****
    <LI>redirect to an external URL to handle the problem/error
    </OL>
    
  ! <P>The first option is the default, while options 2-4 are configured 
  ! using the <CODE>ErrorDocument</CODE> directive, which is followed by 
    the HTTP response code and a message or URL.
    
    <P><em>Messages</em> in this context begin with a single quote
  ! (<code>"</code>), which does not form part of the message itself. 
  ! Apache will sometimes offer additional information regarding the 
  ! problem/error. 
    
    <P>URLs can begin with a slash (/) for local URLs, or be a full
    URL which the client can resolve. Examples:
  --- 397,410 ----
    <LI>redirect to an external URL to handle the problem/error
    </OL>
    
  ! <P>The first option is the default, while options 2-4 are configured
  ! using the <CODE>ErrorDocument</CODE> directive, which is followed by
    the HTTP response code and a message or URL.
    
    <P><em>Messages</em> in this context begin with a single quote
  ! (<code>"</code>), which does not form part of the message itself.
  ! Apache will sometimes offer additional information regarding the
  ! problem/error.
    
    <P>URLs can begin with a slash (/) for local URLs, or be a full
    URL which the client can resolve. Examples:
  ***************
  *** 415,424 ****
    ErrorDocument 403 "Sorry can't allow you access today
    </code></blockquote>
    
  ! <P>Note that when you specify an <CODE>ErrorDocument</CODE> that 
  ! points to a remote URL (ie. anything with a method such as "http" in 
    front of it) Apache will send a redirect to the client to tell it
  ! where to find the document, even if the document ends up being 
    on the same server..  This has several implications, the
    most important being that <STRONG>if you use an "ErrorDocument 401"
    directive then it must refer to a local document.</STRONG>  This results
  --- 415,424 ----
    ErrorDocument 403 "Sorry can't allow you access today
    </code></blockquote>
    
  ! <P>Note that when you specify an <CODE>ErrorDocument</CODE> that
  ! points to a remote URL (ie. anything with a method such as "http" in
    front of it) Apache will send a redirect to the client to tell it
  ! where to find the document, even if the document ends up being
    on the same server..  This has several implications, the
    most important being that <STRONG>if you use an "ErrorDocument 401"
    directive then it must refer to a local document.</STRONG>  This results
  ***************
  *** 441,447 ****
    <blockquote><code>ErrorLog /dev/null</code></blockquote>
    This effectively turns off error logging.<p>
    
  ! SECURITY: See the <A HREF="../misc/security_tips.html">security tips</A> 
    document for details on why your security could be compromised if
    the directory where logfiles are stored is writable by anyone other
    than the user that starts the server.
  --- 441,447 ----
    <blockquote><code>ErrorLog /dev/null</code></blockquote>
    This effectively turns off error logging.<p>
    
  ! SECURITY: See the <A HREF="../misc/security_tips.html">security tips</A>
    document for details on why your security could be compromised if
    the directory where logfiles are stored is writable by anyone other
    than the user that starts the server.
  ***************
  *** 467,475 ****
    &lt;Directory&gt; sections and <code>.htaccess</code> files are
    read, but before &lt;Location&gt; sections.</p>
    
  ! <p>The <em>filename</em> argument should include a filename, or a 
    wild-card string, where `?' matches any single character, and `*' matches 
any
  ! sequences of characters. Extended regular expressions can also be used, 
with the addition of
    the <code>~</code> character. For example:</p>
    
    <pre>
  --- 467,476 ----
    &lt;Directory&gt; sections and <code>.htaccess</code> files are
    read, but before &lt;Location&gt; sections.</p>
    
  ! <p>The <em>filename</em> argument should include a filename, or a
    wild-card string, where `?' matches any single character, and `*' matches 
any
  ! sequences of characters. Extended regular expressions can also be used,
  ! with the addition of
    the <code>~</code> character. For example:</p>
    
    <pre>
  ***************
  *** 670,676 ****
    
    The maximum length of the queue of pending connections.  Generally no
    tuning is needed or desired, however on some systems it is desirable
  ! to increase this when under a TCP SYN flood attack.  See 
    the backlog parameter to the <code>listen(2)</code> system call.
    
    <h2><A name="limit">&lt;Limit&gt; directive</A></h2>
  --- 671,677 ----
    
    The maximum length of the queue of pending connections.  Generally no
    tuning is needed or desired, however on some systems it is desirable
  ! to increase this when under a TCP SYN flood attack.  See
    the backlog parameter to the <code>listen(2)</code> system call.
    
    <h2><A name="limit">&lt;Limit&gt; directive</A></h2>
  ***************
  *** 852,858 ****
    <strong>Status:</strong> core<p>
    
    The Options directive controls which server features are available in
  ! a particular directory. 
    <p>
    <em>option</em> can be set to <code>None</code>, in which case none of
    the extra features are enabled, or one or more of the following:
  --- 853,859 ----
    <strong>Status:</strong> core<p>
    
    The Options directive controls which server features are available in
  ! a particular directory.
    <p>
    <em>option</em> can be set to <code>None</code>, in which case none of
    the extra features are enabled, or one or more of the following:
  ***************
  *** 982,988 ****
    sets the <code>SERVER_PORT</code> environment variable (for
    <a href="mod_cgi.html">CGI</a> and <a href="mod_include.html">SSI</a>),
    and is used when the server must generate a URL that refers to itself
  ! (for example when creating an external redirect to itself).  
    </ul>
    
    In no event does a Port setting affect
  --- 983,989 ----
    sets the <code>SERVER_PORT</code> environment variable (for
    <a href="mod_cgi.html">CGI</a> and <a href="mod_include.html">SSI</a>),
    and is used when the server must generate a URL that refers to itself
  ! (for example when creating an external redirect to itself).
    </ul>
    
    In no event does a Port setting affect
  ***************
  *** 1065,1071 ****
    
    See also <A HREF="#accessconfig">AccessConfig</A>.<p><hr>
    
  ! <H2><A name="rlimit">RLimitCPU</A> <A NAME="rlimit">directive</A></H2>
    <!--%plaintext &lt;?INDEX {\tt RLimitCPU} directive&gt; -->
    <strong>Syntax:</strong> RLimitCPU <em># or 'max'</em> <em>[# or 
'max']</em><br>
    <strong>Default:</strong> <code>Unset uses operating system 
defaults</code><br>
  --- 1066,1072 ----
    
    See also <A HREF="#accessconfig">AccessConfig</A>.<p><hr>
    
  ! <H2><A name="rlimit">RLimitCPU</A> <A NAME="rlimitcpu">directive</A></H2>
    <!--%plaintext &lt;?INDEX {\tt RLimitCPU} directive&gt; -->
    <strong>Syntax:</strong> RLimitCPU <em># or 'max'</em> <em>[# or 
'max']</em><br>
    <strong>Default:</strong> <code>Unset uses operating system 
defaults</code><br>
  ***************
  *** 1335,1341 ****
      <LI>The total amount of time it takes to receive a GET request.
      <LI>The amount of time between receipt of TCP packets on a POST or
          PUT request.
  !   <LI>The amount of time between ACKs on transmissions of TCP packets 
          in responses.
    </OL>
    
  --- 1336,1342 ----
      <LI>The total amount of time it takes to receive a GET request.
      <LI>The amount of time between receipt of TCP packets on a POST or
          PUT request.
  !   <LI>The amount of time between ACKs on transmissions of TCP packets
          in responses.
    </OL>
    
  ***************
  *** 1400,1406 ****
    
    &lt;VirtualHost&gt; and &lt;/VirtualHost&gt; are used to enclose a group of
    directives which will apply only to a particular virtual host.
  ! Any directive which is allowed in a virtual host context may be used. 
    When the server receives a request for a document on a particular virtual
    host, it uses the configuration directives enclosed in the 
&lt;VirtualHost&gt;
    section. <em>Addr</em> can be
  --- 1401,1407 ----
    
    &lt;VirtualHost&gt; and &lt;/VirtualHost&gt; are used to enclose a group of
    directives which will apply only to a particular virtual host.
  ! Any directive which is allowed in a virtual host context may be used.
    When the server receives a request for a document on a particular virtual
    host, it uses the configuration directives enclosed in the 
&lt;VirtualHost&gt;
    section. <em>Addr</em> can be
  ***************
  *** 1440,1446 ****
    (This is recommended when used with <code>_default_</code>.)<p>
    
    <strong>SECURITY</strong>: See the
  ! <A HREF="../misc/security_tips.html">security tips</A> 
    document for details on why your security could be compromised if
    the directory where logfiles are stored is writable by anyone other
    than the user that starts the server.
  --- 1441,1447 ----
    (This is recommended when used with <code>_default_</code>.)<p>
    
    <strong>SECURITY</strong>: See the
  ! <A HREF="../misc/security_tips.html">security tips</A>
    document for details on why your security could be compromised if
    the directory where logfiles are stored is writable by anyone other
    than the user that starts the server.
  
  
  
  1.23      +1 -1      apache/htdocs/manual/mod/directives.html
  
  Index: directives.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/directives.html,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -C3 -r1.22 -r1.23
  *** directives.html   1997/06/29 01:14:16     1.22
  --- directives.html   1997/07/06 17:19:14     1.23
  ***************
  *** 13,19 ****
     ALINK="#FF0000"
    >
    <!--#include virtual="header.html" -->
  ! <H1 ALIGN="CENTER">Apache directives</H1>
    
    <ul>
    <li><A HREF="core.html#accessconfig">AccessConfig</A>
  --- 13,19 ----
     ALINK="#FF0000"
    >
    <!--#include virtual="header.html" -->
  ! <H1 ALIGN="CENTER">Apache Directives</H1>
    
    <ul>
    <li><A HREF="core.html#accessconfig">AccessConfig</A>
  
  
  
  1.14      +2 -2      apache/htdocs/manual/mod/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/index.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -C3 -r1.13 -r1.14
  *** index.html        1997/06/04 16:14:14     1.13
  --- index.html        1997/07/06 17:19:14     1.14
  ***************
  *** 76,82 ****
    <dt><A HREF="mod_log_agent.html">mod_log_agent</A>
    <dd>Logging of User Agents.
    <dt><A HREF="mod_log_common.html">mod_log_common</A> up to Apache 1.1.1
  ! <dd>Standard logging in the Common Logfile Format.  Replaced by the 
    mod_log_config module in Apache 1.2 and up
    <dt><A HREF="mod_log_config.html">mod_log_config</A>
    <dd>User-configurable logging replacement for mod_log_common.
  --- 76,82 ----
    <dt><A HREF="mod_log_agent.html">mod_log_agent</A>
    <dd>Logging of User Agents.
    <dt><A HREF="mod_log_common.html">mod_log_common</A> up to Apache 1.1.1
  ! <dd>Standard logging in the Common Logfile Format.  Replaced by the
    mod_log_config module in Apache 1.2 and up
    <dt><A HREF="mod_log_config.html">mod_log_config</A>
    <dd>User-configurable logging replacement for mod_log_common.
  ***************
  *** 95,101 ****
    <dt><A HREF="mod_userdir.html">mod_userdir</A>
    <dd>User home directories.
    <dt><A HREF="mod_usertrack.html">mod_usertrack</A> Apache 1.2 and up
  ! <dd>User tracking using Cookies (replacement for mod_cookies.c) 
    </dl>
    
    <!--#include virtual="footer.html" -->
  --- 95,101 ----
    <dt><A HREF="mod_userdir.html">mod_userdir</A>
    <dd>User home directories.
    <dt><A HREF="mod_usertrack.html">mod_usertrack</A> Apache 1.2 and up
  ! <dd>User tracking using Cookies (replacement for mod_cookies.c)
    </dl>
    
    <!--#include virtual="footer.html" -->
  
  
  
  1.9       +83 -45    apache/htdocs/manual/mod/mod_access.html
  
  Index: mod_access.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_access.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -C3 -r1.8 -r1.9
  *** mod_access.html   1997/06/04 16:14:14     1.8
  --- mod_access.html   1997/07/06 17:19:14     1.9
  ***************
  *** 15,77 ****
    <!--#include virtual="header.html" -->
    
    <H1 ALIGN="CENTER">Module mod_access</h1>
  ! 
    This module is contained in the <code>mod_access.c</code> file, and
    is compiled in by default. It provides access control based on client
    hostname or IP address.
    
  ! 
  ! <menu>
    <li><A HREF="#allow">allow</A>
    <li><A HREF="#allowfromenv">allow from env=</A>
    <li><A HREF="#deny">deny</A>
    <li><A HREF="#denyfromenv">deny from env=</A>
    <li><A HREF="#order">order</A>
  ! </menu>
    <hr>
    
    
  ! <A name="allow"><h2>allow</h2></A>
    <!--%plaintext &lt;?INDEX {\tt allow} directive&gt; -->
    <strong>Syntax:</strong> allow from <em>host host ...</em><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access<p>
  ! 
    The allow directive affects which hosts can access a given directory.
    <em>Host</em> is one of the following:
    <dl>
    <dt><code>all</code>
  ! <dd>all hosts are allowed access
    <dt>A (partial) domain-name
  ! <dd>host whose name is, or ends in, this string are allowed access.
    <dt>A full IP address
    <dd>An IP address of a host allowed access
    <dt>A partial IP address
    <dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
    </dl>
  ! 
  ! Example:<blockquote><code>allow from .ncsa.uiuc.edu</code></blockquote>
  ! All hosts in the specified domain are allowed access.<p>
  ! 
    Note that this compares whole components; <code>bar.edu</code>
  ! would not match <code>foobar.edu</code>.<p>
  ! 
    See also <A HREF="#deny">deny</A>, <A HREF="#order">order</A>, and
  ! <a href="mod_browser.html#browsermatch">BrowserMatch</a>.<p>
    
    <a name="allowfromenv"><strong>Syntax:</strong> allow from 
env=<em>variablename</em></a><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_access<br>
  ! <strong>Compatibility:</strong> Apache 1.2 and above<p>
  ! 
    The allow from env directive controls access to a directory by the
    existence (or non-existence) of an environment variable.
  ! 
  ! Example:<blockquote><pre>
    BrowserMatch ^KnockKnock/2.0 let_me_in
    &lt;Directory /docroot&gt;
    order allow,deny
  --- 15,91 ----
    <!--#include virtual="header.html" -->
    
    <H1 ALIGN="CENTER">Module mod_access</h1>
  ! <P>
    This module is contained in the <code>mod_access.c</code> file, and
    is compiled in by default. It provides access control based on client
    hostname or IP address.
  + </P>
    
  ! <UL>
    <li><A HREF="#allow">allow</A>
    <li><A HREF="#allowfromenv">allow from env=</A>
    <li><A HREF="#deny">deny</A>
    <li><A HREF="#denyfromenv">deny from env=</A>
    <li><A HREF="#order">order</A>
  ! </UL>
    <hr>
    
    
  ! <h2><A name="allow">allow directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt allow} directive&gt; -->
    <strong>Syntax:</strong> allow from <em>host host ...</em><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access
  ! </p>
  ! <P>
    The allow directive affects which hosts can access a given directory.
    <em>Host</em> is one of the following:
  + </P>
    <dl>
    <dt><code>all</code>
  ! <dd>All hosts are allowed access
    <dt>A (partial) domain-name
  ! <dd>Hosts whose names match, or end in, this string are allowed access.
    <dt>A full IP address
    <dd>An IP address of a host allowed access
    <dt>A partial IP address
    <dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
    </dl>
  ! <P>
  ! Example:
  ! </P>
  ! <blockquote><code>allow from .ncsa.uiuc.edu</code></blockquote>
  ! <P>
  ! All hosts in the specified domain are allowed access.
  ! </p>
  ! <P>
    Note that this compares whole components; <code>bar.edu</code>
  ! would not match <code>foobar.edu</code>.
  ! </P>
  ! <P>
    See also <A HREF="#deny">deny</A>, <A HREF="#order">order</A>, and
  ! <a href="mod_browser.html#browsermatch">BrowserMatch</a>.
  ! </p>
    
  + <P>
    <a name="allowfromenv"><strong>Syntax:</strong> allow from 
env=<em>variablename</em></a><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_access<br>
  ! <strong>Compatibility:</strong> Apache 1.2 and above
  ! </p>
  ! <P>
    The allow from env directive controls access to a directory by the
    existence (or non-existence) of an environment variable.
  ! </P>
  ! <P>
  ! Example:
  ! </P>
  ! <blockquote><pre>
    BrowserMatch ^KnockKnock/2.0 let_me_in
    &lt;Directory /docroot&gt;
    order allow,deny
  ***************
  *** 79,98 ****
    deny from all
    &lt;/Directory&gt;
    </pre></blockquote>
  ! 
    See also <A HREF="#denyfromenv">deny from env</A>
  ! and <A HREF="#order">order</A>.<p><hr>
    
  ! <A name="deny"><h2>deny</h2></A>
    <!--%plaintext &lt;?INDEX {\tt deny} directive&gt; -->
    <strong>Syntax:</strong> deny from <em>host host ...</em><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access<p>
  ! 
    The deny directive affects which hosts can access a given directory.
    <em>Host</em> is one of the following:
    <dl>
    <dt><code>all</code>
    <dd>all hosts are denied access
  --- 93,117 ----
    deny from all
    &lt;/Directory&gt;
    </pre></blockquote>
  ! <P>
    See also <A HREF="#denyfromenv">deny from env</A>
  ! and <A HREF="#order">order</A>.
  ! </p>
  ! <hr>
    
  ! <h2><A name="deny">deny directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt deny} directive&gt; -->
    <strong>Syntax:</strong> deny from <em>host host ...</em><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access
  ! </p>
  ! <P>
    The deny directive affects which hosts can access a given directory.
    <em>Host</em> is one of the following:
  + </P>
    <dl>
    <dt><code>all</code>
    <dd>all hosts are denied access
  ***************
  *** 103,128 ****
    <dt>A partial IP address
    <dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
    </dl>
  ! 
  ! Example:<blockquote><code>deny from 16</code></blockquote>
  ! All hosts in the specified network are denied access.<p>
  ! 
    Note that this compares whole components; <code>bar.edu</code>
  ! would not match <code>foobar.edu</code>.<p>
  ! 
  ! See also <A HREF="#allow">allow</A> and <A HREF="#order">order</A>.<p>
    
    <a name="denyfromenv"><strong>Syntax:</strong> deny from 
env=<em>variablename</em></a><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_access<br>
  ! <strong>Compatibility:</strong> Apache 1.2 and above<p>
  ! 
    The deny from env directive controls access to a directory by the
    existence (or non-existence) of an environment variable.
  ! 
  ! Example:<blockquote><pre>
    BrowserMatch ^BadRobot/0.9 go_away
    &lt;Directory /docroot&gt;
    order deny,allow
  --- 122,158 ----
    <dt>A partial IP address
    <dd>The first 1 to 3 bytes of an IP address, for subnet restriction.
    </dl>
  ! <P>
  ! Example:
  ! </P>
  ! <blockquote><code>deny from 16</code></blockquote>
  ! <P>
  ! All hosts in the specified network are denied access.
  ! </p>
  ! <P>
    Note that this compares whole components; <code>bar.edu</code>
  ! would not match <code>foobar.edu</code>.
  ! </p>
  ! <P>
  ! See also <A HREF="#allow">allow</A> and <A HREF="#order">order</A>.
  ! </p>
    
  + <P>
    <a name="denyfromenv"><strong>Syntax:</strong> deny from 
env=<em>variablename</em></a><br>
    <Strong>Context:</strong> directory, .htaccess<br>
    <Strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_access<br>
  ! <strong>Compatibility:</strong> Apache 1.2 and above
  ! </p>
  ! <P>
    The deny from env directive controls access to a directory by the
    existence (or non-existence) of an environment variable.
  ! </P>
  ! <P>
  ! Example:
  ! </P>
  ! <blockquote><pre>
    BrowserMatch ^BadRobot/0.9 go_away
    &lt;Directory /docroot&gt;
    order deny,allow
  ***************
  *** 131,151 ****
    &lt;/Directory&gt;
    </pre></blockquote>
    
    See also <A HREF="#allowfromenv">allow from env</A>
  ! and <A HREF="#order">order</A>.<p><hr>
    
  ! <A name="order"><h2>order</h2></A>
    <!--%plaintext &lt;?INDEX {\tt order} directive&gt; -->
    <strong>Syntax:</strong> order <em>ordering</em><br>
    <strong>Default:</strong> <code>order deny,allow</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
    <strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access<p>
  ! 
    The order directive controls the order in which <A HREF="#allow">allow</A> 
and
    <A HREF="#deny">deny</A> directives are evaluated. <em>Ordering</em> is one
    of
    <dl>
    <dt>deny,allow
    <dd>the deny directives are evaluated before the allow directives.  (The
  --- 161,187 ----
    &lt;/Directory&gt;
    </pre></blockquote>
    
  + <P>
    See also <A HREF="#allowfromenv">allow from env</A>
  ! and <A HREF="#order">order</A>.
  ! </p>
  ! <hr>
    
  ! <h2><A name="order">order directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt order} directive&gt; -->
    <strong>Syntax:</strong> order <em>ordering</em><br>
    <strong>Default:</strong> <code>order deny,allow</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
    <strong>Override:</strong> Limit<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_access
  ! </p>
  ! <P>
    The order directive controls the order in which <A HREF="#allow">allow</A> 
and
    <A HREF="#deny">deny</A> directives are evaluated. <em>Ordering</em> is one
    of
  + </P>
    <dl>
    <dt>deny,allow
    <dd>the deny directives are evaluated before the allow directives.  (The
  ***************
  *** 157,176 ****
    <dd>Only those hosts which appear on the allow list and do not appear
    on the deny list are granted access.  (The initial state is irrelevant.)
    </dl>
  ! 
    Note that in all cases every <code>allow</code> and <code>deny</code>
    statement is evaluated, there is no &quot;short-circuiting&quot;.
  ! 
  ! <p>Example:
    <blockquote><code>
    order deny,allow<br>
    deny from all<br>
    allow from .ncsa.uiuc.edu<br>
    </code></blockquote>
    Hosts in the ncsa.uiuc.edu domain are allowed access; all other hosts are
    denied access.
  ! 
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  - 
  --- 193,214 ----
    <dd>Only those hosts which appear on the allow list and do not appear
    on the deny list are granted access.  (The initial state is irrelevant.)
    </dl>
  ! <P>
    Note that in all cases every <code>allow</code> and <code>deny</code>
    statement is evaluated, there is no &quot;short-circuiting&quot;.
  ! </P>
  ! <p>
  ! Example:
  ! </P>
    <blockquote><code>
    order deny,allow<br>
    deny from all<br>
    allow from .ncsa.uiuc.edu<br>
    </code></blockquote>
  + <P>
    Hosts in the ncsa.uiuc.edu domain are allowed access; all other hosts are
    denied access.
  ! </P>
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  
  
  
  1.5       +25 -19    apache/htdocs/manual/mod/mod_actions.html
  
  Index: mod_actions.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_actions.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -C3 -r1.4 -r1.5
  *** mod_actions.html  1997/06/04 16:14:14     1.4
  --- mod_actions.html  1997/07/06 17:19:15     1.5
  ***************
  *** 14,31 ****
    >
    <!--#include virtual="header.html" -->
    <H1 ALIGN="CENTER">Module mod_actions</h1>
  ! 
    This module is contained in the <code>mod_actions.c</code> file, and
    is compiled in by default. It provides for
    executing CGI scripts based on media type or request method. It is not
    present in versions prior to Apache 1.1.
  ! 
    <h2>Summary</h2>
  ! 
    This module lets you run CGI scripts whenever a file of a certain type
    is requested. This makes it much easier to execute scripts that
    process files.
  ! 
    <h2>Directives</h2>
    <ul>
    <li><A HREF="#action">Action</A>
  --- 14,31 ----
    >
    <!--#include virtual="header.html" -->
    <H1 ALIGN="CENTER">Module mod_actions</h1>
  ! <P>
    This module is contained in the <code>mod_actions.c</code> file, and
    is compiled in by default. It provides for
    executing CGI scripts based on media type or request method. It is not
    present in versions prior to Apache 1.1.
  ! </P>
    <h2>Summary</h2>
  ! <P>
    This module lets you run CGI scripts whenever a file of a certain type
    is requested. This makes it much easier to execute scripts that
    process files.
  ! </P>
    <h2>Directives</h2>
    <ul>
    <li><A HREF="#action">Action</A>
  ***************
  *** 34,85 ****
    
    <hr>
    
  ! <A name="action"><h2>Action</h2></A>
    <strong>Syntax:</strong> Action <em>mime-type cgi-script</em><br>
    <strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Override:</strong> FileInfo<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_actions<br>
    <strong>Compatibility:</strong> Action is only available in Apache 1.1
  ! and later<p>
  ! 
    This directive adds an action, which will activate <em>cgi-script</em> when
    a file of content type <em>mime-type</em> is requested. It sends the
    URL and file path of the requested document using the standard
    CGI PATH_INFO and PATH_TRANSLATED environment variables.
  ! 
    <hr>
    
  ! <A name="script"><h2>Script</h2></A>
    <strong>Syntax:</strong> Script <em>method cgi-script</em><br>
    <strong>Context:</strong> server config, virtual host, directory<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_actions<br>
    <strong>Compatibility:</strong> Script is only available in Apache 1.1
  ! and later<p>
    
  ! <p>This directive adds an action, which will activate <em>cgi-script</em> 
when
    a file is requested using the method of <em>method</em>, which can be
    one of <code>GET</code>, <code>POST</code>, <code>PUT</code> or
    <code>DELETE</code>. It sends the
    URL and file path of the requested document using the standard
  ! CGI PATH_INFO and PATH_TRANSLATED environment variables. 
  ! 
  ! <p>Note that the Script command defines default actions only. If a CGI
    script is called, or some other resource that is capable of handling
  ! the requested method internally, it will do so. Also note that script
    with a method of <code>GET</code> will only be called if there are
    query arguments present (e.g. foo.html?hi). Otherwise, the request
    will proceed normally.
  ! 
  ! <p>Examples:
    <pre>
        Script GET /cgi-bin/search     #e.g. for &lt;ISINDEX&gt;-style searching
        Script PUT /~bob/put.cgi
  - 
    </pre>
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  - 
  --- 34,91 ----
    
    <hr>
    
  ! <h2><A name="action">Action directive</A></h2>
  ! <P>
    <strong>Syntax:</strong> Action <em>mime-type cgi-script</em><br>
    <strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Override:</strong> FileInfo<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_actions<br>
    <strong>Compatibility:</strong> Action is only available in Apache 1.1
  ! and later
  ! </p>
  ! <P>
    This directive adds an action, which will activate <em>cgi-script</em> when
    a file of content type <em>mime-type</em> is requested. It sends the
    URL and file path of the requested document using the standard
    CGI PATH_INFO and PATH_TRANSLATED environment variables.
  ! </P>
    <hr>
    
  ! <h2><A name="script">Script directive</A></h2>
  ! <P>
    <strong>Syntax:</strong> Script <em>method cgi-script</em><br>
    <strong>Context:</strong> server config, virtual host, directory<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_actions<br>
    <strong>Compatibility:</strong> Script is only available in Apache 1.1
  ! and later
  ! </p>
    
  ! <p>
  ! This directive adds an action, which will activate <em>cgi-script</em> when
    a file is requested using the method of <em>method</em>, which can be
    one of <code>GET</code>, <code>POST</code>, <code>PUT</code> or
    <code>DELETE</code>. It sends the
    URL and file path of the requested document using the standard
  ! CGI PATH_INFO and PATH_TRANSLATED environment variables.
  ! </P>
  ! <p>
  ! Note that the Script command defines default actions only. If a CGI
    script is called, or some other resource that is capable of handling
  ! the requested method internally, it will do so. Also note that Script
    with a method of <code>GET</code> will only be called if there are
    query arguments present (e.g. foo.html?hi). Otherwise, the request
    will proceed normally.
  ! </P>
  ! <p>
  ! Examples:
  ! </P>
    <pre>
        Script GET /cgi-bin/search     #e.g. for &lt;ISINDEX&gt;-style searching
        Script PUT /~bob/put.cgi
    </pre>
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  
  
  
  1.11      +84 -43    apache/htdocs/manual/mod/mod_alias.html
  
  Index: mod_alias.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_alias.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -C3 -r1.10 -r1.11
  *** mod_alias.html    1997/06/04 16:14:15     1.10
  --- mod_alias.html    1997/07/06 17:19:15     1.11
  ***************
  *** 15,146 ****
    <!--#include virtual="header.html" -->
    
    <H1 ALIGN="CENTER">Module mod_alias</h1>
  ! 
    This module is contained in the <code>mod_alias.c</code> file, and
    is compiled in by default. It provides for mapping different parts of the
    host filesystem in the the document tree, and for URL redirection.
    
  ! 
  ! <menu>
    <li><A HREF="#alias">Alias</A>
    <li><A HREF="#redirect">Redirect</A>
    <li><A HREF="#redirecttemp">RedirectTemp</A>
    <li><A HREF="#redirectperm">RedirectPermanent</A>
    <li><A HREF="#scriptalias">ScriptAlias</A>
  ! </menu>
    <hr>
    
    
  ! <A name="alias"><h2>Alias</h2></A>
    <!--%plaintext &lt;?INDEX {\tt Alias} directive&gt; -->
    <strong>Syntax:</strong> Alias <em>url-path directory-filename</em><br>
    <Strong>Context:</strong> server config, virtual host<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_alias<br>
  ! 
    The Alias directive allows documents to be stored in the local filesystem
    other than under the <A HREF="core.html#documentroot">DocumentRoot</A>.
    URLs with a (%-decoded) path beginning with <em>url-path</em> will be
    mapped to local files beginning with <em>directory-filename</em>.
    Example:
    <blockquote><code>Alias /image /ftp/pub/image</code></blockquote>
    A request for http://myserver/image/foo.gif would cause the server to
  ! return the file /ftp/pub/image/foo.gif.<p>
  ! 
    Note that if you include a trailing / on the <em>url-path</em> then the
    server will require a trailing / in order to expand the alias.  That is,
    if you use <code>Alias /icons/ /usr/local/etc/httpd/icons/</code> then
  ! the url <code>/icons</code> will not be aliased.<p>
  ! 
  ! See also <A HREF="#scriptalias">ScriptAlias</A>.<p><hr>
    
  ! <A name="redirect"><h2>Redirect</h2></A>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> Redirect [ <em>status</em> ] <em>url-path 
url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
    <strong>Compatibility:</strong> The directory and .htaccess context's
  ! are only available in versions 1.1 and later. The <em>status</em> argument 
is only available in Apache 1.2 or later.<p>
  ! 
    The Redirect directive maps an old URL into a new one. The new URL is 
returned
    to the client which attempts to fetch it again with the new address.
    <em>Url-path</em> a (%-decoded) path; any requests for documents beginning 
with
    this path will be returned a redirect error to a new (%-encoded) url
  ! beginning with <em>url</em>. Example:
    <blockquote><code>Redirect /service
    http://foo2.bar.com/service</code></blockquote>
    If the client requests http://myserver/service/foo.txt, it will be told to
  ! access http://foo2.bar.com/service/foo.txt instead.<p>
  ! 
  ! Note: Redirect directives take precedence over Alias and ScriptAlias
    directives, irrespective of their ordering in the configuration file.  Also,
  ! <em>Url-path</em> must be an absolute path, not a relative path, even when 
used with
  ! .htaccess files or inside of &lt;Directory&gt; sections.<p>
  ! 
    If no <em>status</em> argument is given, the redirect will be
  ! "temporary" (HTTP status 302). This indicates to the client that the
    resources is has moved temporarily. The <em>status</em>
    argument can be used to return other HTTP status codes:
    <dl>
  ! <dt>permanent<dd>Returns a permanent redirect status (301) indicating that
    the resource has moved permanently.
  ! <dt>temp<dd>Returns a temporary redirect status (302). This is the
    default.
  ! <dt>seeother<dd>Returns a "See Other" status (303) indicating that
    the resource has been replaced.
  ! <dt>gone<dd>Returns a "Gone" status (410) indicating that the resource
    has been permanently removed. When this status is used the <em>url</em>
    argument should be omitted.
    </dl>
  ! 
    Other status codes can be returned by giving the numeric status code
    as the value of <em>status</em>. If the status is between 300 and 399,
    the <em>url</em> argument must be present, otherwise it must be
    omitted. Note that the status must be known to the Apache code (see
    the function <code>send_error_response</code> in http_protocol.c).
    
  ! <A name="redirecttemp"><h2>RedirectTemp</h2></A>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> RedirectTemp <em>url-path url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
  ! <strong>Compatibility:</strong> This directive is only available in 1.2<P>
  ! 
    This directive makes the client know that the Redirect is only
  ! temporary. (Status 302). Exactly equivalent to <code>Redirect temporary 
</code><P>
    
  ! <A name="redirectperm"><h2>RedirectPermanent</h2></A>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> RedirectPermanent <em>url-path url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
  ! <strong>Compatibility:</strong> This directive is only available in 1.2<P>
  ! 
  ! This directive makes the client know that the Redirect is permanent.
  ! (Status 301). Exactly equivalent to <code>Redirect permanent</code><P>
  ! 
    <hr>
  ! <A name="scriptalias"><h2>ScriptAlias</h2></A>
    <!--%plaintext &lt;?INDEX {\tt ScriptAlias} directive&gt; -->
    <strong>Syntax:</strong> ScriptAlias <em>url-path 
directory-filename</em><br>
    <Strong>Context:</strong> server config, virtual host<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_alias<br>
  ! 
    The ScriptAlias directive has the same behavior as the
    <A HREF="#alias">Alias</A> directive, except that in addition it
    marks the target directory as containing CGI scripts.
    URLs with a (%-decoded) path beginning with <em>url-path</em> will be
    mapped to scripts beginning with <em>directory-filename</em>.
    Example:
    <blockquote><code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code></blockquote>
    A request for http://myserver/cgi-bin/foo would cause the server to
  ! run the script /web/cgi-bin/foo.<p>
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  - 
  --- 15,187 ----
    <!--#include virtual="header.html" -->
    
    <H1 ALIGN="CENTER">Module mod_alias</h1>
  ! <P>
    This module is contained in the <code>mod_alias.c</code> file, and
    is compiled in by default. It provides for mapping different parts of the
    host filesystem in the the document tree, and for URL redirection.
  + </P>
    
  ! <H2>Directives</H2>
  ! <UL>
    <li><A HREF="#alias">Alias</A>
    <li><A HREF="#redirect">Redirect</A>
    <li><A HREF="#redirecttemp">RedirectTemp</A>
    <li><A HREF="#redirectperm">RedirectPermanent</A>
    <li><A HREF="#scriptalias">ScriptAlias</A>
  ! </UL>
    <hr>
    
    
  ! <h2><A name="alias">Alias directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt Alias} directive&gt; -->
    <strong>Syntax:</strong> Alias <em>url-path directory-filename</em><br>
    <Strong>Context:</strong> server config, virtual host<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_alias
  ! </P>
  ! <P>
    The Alias directive allows documents to be stored in the local filesystem
    other than under the <A HREF="core.html#documentroot">DocumentRoot</A>.
    URLs with a (%-decoded) path beginning with <em>url-path</em> will be
    mapped to local files beginning with <em>directory-filename</em>.
  + <P>
    Example:
  + </P>
    <blockquote><code>Alias /image /ftp/pub/image</code></blockquote>
  + <P>
    A request for http://myserver/image/foo.gif would cause the server to
  ! return the file /ftp/pub/image/foo.gif.
  ! </p>
  ! <P>
    Note that if you include a trailing / on the <em>url-path</em> then the
    server will require a trailing / in order to expand the alias.  That is,
    if you use <code>Alias /icons/ /usr/local/etc/httpd/icons/</code> then
  ! the url <code>/icons</code> will not be aliased.
  ! </p>
  ! <P>
  ! See also <A HREF="#scriptalias">ScriptAlias</A>.
  ! </p>
  ! <hr>
    
  ! <h2><A name="redirect">Redirect directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> Redirect [ <em>status</em> ] <em>url-path 
url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
    <strong>Compatibility:</strong> The directory and .htaccess context's
  ! are only available in versions 1.1 and later. The <em>status</em>
  ! argument is only available in Apache 1.2 or later.
  ! </P>
  ! <P>
    The Redirect directive maps an old URL into a new one. The new URL is 
returned
    to the client which attempts to fetch it again with the new address.
    <em>Url-path</em> a (%-decoded) path; any requests for documents beginning 
with
    this path will be returned a redirect error to a new (%-encoded) url
  ! beginning with <em>url</em>.
  ! </P>
  ! <P>
  ! Example:
  ! </P>
    <blockquote><code>Redirect /service
    http://foo2.bar.com/service</code></blockquote>
  + <P>
    If the client requests http://myserver/service/foo.txt, it will be told to
  ! access http://foo2.bar.com/service/foo.txt instead.
  ! </p>
  ! <P>
  ! <STRONG>Note:</STRONG> Redirect directives take precedence over Alias
  ! and ScriptAlias
    directives, irrespective of their ordering in the configuration file.  Also,
  ! <em>Url-path</em> must be an absolute path, not a relative path, even
  ! when used with .htaccess files or inside of &lt;Directory&gt; sections.
  ! </p>
  ! <P>
    If no <em>status</em> argument is given, the redirect will be
  ! &quot;temporary&quot; (HTTP status 302). This indicates to the client that 
the
    resources is has moved temporarily. The <em>status</em>
    argument can be used to return other HTTP status codes:
  + <P>
    <dl>
  ! <dt>permanent
  ! <dd>Returns a permanent redirect status (301) indicating that
    the resource has moved permanently.
  ! <dt>temp
  ! <dd>Returns a temporary redirect status (302). This is the
    default.
  ! <dt>seeother
  ! <dd>Returns a "See Other" status (303) indicating that
    the resource has been replaced.
  ! <dt>gone
  ! <dd>Returns a "Gone" status (410) indicating that the resource
    has been permanently removed. When this status is used the <em>url</em>
    argument should be omitted.
    </dl>
  ! <P>
    Other status codes can be returned by giving the numeric status code
    as the value of <em>status</em>. If the status is between 300 and 399,
    the <em>url</em> argument must be present, otherwise it must be
    omitted. Note that the status must be known to the Apache code (see
    the function <code>send_error_response</code> in http_protocol.c).
  + </P>
  + <HR>
    
  ! <h2><A name="redirecttemp">RedirectTemp directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> RedirectTemp <em>url-path url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
  ! <strong>Compatibility:</strong> This directive is only available in 1.2
  ! </P>
  ! <P>
    This directive makes the client know that the Redirect is only
  ! temporary (status 302). Exactly equivalent to <code>Redirect
  ! temporary</code>.
  ! </P>
  ! <HR>
    
  ! <h2><A name="redirectperm">RedirectPermanent directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt Redirect} directive&gt; -->
    <strong>Syntax:</strong> RedirectPermanent <em>url-path url</em><br>
    <Strong>Context:</strong> server config, virtual host, directory, 
.htaccess<br>
    <strong>Status:</strong> Base<br>
    <strong>Module:</strong> mod_alias<br>
  ! <strong>Compatibility:</strong> This directive is only available in 1.2
  ! </P>
  ! <P>
  ! This directive makes the client know that the Redirect is permanent
  ! (status 301). Exactly equivalent to <code>Redirect permanent</code>.
  ! </P>
    <hr>
  ! 
  ! <h2><A name="scriptalias">ScriptAlias directive</A></h2>
  ! <P>
    <!--%plaintext &lt;?INDEX {\tt ScriptAlias} directive&gt; -->
    <strong>Syntax:</strong> ScriptAlias <em>url-path 
directory-filename</em><br>
    <Strong>Context:</strong> server config, virtual host<br>
    <strong>Status:</strong> Base<br>
  ! <strong>Module:</strong> mod_alias
  ! </P>
  ! <P>
    The ScriptAlias directive has the same behavior as the
    <A HREF="#alias">Alias</A> directive, except that in addition it
    marks the target directory as containing CGI scripts.
    URLs with a (%-decoded) path beginning with <em>url-path</em> will be
    mapped to scripts beginning with <em>directory-filename</em>.
  + <P>
    Example:
  + </P>
    <blockquote><code>ScriptAlias /cgi-bin/ /web/cgi-bin/</code></blockquote>
  + <P>
    A request for http://myserver/cgi-bin/foo would cause the server to
  ! run the script /web/cgi-bin/foo.
  ! </P>
    
    <!--#include virtual="footer.html" -->
    </BODY>
    </HTML>
  
  
  
  1.10      +17 -12    apache/htdocs/manual/mod/mod_auth_anon.html
  
  Index: mod_auth_anon.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_anon.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** mod_auth_anon.html        1997/06/24 18:39:37     1.9
  --- mod_auth_anon.html        1997/07/06 17:19:15     1.10
  ***************
  *** 52,58 ****
    
    <hr>
    
  ! <A name="anonymous"><h2>Anonymous</h2></a>
    <!--%plaintext &lt;?INDEX {\tt Anonymous} directive&gt; -->
    <strong>Syntax:</strong> Anonymous <em>user user ...</em><br>
    <strong>Default:</strong> none<br>
  --- 52,58 ----
    
    <hr>
    
  ! <h2><A name="anonymous">Anonymous directive</A></h2>
    <!--%plaintext &lt;?INDEX {\tt Anonymous} directive&gt; -->
    <strong>Syntax:</strong> Anonymous <em>user user ...</em><br>
    <strong>Default:</strong> none<br>
  ***************
  *** 80,86 ****
            'I Don't Know'.
    <HR>
    
  ! <A name="Authoritative"><h2>Anonymous_Authoritative</h2></A>
    <strong>Syntax:</strong> Anonymous_Authoritative <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_Authoritative off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  --- 80,86 ----
            'I Don't Know'.
    <HR>
    
  ! <h2><A name="Authoritative">Anonymous_Authoritative directive</A></h2>
    <strong>Syntax:</strong> Anonymous_Authoritative <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_Authoritative off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  ***************
  *** 93,105 ****
            userID does not match the values specified in the
            <code>Anonymous</code> directive, access is denied.
            <p>
  !         Be sure you know what you are doing when you decide to switch 
            it on. And remember that it is the linking order of the modules
            (in the Configuration / Make file) which details the order
            in which the Authorization modules are queried.
    <hr>
    
  ! <A name="LogEmail"><h2>Anonymous_LogEmail</h2></A>
    <strong>Syntax:</strong> Anonymous_LogEmail <em>on | off</em><br>
    <strong>Default:</strong> <code>off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  --- 93,105 ----
            userID does not match the values specified in the
            <code>Anonymous</code> directive, access is denied.
            <p>
  !         Be sure you know what you are doing when you decide to switch
            it on. And remember that it is the linking order of the modules
            (in the Configuration / Make file) which details the order
            in which the Authorization modules are queried.
    <hr>
    
  ! <h2><A name="LogEmail">Anonymous_LogEmail directive</A></h2>
    <strong>Syntax:</strong> Anonymous_LogEmail <em>on | off</em><br>
    <strong>Default:</strong> <code>off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  ***************
  *** 111,117 ****
            contains a sensible email address) is logged in the httpd-log file.
    <hr>
    
  ! <A name="MustGiveEmail"><h2>Anonymous_MustGiveEmail</h2></a>
    <!--%plaintext &lt;?INDEX {\tt Anonymous_MustGiveEmail} directive&gt; -->
    <strong>Syntax:</strong> Anonymous_MustGiveEmail <em>on</em> | 
<em>off</em><br>
    <strong>Default:</strong> off<br>
  --- 111,117 ----
            contains a sensible email address) is logged in the httpd-log file.
    <hr>
    
  ! <h2><A name="MustGiveEmail">Anonymous_MustGiveEmail directive</A></h2>
    <!--%plaintext &lt;?INDEX {\tt Anonymous_MustGiveEmail} directive&gt; -->
    <strong>Syntax:</strong> Anonymous_MustGiveEmail <em>on</em> | 
<em>off</em><br>
    <strong>Default:</strong> off<br>
  ***************
  *** 124,130 ****
            address as the password.  This prohibits blank passwords.
    <HR>
    
  ! <A name="NoUserID"><h2>Anonymous_NoUserID</h2></A>
    <strong>Syntax:</strong> Anonymous_NoUserID <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_NoUserID off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  --- 124,130 ----
            address as the password.  This prohibits blank passwords.
    <HR>
    
  ! <h2><A name="NoUserID">Anonymous_NoUserID directive</A></h2>
    <strong>Syntax:</strong> Anonymous_NoUserID <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_NoUserID off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  ***************
  *** 140,146 ****
    
    <hr>
    
  ! <A name="VerifyEmail"><h2>Anonymous_VerifyEmail</h2></A>
    <strong>Syntax:</strong> Anonymous <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_VerifyEmail off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  --- 140,146 ----
    
    <hr>
    
  ! <h2><A name="VerifyEmail">Anonymous_VerifyEmail directive</A></h2>
    <strong>Syntax:</strong> Anonymous <em>on | off</em><br>
    <strong>Default:</strong> <code>Anonymous_VerifyEmail off</code><br>
    <strong>Context:</strong> directory, .htaccess<br>
  ***************
  *** 152,158 ****
            checked for at least one '@' and a '.' to encourage users to enter
            valid email addresses (see the above <code>Auth_LogEmail</code>).
    
  ! <hr><a name="Example"><h2>Example</h2></a>
    
    The example below (when combined with the Auth directives
    of a htpasswd-file based (or GDM, mSQL etc) base access
  --- 152,159 ----
            checked for at least one '@' and a '.' to encourage users to enter
            valid email addresses (see the above <code>Auth_LogEmail</code>).
    
  ! <hr>
  ! <h2><a name="Example">Example</A></h2>
    
    The example below (when combined with the Auth directives
    of a htpasswd-file based (or GDM, mSQL etc) base access
  ***************
  *** 202,212 ****
    </dl>
    
    
  ! <hr><h2><a name="CompileTimeOptions">Compile Time Options</a></h2>
    
    Currently there are no Compile options.
    
  ! <hr><h2><a name="RevisionHistory">Revision History</a></h2>
    
    This version: 23 Nov 1995, 24 Feb 1996, 16 May 1996.
    
  --- 203,215 ----
    </dl>
    
    
  ! <hr>
  ! <h2><a name="CompileTimeOptions">Compile Time Options</a></h2>
    
    Currently there are no Compile options.
    
  ! <hr>
  ! <h2><a name="RevisionHistory">Revision History</a></h2>
    
    This version: 23 Nov 1995, 24 Feb 1996, 16 May 1996.
    
  ***************
  *** 223,229 ****
    </dl>
    
    
  ! <hr><h2><a name="Person">Contact/person to blame</a></h2>
    
    This module was written for the
    <a href="http://ewse.ceo.org";>European Wide Service Exchange</a> by
  --- 226,233 ----
    </dl>
    
    
  ! <hr>
  ! <h2><a name="Person">Contact/person to blame</a></h2>
    
    This module was written for the
    <a href="http://ewse.ceo.org";>European Wide Service Exchange</a> by
  ***************
  *** 234,240 ****
    <p>
    
    
  ! <hr><h2><a NAME="Sourcecode">Sourcecode</a></h2>
    
    The source code can be found at <a href="http://www.apache.org";><code>
    http://www.apache.org</code></a>. A snapshot of a development version
  --- 238,245 ----
    <p>
    
    
  ! <hr>
  ! <h2><a NAME="Sourcecode">Sourcecode</a></h2>
    
    The source code can be found at <a href="http://www.apache.org";><code>
    http://www.apache.org</code></a>. A snapshot of a development version
  
  
  
  1.11      +1 -1      apache/htdocs/manual/mod/mod_auth_dbm.html
  
  Index: mod_auth_dbm.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_dbm.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -C3 -r1.10 -r1.11
  *** mod_auth_dbm.html 1997/06/04 16:14:17     1.10
  --- mod_auth_dbm.html 1997/07/06 17:19:16     1.11
  ***************
  *** 18,24 ****
    
    This module is contained in the <code>mod_auth_dbm.c</code> file, and
    is not compiled in by default. It provides for user authentication using
  ! DBM files. 
    
    
    <menu>
  --- 18,24 ----
    
    This module is contained in the <code>mod_auth_dbm.c</code> file, and
    is not compiled in by default. It provides for user authentication using
  ! DBM files.
    
    
    <menu>
  
  
  
  1.7       +2 -2      apache/htdocs/manual/mod/mod_cern_meta.html
  
  Index: mod_cern_meta.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_cern_meta.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** mod_cern_meta.html        1997/06/04 16:14:18     1.6
  --- mod_cern_meta.html        1997/07/06 17:19:16     1.7
  ***************
  *** 21,34 ****
    
    <h2>Summary</h2>
    
  ! Emulate the CERN HTTPD Meta file semantics.  Meta files are HTTP 
    headers that can be output in addition to the normal range of headers
    for each file accessed.  They appear rather like the Apache
    .asis files, and are able to provide a crude way of influencing
    the Expires: header, as well as providing other curiosities.
    There are many ways to manage meta information, this one was
    chosen because there is already a large number of CERN users
  ! who can exploit this module. 
    
    <p>More information on the
    <a href="http://www.w3.org/pub/WWW/Daemon/User/Config/General.html#MetaDir
  --- 21,34 ----
    
    <h2>Summary</h2>
    
  ! Emulate the CERN HTTPD Meta file semantics.  Meta files are HTTP
    headers that can be output in addition to the normal range of headers
    for each file accessed.  They appear rather like the Apache
    .asis files, and are able to provide a crude way of influencing
    the Expires: header, as well as providing other curiosities.
    There are many ways to manage meta information, this one was
    chosen because there is already a large number of CERN users
  ! who can exploit this module.
    
    <p>More information on the
    <a href="http://www.w3.org/pub/WWW/Daemon/User/Config/General.html#MetaDir
  
  
  
  1.8       +1 -1      apache/htdocs/manual/mod/mod_dir.html
  
  Index: mod_dir.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_dir.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** mod_dir.html      1997/06/24 16:36:56     1.7
  --- mod_dir.html      1997/07/06 17:19:16     1.8
  ***************
  *** 160,166 ****
    format (<em>alttext</em>,<em>url</em>) where <em>alttext</em> is the text 
tag
    given for an icon for non-graphical browsers.<p>
    
  ! <em>Mime-encoding</em> is a wildcard expression matching required the 
    content-encoding. Examples:
    <blockquote><code>
    AddIconByEncoding /icons/compress.xbm x-compress
  --- 160,166 ----
    format (<em>alttext</em>,<em>url</em>) where <em>alttext</em> is the text 
tag
    given for an icon for non-graphical browsers.<p>
    
  ! <em>Mime-encoding</em> is a wildcard expression matching required the
    content-encoding. Examples:
    <blockquote><code>
    AddIconByEncoding /icons/compress.xbm x-compress
  
  
  
  1.7       +1 -1      apache/htdocs/manual/mod/mod_env.html
  
  Index: mod_env.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_env.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** mod_env.html      1997/06/04 16:14:20     1.6
  --- mod_env.html      1997/07/06 17:19:16     1.7
  ***************
  *** 27,33 ****
    CERN web-servers are able to do this, so this module is especially
    useful to web-admins who wish to migrate from CERN to Apache without
    rewriting all their scripts
  !  
    <h2>Directives</h2>
    <ul>
    <li><A HREF="#passenv">PassEnv</A>
  --- 27,33 ----
    CERN web-servers are able to do this, so this module is especially
    useful to web-admins who wish to migrate from CERN to Apache without
    rewriting all their scripts
  ! 
    <h2>Directives</h2>
    <ul>
    <li><A HREF="#passenv">PassEnv</A>
  
  
  
  1.7       +7 -7      apache/htdocs/manual/mod/mod_imap.html
  
  Index: mod_imap.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_imap.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** mod_imap.html     1997/06/04 16:14:21     1.6
  --- mod_imap.html     1997/07/06 17:19:17     1.7
  ***************
  *** 77,83 ****
      <dt><code>none</code>
      <dd>If ImapMenu is
           <code>none</code>, no menu is generated, and the <code>default</code>
  !        action is performed.  
      <dt><code>formatted</code>
      <dd>A <code>formatted</code> menu is the simplest menu.  Comments
           in the imagemap file are ignored.  A level one header is
  --- 77,83 ----
      <dt><code>none</code>
      <dd>If ImapMenu is
           <code>none</code>, no menu is generated, and the <code>default</code>
  !        action is performed.
      <dt><code>formatted</code>
      <dd>A <code>formatted</code> menu is the simplest menu.  Comments
           in the imagemap file are ignored.  A level one header is
  ***************
  *** 153,160 ****
    <h3>Imagemap File Directives</h3>
    There are six directives allowed in the imagemap file.  The directives
    can come in any order, but are processed in the order they are found
  ! in the imagemap file.  
  ! <dl>  
    <dt><code>base</code> Directive
    <dd>Has the effect of <code>&lt;BASE href="value"&gt;</code>.  The
         non-absolute URLs of the map-file are taken relative to this value.
  --- 153,160 ----
    <h3>Imagemap File Directives</h3>
    There are six directives allowed in the imagemap file.  The directives
    can come in any order, but are processed in the order they are found
  ! in the imagemap file.
  ! <dl>
    <dt><code>base</code> Directive
    <dd>Has the effect of <code>&lt;BASE href="value"&gt;</code>.  The
         non-absolute URLs of the map-file are taken relative to this value.
  ***************
  *** 217,223 ****
      <dt><code>referer</code>
      <dd>Equivalent to the URL of the referring document.
           Defaults to <code>http://servername/</code> if no Referer:
  !        header was present. 
    <p>
      <dt><code>nocontent</code>
      <dd>Sends a status code of <code>204 No Content</code>,
  --- 217,223 ----
      <dt><code>referer</code>
      <dd>Equivalent to the URL of the referring document.
           Defaults to <code>http://servername/</code> if no Referer:
  !        header was present.
    <p>
      <dt><code>nocontent</code>
      <dd>Sends a status code of <code>204 No Content</code>,
  ***************
  *** 227,233 ****
      <dt><code>error</code>
      <dd>Fails with a <code>500 Server Error</code>.  Valid for all but
           <code>base</code>, but sort of silly for anything but
  !        <code>default</code>. 
    </dl>
    
    <h3>Coordinates</h3>
  --- 227,233 ----
      <dt><code>error</code>
      <dd>Fails with a <code>500 Server Error</code>.  Valid for all but
           <code>base</code>, but sort of silly for anything but
  !        <code>default</code>.
    </dl>
    
    <h3>Coordinates</h3>
  ***************
  *** 237,249 ****
           separated by a comma.  The coordinates are separated from each other
           by whitespace.  To accommodate the way Lynx handles imagemaps, 
should a
           user select the coordinate <code>0,0</code>, it is as if
  !        no coordinate had been selected.   
    </dl>
    
    <h3>Quoted Text</h3>
    <dl>
      <dt><code>"Menu Text"</code>
  !   <dd>After the value or after the coordinates, the line optionally may 
           contain text within double quotes.  This string is used as the
           text for the link if a menu is generated:<br>
         <code>&lt;a href="http://foo.com/"&gt;Menu text&lt;/a&gt;</code><br>
  --- 237,249 ----
           separated by a comma.  The coordinates are separated from each other
           by whitespace.  To accommodate the way Lynx handles imagemaps, 
should a
           user select the coordinate <code>0,0</code>, it is as if
  !        no coordinate had been selected.
    </dl>
    
    <h3>Quoted Text</h3>
    <dl>
      <dt><code>"Menu Text"</code>
  !   <dd>After the value or after the coordinates, the line optionally may
           contain text within double quotes.  This string is used as the
           text for the link if a menu is generated:<br>
         <code>&lt;a href="http://foo.com/"&gt;Menu text&lt;/a&gt;</code><br>
  
  
  
  1.15      +11 -11    apache/htdocs/manual/mod/mod_include.html
  
  Index: mod_include.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_include.html,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -C3 -r1.14 -r1.15
  *** mod_include.html  1997/06/24 18:39:38     1.14
  --- mod_include.html  1997/07/06 17:19:17     1.15
  ***************
  *** 19,25 ****
    is compiled in by default. It provides for server-parsed html
    documents. Several directives beyond the original NCSA definition have been
    included in Apache 1.2 - these are flagged below with the phrase
  ! "Apache 1.2 and above".  Of particular significance are the new flow 
    control directives documented at the bottom.
    
    <H2>Enabling Server-Side Includes</H2>
  --- 19,25 ----
    is compiled in by default. It provides for server-parsed html
    documents. Several directives beyond the original NCSA definition have been
    included in Apache 1.2 - these are flagged below with the phrase
  ! "Apache 1.2 and above".  Of particular significance are the new flow
    control directives documented at the bottom.
    
    <H2>Enabling Server-Side Includes</H2>
  ***************
  *** 193,199 ****
    <dt>value
    <dd>The value to give a variable.
    </dl>
  ! For example: 
      <CODE>&lt;!--#set var="category" value="help" --&gt;</CODE>
    <dd>Apache 1.2 and above.
    
  --- 193,199 ----
    <dt>value
    <dd>The value to give a variable.
    </dl>
  ! For example:
      <CODE>&lt;!--#set var="category" value="help" --&gt;</CODE>
    <dd>Apache 1.2 and above.
    
  ***************
  *** 203,209 ****
    
    In addition to the variables in the standard CGI environment, these are
    available for the <code>echo</code> command, for <code>if</code> and
  ! <code>elif</code>, and to any program invoked by the document.  
    
    <dl>
    <dt>DATE_GMT
  --- 203,209 ----
    
    In addition to the variables in the standard CGI environment, these are
    available for the <code>echo</code> command, for <code>if</code> and
  ! <code>elif</code>, and to any program invoked by the document.
    
    <dl>
    <dt>DATE_GMT
  ***************
  *** 254,261 ****
        &quot;<SAMP>X</SAMP>&quot; and <SAMP>REQUEST_METHOD</SAMP> is
        &quot;<SAMP>Y</SAMP>&quot;.
    
  ! <P> EXAMPLE: the below example will print "in foo" if the DOCUMENT_URI is 
  ! /foo/file.html, "in bar" if it is /bar/file.html and "in neither" 
    otherwise:
    <PRE>
        &lt;!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --&gt;
  --- 254,261 ----
        &quot;<SAMP>X</SAMP>&quot; and <SAMP>REQUEST_METHOD</SAMP> is
        &quot;<SAMP>Y</SAMP>&quot;.
    
  ! <P> EXAMPLE: the below example will print "in foo" if the DOCUMENT_URI is
  ! /foo/file.html, "in bar" if it is /bar/file.html and "in neither"
    otherwise:
    <PRE>
        &lt;!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --&gt;
  ***************
  *** 291,297 ****
        if the original test_condition was false.  These elements
        are optional.
    
  ! <P> The <B><CODE>endif</CODE></B> element ends the 
        <B><CODE>if</CODE></B> element and is required.
    
    <P> <I>test_condition</I> is one of the following:
  --- 291,297 ----
        if the original test_condition was false.  These elements
        are optional.
    
  ! <P> The <B><CODE>endif</CODE></B> element ends the
        <B><CODE>if</CODE></B> element and is required.
    
    <P> <I>test_condition</I> is one of the following:
  ***************
  *** 309,327 ****
        Unix egrep command.
    
    <DT>( <I>test_condition</I> )
  !         <DD>true if <I>test_condition</I> is true 
    <DT>! <I>test_condition</I>
            <DD>true if <I>test_condition</I> is false
    <DT><I>test_condition1</I> && <I>test_condition2</I>
            <DD>true if both <I>test_condition1</I> and
  !         <I>test_condition2</I> are true 
    <DT><I>test_condition1</I> || <I>test_condition2</I>
            <DD>true if either <I>test_condition1</I> or
  !         <I>test_condition2</I> is true 
    </DL>
    
    <P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and
  !     "<I>||</I>". 
        "<I>!</I>" binds most tightly.  Thus, the following are equivalent:
    
    <PRE>
  --- 309,327 ----
        Unix egrep command.
    
    <DT>( <I>test_condition</I> )
  !         <DD>true if <I>test_condition</I> is true
    <DT>! <I>test_condition</I>
            <DD>true if <I>test_condition</I> is false
    <DT><I>test_condition1</I> && <I>test_condition2</I>
            <DD>true if both <I>test_condition1</I> and
  !         <I>test_condition2</I> are true
    <DT><I>test_condition1</I> || <I>test_condition2</I>
            <DD>true if either <I>test_condition1</I> or
  !         <I>test_condition2</I> is true
    </DL>
    
    <P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and
  !     "<I>||</I>".
        "<I>!</I>" binds most tightly.  Thus, the following are equivalent:
    
    <PRE>
  ***************
  *** 360,366 ****
    
    The XBitHack directives controls the parsing of ordinary html documents.
    This directive only affects files associated with the MIME type
  ! <CODE>text/html</CODE>. 
    <em>Status</em> can have the following values:
    <dl>
    <dt>off
  --- 360,366 ----
    
    The XBitHack directives controls the parsing of ordinary html documents.
    This directive only affects files associated with the MIME type
  ! <CODE>text/html</CODE>.
    <em>Status</em> can have the following values:
    <dl>
    <dt>off
  
  
  
  1.7       +4 -4      apache/htdocs/manual/mod/mod_negotiation.html
  
  Index: mod_negotiation.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_negotiation.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -C3 -r1.6 -r1.7
  *** mod_negotiation.html      1997/06/04 16:14:23     1.6
  --- mod_negotiation.html      1997/07/06 17:19:17     1.7
  ***************
  *** 17,23 ****
    
    This module is contained in the <code>mod_negotiation.c</code> file,
    and is compiled in by default. It provides for <A
  ! HREF="../content-negotiation.html">content negotiation</A>. 
    
    <h2>Summary</h2>
    Content negotiation, or more accurately content selection, is the
  --- 17,23 ----
    
    This module is contained in the <code>mod_negotiation.c</code> file,
    and is compiled in by default. It provides for <A
  ! HREF="../content-negotiation.html">content negotiation</A>.
    
    <h2>Summary</h2>
    Content negotiation, or more accurately content selection, is the
  ***************
  *** 56,62 ****
    <dd>The length of the file, in bytes. If this header is not present, then
    the actual length of the file is used.
    <dt>Content-Type:
  ! <dd>The MIME media type of the document, with optional parameters. 
    parameters are separated from the media type and from one another by
    semi-colons. Parameter syntax is name=value; allowed parameters are:
    <dl>
  --- 56,62 ----
    <dd>The length of the file, in bytes. If this header is not present, then
    the actual length of the file is used.
    <dt>Content-Type:
  ! <dd>The MIME media type of the document, with optional parameters.
    parameters are separated from the media type and from one another by
    semi-colons. Parameter syntax is name=value; allowed parameters are:
    <dl>
  ***************
  *** 111,117 ****
    
    This directive only applies to requests which come from HTTP/1.0 browsers.
    HTTP/1.1 provides much better control over the caching of negotiated
  ! documents, and this directive has no effect in responses to 
    HTTP/1.1 requests.
    
    
  --- 111,117 ----
    
    This directive only applies to requests which come from HTTP/1.0 browsers.
    HTTP/1.1 provides much better control over the caching of negotiated
  ! documents, and this directive has no effect in responses to
    HTTP/1.1 requests.
    
    
  ***************
  *** 139,145 ****
    
    Note that this directive only has an effect if a 'best' language
    cannot be determined by other any other means. Correctly implemented
  ! HTTP/1.1 requests will mean this directive has no effect. 
    
    <!--#include virtual="footer.html" -->
    </BODY>
  --- 139,145 ----
    
    Note that this directive only has an effect if a 'best' language
    cannot be determined by other any other means. Correctly implemented
  ! HTTP/1.1 requests will mean this directive has no effect.
    
    <!--#include virtual="footer.html" -->
    </BODY>
  
  
  
  1.25      +2 -2      apache/htdocs/manual/mod/mod_proxy.html
  
  Index: mod_proxy.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -C3 -r1.24 -r1.25
  *** mod_proxy.html    1997/06/30 21:42:28     1.24
  --- mod_proxy.html    1997/07/06 17:19:18     1.25
  ***************
  *** 28,34 ****
    <h2>Summary</h2>
    
    This module implements a proxy/cache for Apache. It implements
  ! proxying capability for 
    <code>FTP</code>,
    <code>CONNECT</code> (for SSL),
    <code>HTTP/0.9</code>, and
  --- 28,34 ----
    <h2>Summary</h2>
    
    This module implements a proxy/cache for Apache. It implements
  ! proxying capability for
    <code>FTP</code>,
    <code>CONNECT</code> (for SSL),
    <code>HTTP/0.9</code>, and
  ***************
  *** 347,353 ****
    <h2><a name="socks">Can I use the Apache proxy module with my SOCKS 
proxy?</a></h2>
    
    Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in your
  ! <i>Configuration</i> file, and follow the instructions there. SOCKS5 
    capability can be added in a similar way (there's no <code>SOCKS5</code>
    rule yet), so use the <code>EXTRA_LDFLAGS</code> definition, or build Apache
    normally and run it with the <i>runsocks</i> wrapper provided with SOCKS5,
  --- 347,353 ----
    <h2><a name="socks">Can I use the Apache proxy module with my SOCKS 
proxy?</a></h2>
    
    Yes. Just build Apache with the rule <code>SOCKS4=yes</code> in your
  ! <i>Configuration</i> file, and follow the instructions there. SOCKS5
    capability can be added in a similar way (there's no <code>SOCKS5</code>
    rule yet), so use the <code>EXTRA_LDFLAGS</code> definition, or build Apache
    normally and run it with the <i>runsocks</i> wrapper provided with SOCKS5,
  
  
  
  1.12      +23 -23    apache/htdocs/manual/mod/mod_rewrite.html
  
  Index: mod_rewrite.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_rewrite.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -C3 -r1.11 -r1.12
  *** mod_rewrite.html  1997/07/02 03:09:23     1.11
  --- mod_rewrite.html  1997/07/06 17:19:18     1.12
  ***************
  *** 31,37 ****
    <h2>Summary</h2>
    
    This module uses a rule-based rewriting engine (based on a
  ! regular-expression parser) to rewrite requested URLs on the fly. 
    
    <p>
    It supports an unlimited number of additional rule conditions (which can
  --- 31,37 ----
    <h2>Summary</h2>
    
    This module uses a rule-based rewriting engine (based on a
  ! regular-expression parser) to rewrite requested URLs on the fly.
    
    <p>
    It supports an unlimited number of additional rule conditions (which can
  ***************
  *** 58,64 ****
    <blockquote>
        <i>Ralf S. Engelschall</i><br>
        <a href="mailto:[EMAIL PROTECTED]"><tt>[EMAIL PROTECTED]</tt></a><br>
  !     <a href="http://www.engelschall.com/";><tt>www.engelschall.com</tt></a> 
    </blockquote>
    
    <!--%hypertext -->
  --- 58,64 ----
    <blockquote>
        <i>Ralf S. Engelschall</i><br>
        <a href="mailto:[EMAIL PROTECTED]"><tt>[EMAIL PROTECTED]</tt></a><br>
  !     <a href="http://www.engelschall.com/";><tt>www.engelschall.com</tt></a>
    </blockquote>
    
    <!--%hypertext -->
  ***************
  *** 99,105 ****
    The <tt>RewriteEngine</tt> directive enables or disables the
    runtime rewriting engine. If it is set to <code>off</code> this module does
    no runtime processing at all. It does not even update the 
<tt>SCRIPT_URx</tt>
  ! environment variables. 
    
    <p>
    Use this directive to disable the module instead of commenting out
  --- 99,105 ----
    The <tt>RewriteEngine</tt> directive enables or disables the
    runtime rewriting engine. If it is set to <code>off</code> this module does
    no runtime processing at all. It does not even update the 
<tt>SCRIPT_URx</tt>
  ! environment variables.
    
    <p>
    Use this directive to disable the module instead of commenting out
  ***************
  *** 143,149 ****
    server logs any rewriting actions it performs. If the name does not begin
    with a slash ('<tt>/</tt>') then it is assumed to be relative to the
    <em>Server Root</em>.  The directive should occur only once per server
  ! config. 
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  --- 143,149 ----
    server logs any rewriting actions it performs. If the name does not begin
    with a slash ('<tt>/</tt>') then it is assumed to be relative to the
    <em>Server Root</em>.  The directive should occur only once per server
  ! config.
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  ***************
  *** 272,278 ****
    #   map.real-to-user -- maps realnames to usernames
    #
    
  ! Ralf.S.Engelschall    rse   # Bastard Operator From Hell 
    Dr.Fred.Klabuster     fred  # Mr. DAU
    </pre></td></tr>
    </table>
  --- 272,278 ----
    #   map.real-to-user -- maps realnames to usernames
    #
    
  ! Ralf.S.Engelschall    rse   # Bastard Operator From Hell
    Dr.Fred.Klabuster     fred  # Mr. DAU
    </pre></td></tr>
    </table>
  ***************
  *** 317,323 ****
    #!/usr/bin/perl
    $| = 1;
    while (&lt;STDIN&gt;) {
  !     # ...here any transformations 
        # or lookups should occur...
        print $_;
    }
  --- 317,323 ----
    #!/usr/bin/perl
    $| = 1;
    while (&lt;STDIN&gt;) {
  !     # ...here any transformations
        # or lookups should occur...
        print $_;
    }
  ***************
  *** 342,348 ****
    mapping-function use one <tt>RewriteMap</tt> directive to declare its
    rewriting mapfile. While you cannot <b>declare</b> a map in per-directory
    context it is of course possible to <b>use</b> this map in per-directory
  ! context.  
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  --- 342,348 ----
    mapping-function use one <tt>RewriteMap</tt> directive to declare its
    rewriting mapfile. While you cannot <b>declare</b> a map in per-directory
    context it is of course possible to <b>use</b> this map in per-directory
  ! context.
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  ***************
  *** 380,386 ****
    prefix is the corresponding filepath itself. <b>But at most websites URLs 
are
    <b>NOT</b> directly related to physical filename paths, so this assumption
    will be usually be wrong!</b> There you have to use the <tt>RewriteBase</tt>
  ! directive to specify the correct URL-prefix. 
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  --- 380,386 ----
    prefix is the corresponding filepath itself. <b>But at most websites URLs 
are
    <b>NOT</b> directly related to physical filename paths, so this assumption
    will be usually be wrong!</b> There you have to use the <tt>RewriteBase</tt>
  ! directive to specify the correct URL-prefix.
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  ***************
  *** 409,415 ****
    
    RewriteEngine On
    
  ! #  let the server know that we are reached via /xyz and not 
    #  via the physical path prefix /abc/def
    RewriteBase   /xyz
    
  --- 409,415 ----
    
    RewriteEngine On
    
  ! #  let the server know that we are reached via /xyz and not
    #  via the physical path prefix /abc/def
    RewriteBase   /xyz
    
  ***************
  *** 420,426 ****
    
    <p>
    In the above example, a request to <tt>/xyz/oldstuff.html</tt> gets 
correctly
  ! rewritten to the physical file <tt>/abc/def/newstuff.html</tt>. 
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  --- 420,426 ----
    
    <p>
    In the above example, a request to <tt>/xyz/oldstuff.html</tt> gets 
correctly
  ! rewritten to the physical file <tt>/abc/def/newstuff.html</tt>.
    
    <p>
    <table width="70%" border=2 bgcolor="#c0c0e0" cellspacing=0 cellpadding=10>
  ***************
  *** 450,456 ****
    when it occurs the (rewritten) request has to be re-injected into the Apache
    kernel! BUT: While this seems like a serious overhead, it really isn't, 
because
    this re-injection happens fully internal to the Apache server and the same
  ! procedure is used by many other operations inside Apache. So, you can be 
    sure the design and implementation is correct.
    </font>
    </td></tr>
  --- 450,456 ----
    when it occurs the (rewritten) request has to be re-injected into the Apache
    kernel! BUT: While this seems like a serious overhead, it really isn't, 
because
    this re-injection happens fully internal to the Apache server and the same
  ! procedure is used by many other operations inside Apache. So, you can be
    sure the design and implementation is correct.
    </font>
    </td></tr>
  ***************
  *** 480,486 ****
    <em>TestString</em> is a string which contains server-variables of the form
    
    <blockquote><strong>
  ! <tt>%{</tt> <em>NAME_OF_VARIABLE</em> <tt>}</tt> 
    </strong></blockquote>
    
    where <em>NAME_OF_VARIABLE</em> can be a string
  --- 480,486 ----
    <em>TestString</em> is a string which contains server-variables of the form
    
    <blockquote><strong>
  ! <tt>%{</tt> <em>NAME_OF_VARIABLE</em> <tt>}</tt>
    </strong></blockquote>
    
    where <em>NAME_OF_VARIABLE</em> can be a string
  ***************
  *** 606,612 ****
    <em>CondPattern</em> is the condition pattern, i.e. a regular expression
    which gets applied to the current instance of the <em>TestString</em>, i.e.
    <em>TestString</em> gets evaluated and then matched against
  ! <em>CondPattern</em>. 
    
    <p>
    <b>Remember:</b> <em>CondPattern</em> is a standard
  --- 606,612 ----
    <em>CondPattern</em> is the condition pattern, i.e. a regular expression
    which gets applied to the current instance of the <em>TestString</em>, i.e.
    <em>TestString</em> gets evaluated and then matched against
  ! <em>CondPattern</em>.
    
    <p>
    <b>Remember:</b> <em>CondPattern</em> is a standard
  ***************
  *** 678,684 ****
    <blockquote><pre>
    RewriteCond %{REMOTE_HOST}  ^host1.*  [OR]
    RewriteCond %{REMOTE_HOST}  ^host2.*  [OR]
  ! RewriteCond %{REMOTE_HOST}  ^host3.*  
    RewriteRule ...some special stuff for any of these hosts...
    </pre></blockquote>
        Without this flag you had to write down the cond/rule three times.
  --- 678,684 ----
    <blockquote><pre>
    RewriteCond %{REMOTE_HOST}  ^host1.*  [OR]
    RewriteCond %{REMOTE_HOST}  ^host2.*  [OR]
  ! RewriteCond %{REMOTE_HOST}  ^host3.*
    RewriteRule ...some special stuff for any of these hosts...
    </pre></blockquote>
        Without this flag you had to write down the cond/rule three times.
  ***************
  *** 745,758 ****
    <strong><code>^</code></strong>           Start of line
    <strong><code>$</code></strong>           End of line
    <strong><code>.</code></strong>           Any single character
  ! <strong><code>[</code></strong>chars<strong><code>]</code></strong>     One 
of chars 
  ! <strong><code>[^</code></strong>chars<strong><code>]</code></strong>    
None of chars 
    
    <strong><code>?</code></strong>           0 or 1 of the preceding char
    <strong><code>*</code></strong>           0 or N of the preceding char
    <strong><code>+</code></strong>           1 or N of the preceding char
    
  ! <strong><code>\</code></strong>char       escape that specific char 
                (e.g. for specifying the chars "<code>.[]()</code>" etc.)
    
    <strong><code>(</code></strong>string<strong><code>)</code></strong>    
Grouping of chars (the <b>N</b>th group can be used on the RHS with 
<code>$</code><b>N</b>)
  --- 745,758 ----
    <strong><code>^</code></strong>           Start of line
    <strong><code>$</code></strong>           End of line
    <strong><code>.</code></strong>           Any single character
  ! <strong><code>[</code></strong>chars<strong><code>]</code></strong>     One 
of chars
  ! <strong><code>[^</code></strong>chars<strong><code>]</code></strong>    
None of chars
    
    <strong><code>?</code></strong>           0 or 1 of the preceding char
    <strong><code>*</code></strong>           0 or N of the preceding char
    <strong><code>+</code></strong>           1 or N of the preceding char
    
  ! <strong><code>\</code></strong>char       escape that specific char
                (e.g. for specifying the chars "<code>.[]()</code>" etc.)
    
    <strong><code>(</code></strong>string<strong><code>)</code></strong>    
Grouping of chars (the <b>N</b>th group can be used on the RHS with 
<code>$</code><b>N</b>)
  ***************
  *** 782,788 ****
    <p>
    <a name="rhs"><em>Substitution</em></a> of a rewriting rule is the string
    which is substituted for (or replaces) the original URL for which
  ! <em>Pattern</em> matched.  Beside plain text you can use 
    
    <ol>
    <li>pattern-group back-references (<code>$N</code>)
  --- 782,788 ----
    <p>
    <a name="rhs"><em>Substitution</em></a> of a rewriting rule is the string
    which is substituted for (or replaces) the original URL for which
  ! <em>Pattern</em> matched.  Beside plain text you can use
    
    <ol>
    <li>pattern-group back-references (<code>$N</code>)
  ***************
  *** 842,855 ****
    
    <ul>
    <li>'<strong><code>redirect|R</code>[=<i>code</i>]</strong>' (force <a 
name="redirect"><b>r</b>edirect</a>)<br>
  !     Prefix <em>Substitution</em> 
        with <code>http://thishost[:thisport]/</code> (which makes the new URL 
a URI) to
        force a external redirection. If no <i>code</i> is given a HTTP response
        of 302 (MOVED TEMPORARILY) is used. If you want to use other response
        codes in the range 300-400 just specify them as a number or use
        one of the following symbolic names: <tt>temp</tt> (default), 
<tt>permanent</tt>,
        <tt>seeother</tt>.
  !     Use it for rules which should 
        canonicalize the URL and gives it back to the client, e.g. translate
        ``<code>/~</code>'' into ``<code>/u/</code>'' or always append a slash 
to
        <code>/u/</code><em>user</em>, etc.<br>
  --- 842,855 ----
    
    <ul>
    <li>'<strong><code>redirect|R</code>[=<i>code</i>]</strong>' (force <a 
name="redirect"><b>r</b>edirect</a>)<br>
  !     Prefix <em>Substitution</em>
        with <code>http://thishost[:thisport]/</code> (which makes the new URL 
a URI) to
        force a external redirection. If no <i>code</i> is given a HTTP response
        of 302 (MOVED TEMPORARILY) is used. If you want to use other response
        codes in the range 300-400 just specify them as a number or use
        one of the following symbolic names: <tt>temp</tt> (default), 
<tt>permanent</tt>,
        <tt>seeother</tt>.
  !     Use it for rules which should
        canonicalize the URL and gives it back to the client, e.g. translate
        ``<code>/~</code>'' into ``<code>/u/</code>'' or always append a slash 
to
        <code>/u/</code><em>user</em>, etc.<br>
  ***************
  *** 902,908 ****
        from the last rewriting rule.  This corresponds to the Perl
        <code>next</code> command or the <code>continue</code> command from the 
C
        language. Use this flag to restart the rewriting process, i.e.  to
  !     immediately go to the top of the loop. <br> 
        <b>But be careful not to create a deadloop!</b>
    <p>
    <li>'<strong><code>chain|C</code></strong>' (<b>c</b>hained with next 
rule)<br>
  --- 902,908 ----
        from the last rewriting rule.  This corresponds to the Perl
        <code>next</code> command or the <code>continue</code> command from the 
C
        language. Use this flag to restart the rewriting process, i.e.  to
  !     immediately go to the top of the loop. <br>
        <b>But be careful not to create a deadloop!</b>
    <p>
    <li>'<strong><code>chain|C</code></strong>' (<b>c</b>hained with next 
rule)<br>
  ***************
  *** 948,954 ****
        with <tt>mod_alias</tt>:
        <pre>
        RewriteRule ^/abc(.*)  /def$1 [PT]
  !     Alias       /def       /ghi   
        </pre>
        If you omit the <tt>PT</tt> flag then <tt>mod_rewrite</tt>
        will do its job fine, i.e. it rewrites <tt>uri=/abc/...</tt> to
  --- 948,954 ----
        with <tt>mod_alias</tt>:
        <pre>
        RewriteRule ^/abc(.*)  /def$1 [PT]
  !     Alias       /def       /ghi
        </pre>
        If you omit the <tt>PT</tt> flag then <tt>mod_rewrite</tt>
        will do its job fine, i.e. it rewrites <tt>uri=/abc/...</tt> to
  ***************
  *** 990,996 ****
            <tt>&lt;!--#echo var="VAR"--&gt;</tt>) or CGI (e.g. 
<tt>$ENV{'VAR'}</tt>).
            But additionally you can also dereference it in a following 
RewriteCond
            pattern via <tt>%{ENV:VAR}</tt>. Use this to strip but remember
  !         information from URLs. 
    </ul>
    
    <p>
  --- 990,996 ----
            <tt>&lt;!--#echo var="VAR"--&gt;</tt>) or CGI (e.g. 
<tt>$ENV{'VAR'}</tt>).
            But additionally you can also dereference it in a following 
RewriteCond
            pattern via <tt>%{ENV:VAR}</tt>. Use this to strip but remember
  !         information from URLs.
    </ul>
    
    <p>
  
  
  
  1.8       +4 -4      apache/htdocs/manual/mod/mod_status.html
  
  Index: mod_status.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_status.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -C3 -r1.7 -r1.8
  *** mod_status.html   1997/06/24 18:39:39     1.7
  --- mod_status.html   1997/07/06 17:19:19     1.8
  ***************
  *** 33,39 ****
    <li>A total number of accesses and byte count served (*)
    <li>The time the server was started/restarted and the
    time it has been running for
  ! <li>Averages giving the number of requests per second, 
    the number of bytes served per second and the average number
    of bytes per request (*)
    <li>The current percentage CPU used by each child and in total by
  --- 33,39 ----
    <li>A total number of accesses and byte count served (*)
    <li>The time the server was started/restarted and the
    time it has been running for
  ! <li>Averages giving the number of requests per second,
    the number of bytes served per second and the average number
    of bytes per request (*)
    <li>The current percentage CPU used by each child and in total by
  ***************
  *** 52,58 ****
    <pre>
        &lt;Location /server-status&gt;
        SetHandler server-status
  !     
        order deny,allow
        deny from all
        allow from .foo.com
  --- 52,58 ----
    <pre>
        &lt;Location /server-status&gt;
        SetHandler server-status
  ! 
        order deny,allow
        deny from all
        allow from .foo.com
  ***************
  *** 62,69 ****
    You can now access server statistics by using a Web browser to access the
    page <code>http://your.server.name/server-status</code>
    <p>
  ! Note that mod_status will only work when you are running Apache in 
  ! <A HREF="core.html#servertype">standalone</A> mode and not 
    <A HREF="core.html#servertype">inetd</A> mode.
    
    <h3>Automatic Updates</h3>
  --- 62,69 ----
    You can now access server statistics by using a Web browser to access the
    page <code>http://your.server.name/server-status</code>
    <p>
  ! Note that mod_status will only work when you are running Apache in
  ! <A HREF="core.html#servertype">standalone</A> mode and not
    <A HREF="core.html#servertype">inetd</A> mode.
    
    <h3>Automatic Updates</h3>
  
  
  
  1.10      +1 -1      apache/htdocs/manual/mod/mod_userdir.html
  
  Index: mod_userdir.html
  ===================================================================
  RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_userdir.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -C3 -r1.9 -r1.10
  *** mod_userdir.html  1997/07/02 03:09:24     1.9
  --- mod_userdir.html  1997/07/06 17:19:19     1.10
  ***************
  *** 81,87 ****
     <STRONG>
     Be careful when using this directive; for instance,
     <SAMP>&quot;UserDir&nbsp;./&quot;</SAMP> would map
  !  <SAMP>&quot;/~root&quot;</SAMP> to 
     <SAMP>&quot;/&quot;</SAMP> - which is probably undesirable.  If you are
     running Apache 1.3 or above, it is strongly recommended that your
     configuration include a
  --- 81,87 ----
     <STRONG>
     Be careful when using this directive; for instance,
     <SAMP>&quot;UserDir&nbsp;./&quot;</SAMP> would map
  !  <SAMP>&quot;/~root&quot;</SAMP> to
     <SAMP>&quot;/&quot;</SAMP> - which is probably undesirable.  If you are
     running Apache 1.3 or above, it is strongly recommended that your
     configuration include a
  
  
  

Reply via email to