<?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>Apache Miscellaneous Documentation - 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/misc/index.html" rel="canonical" /></head>
<body id="manual-page" class="no-sidebar"><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/misc/">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache Miscellaneous Documentation</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/misc/" title="English">&nbsp;en&nbsp;</a> |
<a href="../tr/misc/" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>


    <p>Below is a list of additional documentation pages that apply
    to the Apache web server development project.</p>

    <div class="warning"><h3>Warning</h3>
    <p>Some of the documents below have not been fully updated
    to take into account changes made in the 2.0 version of the
    Apache HTTP Server. Some of the information may still be
    relevant, but please use it with care.</p>
    </div>

    <dl>
      <dt><a href="custom_errordocs.html">How to use XSSI and
      Negotiation for custom ErrorDocuments</a></dt>

      <dd>
        <p>Describes a solution which uses XSSI and negotiation to
        custom-tailor the Apache ErrorDocuments to taste, adding the
        advantage of returning internationalized versions of the
        error messages depending on the client's language
        preferences.</p>
      </dd>

      <dt><a href="descriptors.html">File Descriptor use in
      Apache</a></dt>

      <dd>
        <p>Describes how Apache uses file descriptors and talks
        about various limits imposed on the number of descriptors
        available by various operating systems.</p>
      </dd>

      <dt><a href="fin_wait_2.html"><code>FIN_WAIT_2</code></a></dt>

      <dd>
        <p>A description of the causes of Apache processes going
        into the <code>FIN_WAIT_2</code> state, and what you can do
        about it.</p>
      </dd>

      <dt><a href="known_client_problems.html">Known Client
      Problems</a></dt>

      <dd>
        <p>A list of problems in HTTP clients which can be mitigated
        by Apache.</p>
      </dd>

      <dt><a href="perf-tuning.html">Performance Notes - Apache
      Tuning</a></dt>

      <dd>
        <p>Notes about how to (run-time and compile-time) configure
        Apache for highest performance. Notes explaining why Apache
        does some things, and why it doesn't do other things (which
        make it slower/faster).</p>
      </dd>

      <dt><a href="security_tips.html">Security Tips</a></dt>

      <dd>
        <p>Some "do"s - and "don't"s - for keeping your Apache web
        site secure.</p>
      </dd>

      <dt><a href="rewriteguide.html">URL Rewriting Guide</a></dt>
      <dd>
        <p>This document supplements the <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
        <a href="../mod/mod_rewrite.html">reference documentation</a>.
        It describes how one can use Apache's <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
        to solve typical URL-based problems webmasters are usually confronted
        with in practice.</p>
      </dd>

      <dt><a href="tutorials.html">Apache Tutorials</a></dt>

      <dd>
        <p>A list of external resources which help to accomplish common
        tasks with the Apache HTTP server.</p>
      </dd>

      <dt><a href="relevant_standards.html">Relevant Standards</a></dt>

      <dd>
        <p>This document acts as a reference page for most of the relevant
        standards that Apache follows.</p>
      </dd>
    </dl>
  </div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/misc/" title="English">&nbsp;en&nbsp;</a> |
<a href="../tr/misc/" 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>