<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE indexpage SYSTEM "./style/sitemap.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<indexpage metafile="index.xml.meta">
<parentdocument href="http://httpd.apache.org/docs-project/" />

<title>Apache HTTP Server Version &httpd.major;.&httpd.minor;
Documentation</title>

<category id="release"><title>Release Notes</title>
    <page href="new_features_2_6.html">New features with Apache 2.5/2.6</page>
    <page href="new_features_2_4.html">New features with Apache 2.3/2.4</page>
    <page href="new_features_2_2.html">New features with Apache 2.1/2.2</page>
    <page href="new_features_2_0.html">New features with Apache 2.0</page>
    <page href="upgrading.html">Upgrading to 2.4 from 2.2</page>
    <page href="license.html">Apache License</page>
</category>

<category id="manual"><title>Reference Manual</title>
    <page href="install.html">Compiling and Installing</page>
    <page href="invoking.html">Starting</page>
    <page href="stopping.html">Stopping or Restarting</page>
    <page href="mod/quickreference.html">Run-time Configuration Directives</page>
    <page href="mod/">Modules</page>
    <page href="mpm.html">Multi-Processing Modules (MPMs)</page>
    <page href="filter.html">Filters</page>
    <page href="handler.html">Handlers</page>
    <page href="expr.html">Expression parser</page>
    <page href="mod/overrides.html">Override Class Index for .htaccess</page>
    <page href="programs/">Server and Supporting Programs</page>
    <page href="glossary.html">Glossary</page>
</category>

<category id="usersguide"><title>Users' Guide</title>
    <page href="getting-started.html">Getting Started</page>
    <page href="bind.html">Binding to Addresses and Ports</page>
    <page href="configuring.html">Configuration Files</page>
    <page href="sections.html">Configuration Sections</page>
    <page href="caching.html">Content Caching</page>
    <page href="content-negotiation.html">Content Negotiation</page>
    <page href="dso.html">Dynamic Shared Objects (DSO)</page>
    <page href="env.html">Environment Variables</page>
    <page href="logs.html">Log Files</page>
    <page href="compliance.html">HTTP Protocol Compliance</page>
    <page href="urlmapping.html">Mapping URLs to the Filesystem</page>
    <page href="misc/perf-tuning.html">Performance Tuning</page>
    <page href="misc/security_tips.html">Security Tips</page>
    <page href="server-wide.html">Server-Wide Configuration</page>
    <page href="ssl/">SSL/TLS Encryption</page>
    <page href="suexec.html">Suexec Execution for CGI</page>
    <page href="rewrite/">URL Rewriting with mod_rewrite</page>
    <page href="vhosts/">Virtual Hosts</page>
</category>

<category id="howto"><title>How-To / Tutorials</title>
	<page href="howto">How to index page </page>
    <page href="howto/auth.html">Authentication and Authorization</page>
    <page href="howto/access.html">Access Control</page>
    <page href="howto/cgi.html">CGI: Dynamic Content</page>
    <page href="howto/htaccess.html">.htaccess files</page>
    <page href="howto/ssi.html">Server Side Includes (SSI)</page>
    <page href="howto/public_html.html">Per-user Web Directories (public_html)</page>
    <page href="howto/reverse_proxy.html">Reverse proxy setup guide</page>
    <page href="howto/http2.html">HTTP/2 guide</page>
</category>

<category id="platform"><title>Platform Specific Notes</title>
    <page href="platform/windows.html">Microsoft Windows</page>
    <page href="platform/rpm.html">RPM-based Systems (Redhat / CentOS / Fedora)</page>
    <page href="platform/netware.html">Novell NetWare</page>
</category>

<category id="other"><title>Other Topics</title>
    <page href="http://wiki.apache.org/httpd/FAQ">Frequently Asked Questions</page>
    <page href="sitemap.html">Sitemap</page>
    <page href="developer/">Documentation for Developers</page>
    <page href="http://httpd.apache.org/docs-project/">Helping with the documentation</page>
    <page href="misc/">Other Notes</page>
    <page href="http://wiki.apache.org/httpd/">Wiki</page>
</category>

</indexpage>

