<?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>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
        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="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/custom-error.html" rel="canonical" /></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/">Documentation</a> &gt; <a href="./">Version 2.0</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
            <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
        <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/custom-error.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Custom Error Responses</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./en/custom-error.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/custom-error.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/custom-error.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/custom-error.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/custom-error.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/custom-error.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>

    <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.</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
      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>

      <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&nbsp;Not&nbsp;Found</code>, it can
      use the specific code and error text instead.</p>

      <p>Note that the script <em>must</em> emit an appropriate
      <code>Status:</code> header (such as <code>302&nbsp;Found</code>), if the
      response contains a <code>Location:</code> header (in order to issue a
      client side redirect). Otherwise the <code>Location:</code> header may
      have no effect.</p>
    
  </div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="./en/custom-error.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/custom-error.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/custom-error.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/custom-error.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/custom-error.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/custom-error.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</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>