<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.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.
-->

<manualpage metafile="directive-dict.xml.meta">

  <title>Terms Used to Describe Directives</title>

<summary>
    <p>This document describes the terms that are used to describe
    each Apache <a href="directives.html">configuration
    directive</a>.</p>
</summary>
<seealso><a href="../configuring.html">Configuration files</a></seealso>

<section id="Description"><title>Description</title>

<p>A brief description of the purpose of the directive.</p>
</section>

<section id="Syntax"><title>Syntax</title>

    <p>This indicates the format of the directive as it would
    appear in a configuration file. This syntax is extremely
    directive-specific, and is described in detail in the
    directive's definition. Generally, the directive name is
    followed by a series of one or more space-separated arguments.
    If an argument contains a space, the argument must be enclosed
    in double quotes. Optional arguments are enclosed in square
    brackets. Where an argument can take on more than one possible
    value, the possible values are separated by vertical bars "|".
    Literal text is presented in the default font, while
    argument-types for which substitution is necessary are
    <em>emphasized</em>. Directives which can take a variable
    number of arguments will end in "..." indicating that the last
    argument is repeated.</p>

    <p>Directives use a great number of different argument types. A
    few common ones are defined below.</p>

    <dl>
      <dt><em>URL</em></dt>

      <dd>A complete Uniform Resource Locator including a scheme,
      hostname, and optional pathname as in
      <code>http://www.example.com/path/to/file.html</code></dd>

      <dt><em>URL-path</em></dt>

      <dd>The part of a <em>url</em> which follows the scheme and
      hostname as in <code>/path/to/file.html</code>. The
      <em>url-path</em> represents a web-view of a resource, as
      opposed to a file-system view.</dd>

      <dt><em>file-path</em></dt>

      <dd>The path to a file in the local file-system beginning
      with the root directory as in
      <code>/usr/local/apache/htdocs/path/to/file.html</code>.
      Unless otherwise specified, a <em>file-path</em> which does
      not begin with a slash will be treated as relative to the <a
      href="core.html#serverroot">ServerRoot</a>.</dd>

      <dt><em>directory-path</em></dt>

      <dd>The path to a directory in the local file-system
      beginning with the root directory as in
      <code>/usr/local/apache/htdocs/path/to/</code>.</dd>

      <dt><em>filename</em></dt>

      <dd>The name of a file with no accompanying path information
      as in <code>file.html</code>.</dd>

      <dt><em>regex</em></dt>

      <dd>A Perl-compatible <glossary ref="regex">regular
      expression</glossary>. The directive definition will specify what the
      <em>regex</em> is matching against.</dd>

      <dt><em>extension</em></dt>

      <dd>In general, this is the part of the <em>filename</em>
      which follows the last dot. However, Apache recognizes
      multiple filename extensions, so if a <em>filename</em>
      contains more than one dot, each dot-separated part of the
      filename following the first dot is an <em>extension</em>.
      For example, the <em>filename</em> <code>file.html.en</code>
      contains two extensions: <code>.html</code> and
      <code>.en</code>. For Apache directives, you may specify
      <em>extension</em>s with or without the leading dot. In
      addition, <em>extension</em>s are not case sensitive.</dd>

      <dt><em>MIME-type</em></dt>

      <dd>A method of describing the format of a file which
      consists of a major format type and a minor format type,
      separated by a slash as in <code>text/html</code>.</dd>

      <dt><em>env-variable</em></dt>

      <dd>The name of an <a href="../env.html">environment
      variable</a> defined in the Apache configuration process.
      Note this is not necessarily the same as an operating system
      environment variable. See the <a
      href="../env.html">environment variable documentation</a> for
      more details.</dd>
    </dl>
</section>

<section id="Default"><title>Default</title>

    <p>If the directive has a default value (<em>i.e.</em>, if you
    omit it from your configuration entirely, the Apache Web server
    will behave as though you set it to a particular value), it is
    described here. If there is no default value, this section
    should say "<em>None</em>". Note that the default listed here
    is not necessarily the same as the value the directive takes in
    the default httpd.conf distributed with the server.</p>
</section>

