<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>How-To / Tutorials - Apache HTTP Server Version 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page" class="no-sidebar"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Server Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="../"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Server</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>How-To / Tutorials</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/howto/" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../zh-cn/howto/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="howto">How-To / Tutorials <a title="Permanent link" href="#howto" class="permalink">&para;</a></h2>

    

    <dl>
      <dt>Authentication and Authorization</dt>
      <dd>
        <p>Authentication is any process by which you verify that
        someone is who they claim they are. Authorization is any
        process by which someone is allowed to be where they want to
        go, or to have information that they want to have.</p>

        <p>See: <a href="auth.html">Authentication, Authorization</a></p>
      </dd>
    </dl>

    <dl>
      <dt>Access Control</dt>
      <dd>
        <p>Access control refers to the process of restricting, or
        granting access to a resource based on arbitrary criteria. There
        are a variety of different ways that this can be
        accomplished.</p>

        <p>See: <a href="access.html">Access Control</a></p>
      </dd>
    </dl>

   <dl>
      <dt>Dynamic Content with CGI</dt>
      <dd>
        <p>The CGI (Common Gateway Interface) defines a way for a web
        server to interact with external content-generating programs,
        which are often referred to as CGI programs or CGI scripts. It
        is a simple way to put dynamic content on
        your web site. This document will be an introduction to setting
        up CGI on your Apache web server, and getting started writing
        CGI programs.</p>

        <p>See: <a href="cgi.html">CGI: Dynamic Content</a></p>
      </dd>
    </dl>

    <dl>
      <dt><code>.htaccess</code> files</dt>
      <dd>
        <p><code>.htaccess</code> files provide a way to make configuration
        changes on a per-directory basis. A file, containing one or more
        configuration directives, is placed in a particular document directory,
        and the directives apply to that directory, and all subdirectories thereof.</p>

        <p>See: <a href="htaccess.html"><code>.htaccess</code> files</a></p>
      </dd>
    </dl>

    <dl>
      <dt>HTTP/2 with httpd</dt>
      <dd>
      <p>HTTP/2 is the evolution of the world's most successful application layer protocol, HTTP. 
        It focuses on making more efficient use of network resources without changing the semantics of HTTP.
        This guide explains how HTTP/2 is implemented in httpd, showing basic configurations tips and 
        best practices.
      </p>

        <p>See: <a href="http2.html">HTTP/2 guide</a></p>
      </dd>
    </dl>


    <dl>
      <dt>Introduction to Server Side Includes</dt>
      <dd>
        <p>SSI (Server Side Includes) are directives that are placed in
        HTML pages, and evaluated on the server while the pages are
        being served. They let you add dynamically generated content to
        an existing HTML page, without having to serve the entire page
        via a CGI program, or other dynamic technology.</p>

        <p>See: <a href="ssi.html">Server Side Includes (SSI)</a></p>
      </dd>
    </dl>

    <dl>
      <dt>Per-user web directories</dt>
      <dd>
        <p>On systems with multiple users, each user can be permitted to have a
        web site in their home directory using the <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> directive. Visitors
        to a URL <code>http://example.com/~username/</code> will get content
        out of the home directory of the user "<code>username</code>", out of
        the subdirectory specified by the <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> directive.</p>

        <p>See: <a href="public_html.html">User web directories (<code>public_html</code>)</a></p>
      </dd>
    </dl>

    <dl>
      <dt>Reverse Proxy guide</dt>
      <dd>
        <p>Apache httpd has extensive capabilities as a reverse proxy server using the
        <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> directive as well as
        <code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code> to create sophisticated
        reverse proxying implementations which provide for high-availability, load
        balancing and failover, cloud-based clustering and dynamic on-the-fly reconfiguration.</p>

        <p>See: <a href="reverse_proxy.html">Reverse proxy guide</a></p>
      </dd>
    </dl>

    <dl>
      <dt>Rewriting URLs with mod_rewrite</dt>
      <dd>
        <p>Rewriting URLs with (and without)
        <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> tends to be one of the most
        frequently asked topics on our mailing lists and IRC channels.
        We have devoted <a href="../rewrite/">and entire section of our
        documentation</a> to howtos and recipes around this topic.</p>
      </dd>
    </dl>

  </div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/howto/" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/howto/" hreflang="es" rel="alternate" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/howto/" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../zh-cn/howto/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licensed under the <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>