You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by dp...@apache.org on 2002/09/09 00:45:06 UTC

cvs commit: httpd-2.0/docs/manual custom-error.xml custom-error.html.en

dpejesh     2002/09/08 15:45:06

  Modified:    docs/manual custom-error.html.en
  Added:       docs/manual custom-error.xml
  Log:
  New XML.
  
  Revision  Changes    Path
  1.17      +148 -171  httpd-2.0/docs/manual/custom-error.html.en
  
  Index: custom-error.html.en
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/custom-error.html.en,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- custom-error.html.en	25 Jul 2002 21:46:37 -0000	1.16
  +++ custom-error.html.en	8 Sep 2002 22:45:05 -0000	1.17
  @@ -1,152 +1,131 @@
  -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  -    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  -
  -<html xmlns="http://www.w3.org/1999/xhtml">
  -  <head>
  -    <meta name="generator" content="HTML Tidy, see www.w3.org" />
  -
  -    <title>Custom error responses</title>
  -  </head>
  -  <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
  -
  -  <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
  -  vlink="#000080" alink="#FF0000">
  -    <!--#include virtual="header.html" -->
  -
  -    <h1 align="center">Custom error responses</h1>
  -
  -    <dl>
  -      <dt>Purpose</dt>
  -
  -      <dd>
  -        Additional functionality. Allows webmasters to configure
  -        the response of Apache to some error or problem. 
  -
  -        <p>Customizable responses can be defined to be activated in
  -        the event of a server detected error or problem.</p>
  -
  -        <p>e.g. if a script crashes and produces a "500 Server
  -        Error" response, then this response can be replaced with
  -        either some friendlier text or by a redirection to another
  -        URL (local or external).</p>
  -      </dd>
  -
  -      <dt>Old behavior</dt>
  -
  -      <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 />
  -      </dd>
  -
  -      <dt>New behavior</dt>
  -
  -      <dd>
  -        The server can be asked to; 
  -
  -        <ol>
  -          <li>Display some other text, instead of the NCSA hard
  -          coded messages, or</li>
  -
  -          <li>redirect to a local URL, or</li>
  -
  -          <li>redirect to an external URL.</li>
  -        </ol>
  -
  -        <p>Redirecting to another URL can be useful, but only if
  -        some information can be passed which can then be used to
  -        explain and/or log the error/problem more clearly.</p>
  -
  -        <p>To achieve this, Apache will define new CGI-like
  -        environment variables, <em>e.g.</em></p>
  -
  -        <blockquote>
  -          <code>REDIRECT_HTTP_ACCEPT=*/*, image/gif,
  -          image/x-xbitmap, image/jpeg<br />
  -           REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX
  -          A.09.05 9000/712)<br />
  -           REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br />
  -           REDIRECT_QUERY_STRING=<br />
  -           REDIRECT_REMOTE_ADDR=121.345.78.123<br />
  -           REDIRECT_REMOTE_HOST=ooh.ahhh.com<br />
  -           REDIRECT_SERVER_NAME=crash.bang.edu<br />
  -           REDIRECT_SERVER_PORT=80<br />
  -           REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br />
  -           REDIRECT_URL=/cgi-bin/buggy.pl<br />
  -          </code>
  -        </blockquote>
  -
  -        <p>note the <code>REDIRECT_</code> prefix.</p>
  -
  -        <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
  -        other variables will exist only if they existed prior to
  -        the error/problem. <strong>None</strong> of these will be
  -        set if your ErrorDocument is an <em>external</em> redirect
  -        (<em>i.e.</em>, anything starting with a scheme name like
  -        <code>http:</code>, even if it refers to the same host as
  -        the server).</p>
  -      </dd>
  -
  -      <dt>Configuration</dt>
  -
  -      <dd>
  -        Use of "ErrorDocument" is enabled for .htaccess files when
  -        the <a href="mod/core.html#allowoverride">"FileInfo"
  -        override</a> is allowed. 
  -
  -        <p>Here are some examples...</p>
  -
  -        <blockquote>
  -          <code>ErrorDocument 500 /cgi-bin/crash-recover<br />
  -           ErrorDocument 500 "Sorry, our script crashed. Oh
  -          dear<br />
  -           ErrorDocument 500 http://xxx/<br />
  -           ErrorDocument 404 /Lame_excuses/not_found.html<br />
  -           ErrorDocument 401
  -          /Subscription/how_to_subscribe.html</code>
  -        </blockquote>
  -
  -        <p>The syntax is,</p>
  -
  -        <p><code><a
  -        href="mod/core.html#errordocument">ErrorDocument</a></code>
  -        &lt;3-digit-code&gt; action</p>
  -
  -        <p>where the action can be,</p>
  -
  -        <ol>
  -          <li>Text to be displayed. Prefix the text with a quote
  -          ("). Whatever follows the quote is displayed. <em>Note:
  -          the (") prefix isn't displayed.</em></li>
  -
  -          <li>An external URL to redirect to.</li>
  -
  -          <li>A local URL to redirect to.</li>
  -        </ol>
  -      </dd>
  -    </dl>
  -    <hr />
  -
  -    <h2>Custom error responses and redirects</h2>
  -
  -    <dl>
  -      <dt>Purpose</dt>
  -
  -      <dd>Apache's behavior to redirected URLs has been modified so
  -      that additional environment variables are available to a
  -      script/server-include.</dd>
  -
  -      <dt>Old behavior</dt>
  -
  -      <dd>Standard CGI vars were made available to a script which
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
  +        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  +              This file is generated from xml source: DO NOT EDIT
  +        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  +      --><title>Custom Error Responses - Apache HTTP Server</title><link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /><link href="./images/favicon.ico" rel="shortcut icon" /></head><body id="manual-page"><div id="page-header"><p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p><p class="apache">Apache HTTP Server Version 2.0</p><img alt="" src="./images/feather.gif" /></div><div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs-project/">Documentation</a> &gt; <a href="./">Version 2.0</a></div><div id="page-content"><div id="preamble"><h1>Custom Error Responses</h1>
  +    <p>Additional functionality allows webmasters to configure the response 
  +    of Apache to some error or problem.</p>
  +    
  +    <p>Customizable responses can be defined to be activated in the event of 
  +    a server detected error or problem.</p>
  +    
  +    <p>If a script crashes and produces a "500 Server Error" response, 
  +    then this response can be replaced with either some friendlier text or by 
  +    a redirection to another URL (local or external).</p>
  +  </div><div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#behavior">Behavior</a></li><li><img alt="" src="./images/down.gif" /> <a href="#configuration">Configuration</a></li><li><img alt="" src="./images/down.gif" /> <a href="#custom">Custom Error Responses and Redirects</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="behavior" id="behavior">Behavior</a></h2>
  +    
  +    
  +    <h3>Old Behavior</h3>
  +      
  +      
  +      <p>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.</p>
  +    
  +    
  +    <h3>New Behavior</h3>
  +      
  +      
  +      <p>The server can be asked to:</p>
  +      
  +      <ol>
  +        <li>Display some other text, instead of the NCSA hard coded 
  +        messages, or</li>
  +      
  +        <li>redirect to a local URL, or</li>
  +      
  +        <li>redirect to an external URL.</li>
  +      </ol>
  +      
  +      <p>Redirecting to another URL can be useful, but only if some 
  +      information can be passed which can then be used to explain and/or log 
  +      the error/problem more clearly.</p>
  +      
  +      <p>To achieve this, Apache will define new CGI-like environment 
  +      variables:</p>
  +      
  +      <div class="example"><p><code>
  +        REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, 
  +            image/jpeg<br />
  +        REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 
  +            9000/712)<br />
  +        REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br />
  +        REDIRECT_QUERY_STRING=<br />
  +        REDIRECT_REMOTE_ADDR=121.345.78.123<br />
  +        REDIRECT_REMOTE_HOST=ooh.ahhh.com<br />
  +        REDIRECT_SERVER_NAME=crash.bang.edu<br />
  +        REDIRECT_SERVER_PORT=80<br />
  +        REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br />
  +        REDIRECT_URL=/cgi-bin/buggy.pl
  +      </code></p></div>
  +      
  +      <p>Note the <code>REDIRECT_</code> prefix.</p>
  +      
  +      <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
  +      other variables will exist only if they existed prior to
  +      the error/problem. <strong>None</strong> of these will be
  +      set if your <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code> is an 
  +      <em>external</em> redirect (anything starting with a 
  +      scheme name like <code>http:</code>, even if it refers to the same host 
  +      as the server).</p>
  +    
  +  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="configuration" id="configuration">Configuration</a></h2>
  +    
  +    
  +    <p>Use of <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code> is enabled 
  +    for .htaccess files when the 
  +    <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> is set accordingly.</p>
  +    
  +    <p>Here are some examples...</p>
  +    
  +    <div class="example"><p><code>
  +      ErrorDocument 500 /cgi-bin/crash-recover <br />
  +      ErrorDocument 500 "Sorry, our script crashed. Oh dear" <br />
  +      ErrorDocument 500 http://xxx/ <br />
  +      ErrorDocument 404 /Lame_excuses/not_found.html <br />
  +      ErrorDocument 401 /Subscription/how_to_subscribe.html
  +    </code></p></div>
  +    
  +    <p>The syntax is,</p>
  +    
  +    <div class="example"><p><code>
  +      ErrorDocument &lt;3-digit-code&gt; &lt;action&gt;
  +    </code></p></div>
  +    
  +    <p>where the action can be,</p>
  +    
  +    <ol>
  +      <li>Text to be displayed. Prefix the text with a quote
  +      ("). Whatever follows the quote is displayed. <em>Note:
  +      the (") prefix isn't displayed.</em></li>
  +    
  +      <li>An external URL to redirect to.</li>
  +    
  +      <li>A local URL to redirect to.</li>
  +    </ol>
  +  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div><div class="section"><h2><a name="custom" id="custom">Custom Error Responses and Redirects</a></h2>
  +    
  +    
  +    <p>Apache's behavior to redirected URLs has been modified so
  +    that additional environment variables are available to a
  +    script/server-include.</p>
  +    
  +    <h3>Old behavior</h3>
  +      
  +    
  +      <p>Standard CGI vars were made available to a script which
         has been redirected to. No indication of where the
  -      redirection came from was provided.</dd>
  -
  -      <dt>New behavior</dt>
  -
  -      <dd>A new batch of environment variables will be initialized
  +      redirection came from was provided.</p>
  +    
  +    
  +    <h3>New behavior</h3>
  +      
  +    
  +      <p>A new batch of environment variables will be initialized
         for use by a script which has been redirected to. Each new
         variable will have the prefix <code>REDIRECT_</code>.
         <code>REDIRECT_</code> environment variables are created from
  @@ -157,26 +136,24 @@
         new variables, Apache will define <code>REDIRECT_URL</code>
         and <code>REDIRECT_STATUS</code> to help the script trace its
         origin. Both the original URL and the URL being redirected to
  -      can be logged in the access log.</dd>
  -    </dl>
  -
  -    <p>If the ErrorDocument specifies a local redirect to a CGI
  -    script, the script should include a "<samp>Status:</samp>"
  -    header field in its output in order to ensure the propagation
  -    all the way back to the client of the error condition that
  -    caused it to be invoked. For instance, a Perl ErrorDocument
  -    script might include the following:</p>
  -<pre>
  -      :
  -    print  "Content-type: text/html\n";
  -    printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
  -      :
  -</pre>
  -
  -    <p>If the script is dedicated to handling a particular error
  -    condition, such as <samp>404&nbsp;Not&nbsp;Found</samp>, it can
  -    use the specific code and error text instead.</p>
  -    <!--#include virtual="footer.html" -->
  -  </body>
  -</html>
  -
  +      can be logged in the access log.</p>
  +    
  +      <p>If the ErrorDocument specifies a local redirect to a CGI
  +      script, the script should include a "<code>Status:</code>"
  +      header field in its output in order to ensure the propagation
  +      all the way back to the client of the error condition that
  +      caused it to be invoked. For instance, a Perl ErrorDocument
  +      script might include the following:</p>
  +    
  +      <div class="example"><p><code>
  +        ... <br />
  +        print  "Content-type: text/html\n"; <br />
  +        printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; <br />
  +        ...
  +      </code></p></div>
  +    
  +      <p>If the script is dedicated to handling a particular error
  +      condition, such as <code>404�Not�Found</code>, it can
  +      use the specific code and error text instead.</p>
  +    
  +  </div></div><div id="footer"><p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p><p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div></body></html>
  \ No newline at end of file
  
  
  
  1.1                  httpd-2.0/docs/manual/custom-error.xml
  
  Index: custom-error.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
  <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
  
  <manualpage>
    <relativepath href="."/>
    
    <title>Custom Error Responses</title>
    
    <summary>
      <p>Additional functionality allows webmasters to configure the response 
      of Apache to some error or problem.</p>
      
      <p>Customizable responses can be defined to be activated in the event of 
      a server detected error or problem.</p>
      
      <p>If a script crashes and produces a "500 Server Error" response, 
      then this response can be replaced with either some friendlier text or by 
      a redirection to another URL (local or external).</p>
    </summary>
    
    <section id="behavior">
      <title>Behavior</title>
      
      <section>
        <title>Old Behavior</title>
        
        <p>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.</p>
      </section>
      
      <section>
        <title>New Behavior</title>
        
        <p>The server can be asked to:</p>
        
        <ol>
          <li>Display some other text, instead of the NCSA hard coded 
          messages, or</li>
        
          <li>redirect to a local URL, or</li>
        
          <li>redirect to an external URL.</li>
        </ol>
        
        <p>Redirecting to another URL can be useful, but only if some 
        information can be passed which can then be used to explain and/or log 
        the error/problem more clearly.</p>
        
        <p>To achieve this, Apache will define new CGI-like environment 
        variables:</p>
        
        <example>
          REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, 
              image/jpeg<br />
          REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 
              9000/712)<br />
          REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br />
          REDIRECT_QUERY_STRING=<br />
          REDIRECT_REMOTE_ADDR=121.345.78.123<br />
          REDIRECT_REMOTE_HOST=ooh.ahhh.com<br />
          REDIRECT_SERVER_NAME=crash.bang.edu<br />
          REDIRECT_SERVER_PORT=80<br />
          REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br />
          REDIRECT_URL=/cgi-bin/buggy.pl
        </example>
        
        <p>Note the <code>REDIRECT_</code> prefix.</p>
        
        <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
        other variables will exist only if they existed prior to
        the error/problem. <strong>None</strong> of these will be
        set if your <directive module="core">ErrorDocument</directive> is an 
        <em>external</em> redirect (anything starting with a 
        scheme name like <code>http:</code>, even if it refers to the same host 
        as the server).</p>
      </section>
    </section>
    
    <section id="configuration">
      <title>Configuration</title>
      
      <p>Use of <directive module="core">ErrorDocument</directive> is enabled 
      for .htaccess files when the 
      <directive module="core">AllowOverride</directive> is set accordingly.</p>
      
      <p>Here are some examples...</p>
      
      <example>
        ErrorDocument 500 /cgi-bin/crash-recover <br />
        ErrorDocument 500 "Sorry, our script crashed. Oh dear" <br />
        ErrorDocument 500 http://xxx/ <br />
        ErrorDocument 404 /Lame_excuses/not_found.html <br />
        ErrorDocument 401 /Subscription/how_to_subscribe.html
      </example>
      
      <p>The syntax is,</p>
      
      <example>
        ErrorDocument &lt;3-digit-code&gt; &lt;action&gt;
      </example>
      
      <p>where the action can be,</p>
      
      <ol>
        <li>Text to be displayed. Prefix the text with a quote
        ("). Whatever follows the quote is displayed. <em>Note:
        the (") prefix isn't displayed.</em></li>
      
        <li>An external URL to redirect to.</li>
      
        <li>A local URL to redirect to.</li>
      </ol>
    </section>
    
    <section id="custom">
      <title>Custom Error Responses and Redirects</title>
      
      <p>Apache's behavior to redirected URLs has been modified so
      that additional environment variables are available to a
      script/server-include.</p>
      
      <section>
        <title>Old behavior</title>
      
        <p>Standard CGI vars were made available to a script which
        has been redirected to. No indication of where the
        redirection came from was provided.</p>
      </section>
      
      <section>
        <title>New behavior</title>
      
        <p>A new batch of environment variables will be initialized
        for use by a script which has been redirected to. Each new
        variable will have the prefix <code>REDIRECT_</code>.
        <code>REDIRECT_</code> environment variables are created from
        the CGI environment variables which existed prior to the
        redirect, they are renamed with a <code>REDIRECT_</code>
        prefix, <em>i.e.</em>, <code>HTTP_USER_AGENT</code> becomes
        <code>REDIRECT_HTTP_USER_AGENT</code>. In addition to these
        new variables, Apache will define <code>REDIRECT_URL</code>
        and <code>REDIRECT_STATUS</code> to help the script trace its
        origin. Both the original URL and the URL being redirected to
        can be logged in the access log.</p>
      
        <p>If the ErrorDocument specifies a local redirect to a CGI
        script, the script should include a "<code>Status:</code>"
        header field in its output in order to ensure the propagation
        all the way back to the client of the error condition that
        caused it to be invoked. For instance, a Perl ErrorDocument
        script might include the following:</p>
      
        <example>
          ... <br />
          print  "Content-type: text/html\n"; <br />
          printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; <br />
          ...
        </example>
      
        <p>If the script is dedicated to handling a particular error
        condition, such as <code>404&nbsp;Not&nbsp;Found</code>, it can
        use the specific code and error text instead.</p>
      </section>
    </section>
  </manualpage>