<section id="Context"><title>Context</title>

    <p>This indicates where in the server's configuration files the
    directive is legal. It's a comma-separated list of one or more
    of the following values:</p>

    <dl>
      <dt>server config</dt>

      <dd>This means that the directive may be used in the server
      configuration files (<em>e.g.</em>, <code>httpd.conf</code>), but
      <strong>not</strong> within any
      <directive module="core" type="section">VirtualHost</directive>
      or <directive module="core" type="section">Directory</directive>
      containers. It is not allowed in <code>.htaccess</code> files
      at all.</dd>

      <dt>virtual host</dt>

      <dd>This context means that the directive may appear inside
      <directive module="core" type="section">VirtualHost</directive>
      containers in the server
      configuration files.</dd>

      <dt>directory</dt>

      <dd>A directive marked as being valid in this context may be
      used inside <directive module="core"
      type="section">Directory</directive>, <directive type="section"
      module="core">Location</directive>, <directive module="core"
      type="section">Files</directive>, <directive module="core"
      type="section">If</directive>, and <directive
      module="mod_proxy" type="section">Proxy</directive> containers
      in the server configuration files, subject to the restrictions
      outlined in <a href="../sections.html">Configuration
      Sections</a>.</dd>

      <dt>.htaccess</dt>

      <dd>If a directive is valid in this context, it means that it
      can appear inside <em>per</em>-directory
      <code>.htaccess</code> files. It may not be processed, though
      depending upon the <a href="#Override"
      >overrides</a> currently active.</dd>
    </dl>

    <p>The directive is <em>only</em> allowed within the designated
    context; if you try to use it elsewhere, you'll get a
    configuration error that will either prevent the server from
    handling requests in that context correctly, or will keep the
    server from operating at all -- <em>i.e.</em>, the server won't
    even start.</p>

    <p>The valid locations for the directive are actually the
    result of a Boolean OR of all of the listed contexts. In other
    words, a directive that is marked as being valid in
    "<code>server config, .htaccess</code>" can be used in the
    <code>httpd.conf</code> file and in <code>.htaccess</code>
    files, but not within any <directive module="core"
    type="section">Directory</directive> or
    <directive module="core" type="section">VirtualHost</directive>
    containers.</p>
</section>

<section id="Override"><title>Override</title>

    <p>This directive attribute indicates which configuration
    override must be active in order for the directive to be
    processed when it appears in a <code>.htaccess</code> file. If
    the directive's <a href="#Context" >context</a>
    doesn't permit it to appear in <code>.htaccess</code> files,
    then no context will be listed.</p>

    <p>Overrides are activated by the <directive
    module="core">AllowOverride</directive> directive, and apply
    to a particular scope (such as a directory) and all
    descendants, unless further modified by other
    <directive module="core">AllowOverride</directive> directives at
    lower levels. The documentation for that directive also lists the
    possible override names available.</p>
</section>

<section id="Status"><title>Status</title>

    <p>This indicates how tightly bound into the Apache Web server
    the directive is; in other words, you may need to recompile the
    server with an enhanced set of modules in order to gain access
    to the directive and its functionality. Possible values for
    this attribute are:</p>

    <dl>
      <dt>Core</dt>

      <dd>If a directive is listed as having "Core" status, that
      means it is part of the innermost portions of the Apache Web
      server, and is always available.</dd>

      <dt>MPM</dt>

      <dd>A directive labeled as having "MPM" status is provided by
      a <a href="../mpm.html">Multi-Processing Module</a>. This
      type of directive will be available if and only if you are
      using one of the MPMs listed on the <a
      href="#Module">Module</a> line of the directive
      definition.</dd>

      <dt>Base</dt>

      <dd>A directive labeled as having "Base" status is supported
      by one of the standard Apache modules which is compiled into
      the server by default, and is therefore normally available
      unless you've taken steps to remove the module from your
      configuration.</dd>

      <dt>Extension</dt>

      <dd>A directive with "Extension" status is provided by one of
      the modules included with the Apache server kit, but the
      module isn't normally compiled into the server. To enable the
      directive and its functionality, you will need to change the
      server build configuration files and re-compile Apache.</dd>

      <dt>Experimental</dt>

      <dd>"Experimental" status indicates that the directive is
      available as part of the Apache kit, but you're on your own
      if you try to use it. The directive is being documented for
      completeness, and is not necessarily supported. The module
      which provides the directive may or may not be compiled in by
      default; check the top of the page which describes the
      directive and its module to see if it remarks on the
      availability.</dd>
    </dl>
</section>

<section id="Module"><title>Module</title>

    <p>This quite simply lists the name of the source module which
    defines the directive.</p>
</section>

<section id="Compatibility"><title>Compatibility</title>

    <p>If the directive wasn't part of the original Apache version
    2 distribution, the version in which it was introduced should
    be listed here.  In addition, if the directive is available
    only on certain platforms, it will be noted here.</p>
</section>

</manualpage>

