| <!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>Configuration Files - Apache HTTP Server Version 2.5</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"><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.5</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> > <a href="https://httpd.apache.org/">HTTP Server</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Configuration Files</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="./de/configuring.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | | |
| <a href="./en/configuring.html" title="English"> en </a> | | |
| <a href="./fr/configuring.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | | |
| <a href="./ja/configuring.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | | |
| <a href="./ko/configuring.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | | |
| <a href="./tr/configuring.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> | |
| </div> | |
| <p>This document describes the files used to configure Apache HTTP | |
| Server.</p> | |
| </div> | |
| <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#main">Main Configuration Files</a></li> | |
| <li><img alt="" src="./images/down.gif"> <a href="#syntax">Syntax of the Configuration Files</a></li> | |
| <li><img alt="" src="./images/down.gif"> <a href="#modules">Modules</a></li> | |
| <li><img alt="" src="./images/down.gif"> <a href="#scope">Scope of Directives</a></li> | |
| <li><img alt="" src="./images/down.gif"> <a href="#htaccess">.htaccess Files</a></li> | |
| </ul></div> | |
| <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="main">Main Configuration Files <a title="Permanent link" href="#main" class="permalink">¶</a></h2> | |
| <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_mime.html">mod_mime</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#include">Include</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#typesconfig">TypesConfig</a></code></li></ul></td></tr></table> | |
| <p>Apache HTTP Server is configured by placing <a href="mod/directives.html">directives</a> in plain text | |
| configuration files. The main configuration file is usually called | |
| <code>httpd.conf</code>. The location of this file is set at | |
| compile-time, but may be overridden with the <code>-f</code> | |
| command line flag. In addition, other configuration files may be | |
| added using the <code class="directive"><a href="./mod/core.html#include">Include</a></code> | |
| directive, and wildcards can be used to include many configuration | |
| files. Any directive may be placed in any of these configuration | |
| files. Changes to the main configuration files are only | |
| recognized by httpd when it is started or restarted.</p> | |
| <p>The server also reads a file containing mime document types; | |
| the filename is set by the <code class="directive"><a href="./mod/mod_mime.html#typesconfig">TypesConfig</a></code> directive, | |
| and is <code>mime.types</code> by default.</p> | |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="syntax">Syntax of the Configuration Files <a title="Permanent link" href="#syntax" class="permalink">¶</a></h2> | |
| <p>httpd configuration files contain one directive per line. | |
| The backslash "\" may be used as the last character on a line | |
| to indicate that the directive continues onto the next line. | |
| To be interpreted as such a continuation, there must be no | |
| other characters or white space between the backslash and the | |
| end of the line. </p> | |
| <p>Lines that begin with the hash character "#" are considered | |
| comments, and are ignored. Comments may <strong>not</strong> be | |
| included on the same line as a configuration directive, including | |
| at the start of a line that has been continued as described in the | |
| preceding paragraph. Commented lines may also be continued, meaning | |
| the next physical line is also interpreted as a comment because the | |
| logical line begins with a hash character. | |
| </p> | |
| <p> White space occurring before a directive is ignored, so | |
| you may indent directives for clarity. Blank lines are also ignored. | |
| Arguments to directives are separated by whitespace. If an | |
| argument contains spaces, you must enclose that argument in | |
| quotes.</p> | |
| <h3 id="quotes">Quoting and Escaping</h3> | |
| <p>Either double quotes (<code>"</code>) or single quotes | |
| (<code>'</code>) can be used to enclose an argument that contains | |
| spaces. The quotes themselves are not part of the argument.</p> | |
| <p>Inside a quoted string, only two escape sequences are | |
| recognized: <code>\\</code> produces a literal backslash, and | |
| <code>\"</code> (or <code>\'</code> if the string is | |
| single-quoted) produces a literal quote character without ending | |
| the string. All other backslash sequences are passed through | |
| unchanged — for example, <code>\n</code> is the literal two | |
| characters <code>\n</code>, not a newline.</p> | |
| <p>Outside of quotes, backslashes have no special meaning and | |
| are treated as literal characters. The only exception is the | |
| line-continuation backslash at the very end of a line, as | |
| described above.</p> | |
| <p>Note that adjacent quoted strings with no whitespace between | |
| them are <strong>not</strong> concatenated — they are parsed as | |
| separate arguments. For example:</p> | |
| <div class="example"><p><code> | |
| # This is TWO arguments, not one:<br> | |
| Header set X-Foo "bar""baz" | |
| </code></p></div> | |
| <p>Some directives accept arguments that contain sub-expressions | |
| with their own syntax, such as | |
| <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> flags or | |
| <a href="expr.html">ap_expr</a> expressions. In those cases, the | |
| config file parser first removes the enclosing quotes and processes | |
| backslash escapes as described above, then the directive's own | |
| parser processes the result. When in doubt, using single quotes | |
| around an argument that contains backslashes can avoid unexpected | |
| double-processing of escape sequences.</p> | |
| <p>Directives in the configuration files are case-insensitive, | |
| but arguments to directives are often case sensitive. </p> | |
| <p>The values of variables defined with the <code class="directive"><a href="./mod/core.html#define">Define</a></code> or of shell environment variables can | |
| be used in configuration file lines using the syntax | |
| <code>${VAR}</code>.<br> | |
| If "VAR" is the name of a valid variable, the value of that variable is | |
| substituted into that spot in the configuration file line, and processing | |
| continues as if that text were found directly in the configuration | |
| file.<br> | |
| Variables defined with <code class="directive"><a href="./mod/core.html#define">Define</a></code> take | |
| precedence over shell environment variables.<br> | |
| If the "VAR" variable is not defined, the characters <code>${VAR}</code> | |
| are left unchanged, and a warning is logged. If instead a default value | |
| should be substituted, the conditional form | |
| <code>${VAR?=some default value}</code> can be used. Note that a | |
| <strong>defined</strong> empty variable will <strong>not</strong> be | |
| substituted with the default value, and that an empty default value like | |
| in <code>${VAR?=}</code> is a valid substitution (which produces an empty | |
| value if "VAR" is not defined, but no warning).<br> | |
| Variable names may not contain colon ":" characters, to avoid clashes with | |
| <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>'s syntax.</p> | |
| <p>Only shell environment variables defined before the server is started | |
| can be used in expansions. Environment variables defined in the | |
| configuration file itself, for example with <code class="directive"><a href="./mod/mod_env.html#setenv">SetEnv</a></code>, take effect too late to be used for | |
| expansions in the configuration file.</p> | |
| <p>The maximum length of a line in normal configuration files, after | |
| variable substitution and joining any continued lines, is approximately | |
| 16 MiB. In <a href="configuring.html#htaccess">.htaccess files</a>, the | |
| maximum length is 8190 characters.</p> | |
| <p>You can check your configuration files for syntax errors | |
| without starting the server by using <code>apachectl | |
| configtest</code> or the <code>-t</code> command line | |
| option.</p> | |
| <p>You can use <code class="module"><a href="./mod/mod_info.html">mod_info</a></code>'s <code>-DDUMP_CONFIG</code> to | |
| dump the configuration with all included files and environment | |
| variables resolved and all comments and non-matching | |
| <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> and | |
| <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> sections | |
| removed. However, the output does not reflect the merging or overriding | |
| that may happen for repeated directives.</p> | |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="modules">Modules <a title="Permanent link" href="#modules" class="permalink">¶</a></h2> | |
| <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_so.html">mod_so</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code></li></ul></td></tr></table> | |
| <p>httpd is a modular server. This implies that only the most | |
| basic functionality is included in the core server. Extended | |
| features are available through <a href="mod/">modules</a> which can be loaded | |
| into httpd. By default, a <a href="mod/module-dict.html#Status">base</a> set of modules is | |
| included in the server at compile-time. If the server is | |
| compiled to use <a href="dso.html">dynamically loaded</a> | |
| modules, then modules can be compiled separately and added at | |
| any time using the <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> | |
| directive. | |
| Otherwise, httpd must be recompiled to add or remove modules. | |
| Configuration directives may be included conditional on a | |
| presence of a particular module by enclosing them in an <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> block. However, | |
| <code class="directive"><IfModule></code> blocks are not | |
| required, and in some cases may mask the fact that you're missing an | |
| important module.</p> | |
| <p>To see which modules are currently compiled into the server, | |
| you can use the <code>-l</code> command line option. You can also | |
| see what modules are loaded dynamically using the <code>-M</code> | |
| command line option.</p> | |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="scope">Scope of Directives <a title="Permanent link" href="#scope" class="permalink">¶</a></h2> | |
| <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table> | |
| <p>Directives placed in the main configuration files apply to | |
| the entire server. If you wish to change the configuration for | |
| only a part of the server, you can scope your directives by | |
| placing them in <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#files"><Files></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>, <code class="directive"><a href="./mod/core.html#location"><Location></a></code>, and <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> | |
| sections. These sections limit the application of the | |
| directives which they enclose to particular filesystem | |
| locations or URLs. They can also be nested, allowing for very | |
| fine grained configuration.</p> | |
| <p>httpd has the capability to serve many different websites | |
| simultaneously. This is called <a href="vhosts/">Virtual | |
| Hosting</a>. Directives can also be scoped by placing them | |
| inside <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> | |
| sections, so that they will only apply to requests for a | |
| particular website.</p> | |
| <p>Although most directives can be placed in any of these | |
| sections, some directives do not make sense in some contexts. | |
| For example, directives controlling process creation can only | |
| be placed in the main server context. To find which directives | |
| can be placed in which sections, check the <a href="mod/directive-dict.html#Context">Context</a> of the | |
| directive. For further information, we provide details on <a href="sections.html">How Directory, Location and Files sections | |
| work</a>.</p> | |
| </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="htaccess">.htaccess Files <a title="Permanent link" href="#htaccess" class="permalink">¶</a></h2> | |
| <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td></td><td><ul><li><code class="directive"><a href="./mod/core.html#accessfilename">AccessFileName</a></code></li><li><code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code></li></ul></td></tr></table> | |
| <p>httpd allows for decentralized management of configuration | |
| via special files placed inside the web tree. The special files | |
| are usually called <code>.htaccess</code>, but any name can be | |
| specified in the <code class="directive"><a href="./mod/core.html#accessfilename">AccessFileName</a></code> | |
| directive. Directives placed in <code>.htaccess</code> files | |
| apply to the directory where you place the file, and all | |
| sub-directories. The <code>.htaccess</code> files follow the | |
| same syntax as the main configuration files. Since | |
| <code>.htaccess</code> files are read on every request, changes | |
| made in these files take immediate effect.</p> | |
| <p>To find which directives can be placed in | |
| <code>.htaccess</code> files, check the <a href="mod/directive-dict.html#Context">Context</a> of the | |
| directive. The server administrator further controls what | |
| directives may be placed in <code>.htaccess</code> files by | |
| configuring the <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> | |
| directive in the main configuration files.</p> | |
| <p>For more information on <code>.htaccess</code> files, see | |
| the <a href="howto/htaccess.html">.htaccess tutorial</a>.</p> | |
| </div></div> | |
| <div class="bottomlang"> | |
| <p><span>Available Languages: </span><a href="./de/configuring.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> | | |
| <a href="./en/configuring.html" title="English"> en </a> | | |
| <a href="./fr/configuring.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | | |
| <a href="./ja/configuring.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | | |
| <a href="./ko/configuring.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | | |
| <a href="./tr/configuring.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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 = '☰'; | |
| 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> |