<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>
+ argument contains spaces, you must enclose that argument in
+ quotes.</p>
+
+ <h3><a name="quotes" id="quotes">Quoting and Escaping</a></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>
<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 class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Ce document décrit les fichiers utilisés pour configurer
le Serveur HTTP Apache.</p>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.de.xsl"?>
-<!-- English Revision: 420990:1928265 (outdated) -->
+<!-- English Revision: 420990:1933778 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1928265 -->
+<!-- English Revision: 1928265:1933778 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1928265 (outdated) -->
+<!-- English Revision: 420990:1933778 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 420990:1928265 (outdated) -->
+<!-- English Revision: 420990:1933778 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant outdated="yes">de</variant>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1213338:1928265 (outdated) -->
+<!-- English Revision: 1213338:1933778 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
document that does not explicitly match the client's request. The
<code class="directive"><a href="./mod/mod_negotiation.html#forcelanguagepriority">ForceLanguagePriority</a></code>
directive can be used to override one or both of these error
- messages and substitute the servers judgement in the form of the
+ messages and substitute the servers judgment in the form of the
<code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>
directive.</p>
<a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/content-negotiation.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Apache HTTPD prend en charge la négociation de
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1933189 -->
+<!-- English Revision: 1933189:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 675610:1933189 (outdated) -->
+<!-- English Revision: 675610:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1933189 (outdated) -->
+<!-- English Revision: 151408:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1933189 (outdated) -->
+<!-- English Revision: 1174747:1933739 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
create_svr_conf, /* Per-server configuration handler */
merge_svr_conf, /* Merge handler for per-server configurations */
directives, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
NULL,
NULL,
NULL,
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
NULL, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
example_directives, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
AP_INIT_TAKE1("exampleEnabled", example_set_enabled, NULL, RSRC_CONF, "Enable or disable mod_example"),
AP_INIT_TAKE1("examplePath", example_set_path, NULL, RSRC_CONF, "The path to whatever"),
AP_INIT_TAKE2("exampleAction", example_set_action, NULL, RSRC_CONF, "Special action value!"),
- { NULL }
+ { }
};</pre>
AP_INIT_TAKE1("exampleEnabled", example_set_enabled, NULL, RSRC_CONF, "Enable or disable mod_example"),
AP_INIT_TAKE1("examplePath", example_set_path, NULL, RSRC_CONF, "The path to whatever"),
AP_INIT_TAKE2("exampleAction", example_set_action, NULL, RSRC_CONF, "Special action value!"),
- { NULL }
+ { }
};
/*
==============================================================================
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
example_directives, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
directives, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};</pre>
AP_INIT_TAKE1("exampleEnabled", example_set_enabled, NULL, ACCESS_CONF, "Enable or disable mod_example"),
AP_INIT_TAKE1("examplePath", example_set_path, NULL, ACCESS_CONF, "The path to whatever"),
AP_INIT_TAKE2("exampleAction", example_set_action, NULL, ACCESS_CONF, "Special action value!"),
- { NULL }
+ { }
};
/*$1
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
directives, /* Any directives we may have for httpd */
- register_hooks /* Our hook registering function */
+ register_hooks, /* Our hook registering function */
+ AP_MODULE_FLAG_NONE /* Flags */
};
/*
<tr class="odd"><td><code>REQUEST_SCHEME</code></td>
<td>The scheme part of the request's URI</td></tr>
<tr><td><code>REQUEST_URI</code></td>
- <td>The path part of the request's URI</td></tr>
+ <td>The path part of the request's URI, excluding the query
+ string. Note that this differs from the CGI environment
+ variable of the same name, which includes the query string.
+ </td></tr>
<tr class="odd"><td><code>DOCUMENT_URI</code></td>
<td>Same as <code>REQUEST_URI</code></td></tr>
<tr><td><code>REQUEST_FILENAME</code></td>
<p><span>Langues Disponibles: </span><a href="./en/expr.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./fr/expr.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Historiquement, il existe de nombreuses variantes dans la syntaxe
des expressions permettant d'exprimer une condition dans les
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 1926342 -->
+<!-- English Revision: 1926342:1933772 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
<p>See also the <a href="auth.html">Authentication and Authorization</a>
howto.</p>
+
+ <p>See the <a href="../sections.html#merging">configuration sections
+ merging documentation</a> for a warning about how
+ <code class="directive"><a href="../mod/core.html#limit"><Limit></a></code> inside
+ <code class="directive"><a href="../mod/core.html#location"><Location></a></code>
+ can silently override
+ <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>
+ access restrictions.</p>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/howto/access.html" title="English"> en </a> |
<a href="../es/howto/access.html" title="Español"> es </a> |
<a href="../fr/howto/access.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Esta traducción podría estar
+ obsoleta. Consulte la versión en inglés de la
+ documentación para comprobar si se han producido cambios
+ recientemente.</div>
<p>El control de acceso, hace referencia a todos los medios que proporcionan
una forma de controlar el acceso a cualquier recurso. Esta parte está
<a href="../es/howto/access.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../fr/howto/access.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Le contrôle d'accès fait référence à tout concept de contrôle
d'accès à une ressource quelconque. Il est distinct du processus d'<a href="auth.html">authentification et d'autorisation</a>.</p>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1745189 -->
+<!-- English Revision: 1745189:1933720 (outdated) -->
<!-- Updated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
<!-- Reviewed by Sergio Ramos -->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- English Revision: 1745189 -->
+<!-- English Revision: 1745189:1933720 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<variants>
<variant>en</variant>
- <variant>es</variant>
- <variant>fr</variant>
+ <variant outdated="yes">es</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1766314:1933461 (outdated) -->
+<!-- English Revision: 1766314:1933687 (outdated) -->
<!-- Translated by: Luis Gil de Bernabé Pfeiffer lgilbernabe [AT] apache.org-->
<!-- Reviewed by: Sergio Ramos -->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1887636:1933461 (outdated) -->
+<!-- English Revision: 1887636:1933687 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviwed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 479777:1933461 (outdated) -->
+<!-- English Revision: 479777:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1933461 (outdated) -->
+<!-- English Revision: 105989:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1070891:1933461 (outdated) -->
+<!-- English Revision: 1070891:1933687 (outdated) -->
<!-- =====================================================
Translated by: Umut Samuk <umut belgeler.org>
Reviewed by: Nilgün Belma Bugüner <nilgun belgeler.org>
due to internal redirects or subrequests.</dd>
</dl>
+ <div class="note"><h3>Note</h3>
+ <p>The CGI environment variable <code>REQUEST_URI</code> contains the
+ full original URI from the request line, including the query string.
+ This differs from the server variable <code>%{REQUEST_URI}</code>
+ used in <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> and <a href="../expr.html">
+ ap_expr</a>, which contains only the path component.</p></div>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DefaultRuntimeDir" id="DefaultRuntimeDir">DefaultRuntimeDir</a> <a name="defaultruntimedir" id="defaultruntimedir">Directive</a> <a title="Permanent link" href="#defaultruntimedir" class="permalink">¶</a></h2>
</table>
<p><code class="directive"><DirectoryMatch></code> and
<code></DirectoryMatch></code> are used to enclose a group
- of directives which will apply only to the named directory (and the files within),
- the same as <code class="directive"><a href="#directory"><Directory></a></code>.
- However, it takes as an argument a
- <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>. For example:</p>
+ of directives which will apply to directories (and the files
+ within) whose filesystem path matches the given
+ <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>.
+ Unlike <code class="directive"><a href="#directory"><Directory></a></code>,
+ it does not automatically apply to subdirectories unless the
+ pattern also matches them. It takes as an argument a
+ regular expression that is matched as a substring — it is not
+ anchored at the start or end unless you explicitly include
+ <code>^</code> or <code>$</code> in the pattern. For example:</p>
<pre class="prettyprint lang-config"><DirectoryMatch "^/www/(.+/)?[0-9]{3}/">
# ...
<div class="note"><h3>Trailing Slash</h3>
This directive applies to requests for directories that may or may
- not end in a trailing slash, so expressions that are anchored to the
- end of line ($) must be written with care.
+ not end in a trailing slash. If you anchor your pattern with
+ <code>$</code>, you may need to match both forms, e.g.,
+ <code><DirectoryMatch "^/var/www/?$"></code>.
</div>
<p>From 2.4.8 onwards, named groups and backreferences are captured and
<div class="warning"><h3>Note</h3>
<p> This directive is evaluated at configuration processing time,
- not at runtime. As a result, this directive cannot be conditonally
+ not at runtime. As a result, this directive cannot be conditionally
evaluated by enclosing it in an <code class="directive"><a href="#if"><If></a></code> section.</p>
</div>
<div class="warning">A <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section should always be
used in preference to a <code class="directive"><Limit></code>
section when restricting access, since a <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section provides protection
- against arbitrary methods.</div>
+ against arbitrary methods. See also the
+ <a href="../sections.html#merging">configuration sections
+ merging documentation</a> for a warning about how
+ <code class="directive"><Limit></code> inside
+ <code class="directive"><a href="#location"><Location></a></code>
+ can silently override
+ <code class="directive"><a href="#directory"><Directory></a></code>
+ restrictions.</div>
<p>The <code class="directive"><Limit></code> and
<code class="directive"><a href="#limitexcept"><LimitExcept></a></code>
<p>It is safe to specify protocols that are unavailable/disabled. Such
protocol names will simply be ignored.</p>
+ <div class="note"><h3>Note</h3>
+ <p>The <code>http/1.1</code> protocol is always available and
+ cannot be excluded by omitting it from this directive.
+ This directive controls which additional protocols are
+ available for negotiation, and, when used with
+ <code class="directive">ProtocolsHonorOrder</code>, their preference
+ order.</p></div>
+
<p>Protocols specified in base servers are inherited for virtual hosts
only if the virtual host has no own Protocols directive. Or, the other
way around, Protocols directives in virtual hosts replace any
<p>This directive allows to configure the size (in bytes) of the memory
buffer used to read data from the network or files.</p>
- <p>A larger buffer can increase peformances with larger data, but consumes
+ <p>A larger buffer can increase performances with larger data, but consumes
more memory per connection. The minimum configurable size is
<var>1024</var>.</p>
</li>
<li>When writing data to the client, the length of time to wait
- for an acknowledgement of a packet if the send buffer is
+ for an acknowledgment of a packet if the send buffer is
full.</li>
<li>In <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> and <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code>,
may be inadvertently derived from untrusted inputs. </p>
<p> Windows systems should be isolated at the network layer from
making outbound SMB/NTLM calls to unexpected destinations as a
- more comprehensive and pre-emptive measure.</p>
+ more comprehensive and preemptive measure.</p>
</div>
<div class="warning"><h3>Directive Ordering</h3>
<div class="warning"><h3>Note</h3>
<p> This directive is evaluated at configuration processing time,
- not at runtime. As a result, this directive cannot be conditonally
+ not at runtime. As a result, this directive cannot be conditionally
evaluated by enclosing it in an <code class="directive"><a href="#if"><If></a></code> section.</p>
</div>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 344972:1933685 (outdated) -->
+<!-- English Revision: 344972:1933772 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1741251:1933685 (outdated) -->
+<!-- English Revision: 1741251:1933772 (outdated) -->
<!-- Translated by Luis Gil de Bernabé Pfeiffer lgilbernabe[AT]apache.org -->
<!-- Reviewed by Sergio Ramos-->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932811:1933685 (outdated) -->
+<!-- English Revision: 1932811:1933772 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 669847:1933685 (outdated) -->
+<!-- English Revision: 669847:1933772 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1302855:1933685 (outdated) -->
+<!-- English Revision: 1302855:1933772 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<h2><a name="order" id="order">Order of Processing</a> <a title="Permanent link" href="#order" class="permalink">¶</a></h2>
<p>Aliases and Redirects occurring in different contexts are processed
- like other directives according to standard <a href="../sections.html#mergin">merging rules</a>. But when multiple
+ like other directives according to standard <a href="../sections.html#merging">merging rules</a>. But when multiple
Aliases or Redirects occur in the same context (for example, in the
same <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
section) they are processed in a particular order.</p>
</Location></pre>
+ <div class="note"><h3>Context restrictions</h3>
+ <p>The two-argument form of <code class="directive">Alias</code> can only
+ be used in server config or <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. The one-argument form,
+ where the URL path is taken from the enclosing section, can be
+ used in <code class="directive"><a href="../mod/core.html#location"><Location></a></code>,
+ <code class="directive"><a href="../mod/mod_proxy.html#proxy"><Proxy></a></code>,
+ and <code class="directive"><a href="../mod/core.html#if"><If></a></code>, but
+ not in <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>
+ or <code class="directive"><a href="../mod/core.html#files"><Files></a></code>.</p>
+ </div>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'atteindre différentes parties du système de
fichiers depuis l'arborescence des documents du site web, ainsi que la
redirection d'URL</td></tr>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1799478:1911948 (outdated) -->
+<!-- English Revision: 1799478:1933768 (outdated) -->
<!-- Spanish Translation: Daniel Ferradal <dferradal@apache.org> -->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1911948 -->
+<!-- English Revision: 1911948:1933768 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 151408:1911948 (outdated) -->
+<!-- English Revision: 151408:1933768 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1911948 (outdated) -->
+<!-- English Revision: 151408:1933768 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
<variant outdated="yes">es</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1911948 (outdated) -->
+<!-- English Revision: 1174747:1933768 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<pre class="prettyprint lang-config">AuthName "Top Secret"</pre>
- <p>The string provided for the <code>AuthName</code> is what will
- appear in the password dialog provided by most browsers.</p>
+ <p>The string provided for the <code>AuthName</code> was
+ historically displayed in the password dialog provided by
+ browsers. Most modern browsers no longer show the realm
+ string, as it could be abused for phishing. The directive
+ is still required for HTTP authentication to function, and
+ the realm value is still used to scope credentials.</p>
<p>From 2.5.0, <a href="../expr.html">expression syntax</a> can be
used inside the directive to produce the name dynamically.</p>
<p>The authentication type <code>None</code> disables authentication.
When authentication is enabled, it is normally inherited by each
- subsequent <a href="../sections.html#mergin">configuration section</a>,
+ subsequent <a href="../sections.html#merging">configuration section</a>,
unless a different authentication type is specified. If no
authentication is desired for a subsection of an authenticated
section, the authentication type <code>None</code> may be used;
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_core.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_authn_core.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Le noyau de l'authentification</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>authn_core_module</td></tr>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1834267 -->
+<!-- English Revision: 1834267:1933751 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
<p>This directive specifies an LDAP group whose members are
allowed access. It takes the distinguished name of the LDAP
- group. Note: Do not surround the group name with quotes.
- For example, assume that the following entry existed in
+ group.</p>
+
+ <div class="warning">Do not surround the group name with quotes.
+ Unlike <code>Require ldap-user</code>, the <code>ldap-group</code>
+ provider does not support quoted values.</div>
+
+ <p>For example, assume that the following entry existed in
the LDAP directory:</p>
<div class="example"><pre>dn: cn=Administrators, o=Example
objectClass: groupOfUniqueNames
that must match for access to be granted. If the distinguished
name that was retrieved from the directory server matches the
distinguished name in the <code>Require ldap-dn</code>, then
- authorization is granted. Note: do not surround the distinguished
- name with quotes.</p>
+ authorization is granted.</p>
+
+ <div class="warning">Do not surround the distinguished name with
+ quotes. Unlike <code>Require ldap-user</code>, the
+ <code>ldap-dn</code> provider does not support quoted values.</div>
<p>The following directive would grant access to a specific
DN:</p>
<dl>
<dt>NONE</dt>
- <dd>Establish an unsecure connection on the default LDAP port. This
+ <dd>Establish an insecure connection on the default LDAP port. This
is the same as <code>ldap://</code> on port 389.</dd>
<dt>SSL</dt>
<dd>Establish a secure connection on the default secure LDAP port.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933116:1933312 (outdated) -->
+<!-- English Revision: 1933116:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<p>If the algorithm type <var>HS256</var> is used, the algorithm is set to
<var>HMAC-SHA256</var>, and the secret is set within the <var>file</var> specified
as the third parameter. The contents of the bearer token is still visible, and so
- the channel must still be protected from evesdropping through TLS.</p>
+ the channel must still be protected from eavesdropping through TLS.</p>
<div class="example"><h3>Verification Example</h3><pre class="prettyprint lang-config"><Location "/secure">
AuthtJwtClaim set sub %{REMOTE_USER}
<p>If the algorithm type <var>HS256</var> is used, the algorithm is set to
<var>HMAC-SHA256</var>, and the secret is set within the <var>file</var> specified
as the third parameter. The contents of the bearer token is still visible, and so
- the channel must still be protected from evesdropping through TLS.</p>
+ the channel must still be protected from eavesdropping through TLS.</p>
<p>If the signature is verified, and if present, the <var>sub</var> claim is
assigned to REMOTE_USER.</p>
</table>
<p>If authentication succeeds but authorization fails, Apache HTTPD will
respond with an HTTP response code of '401 UNAUTHORIZED' by default. This
- usually causes browsers to display the password dialogue to the user
+ usually causes browsers to display the password dialog to the user
again, which is not wanted in all situations.
<code class="directive">AuthzSendForbiddenOnFailure</code> allows to change the
response code to '403 FORBIDDEN'.</p>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1888002:1933649 (outdated) -->
+<!-- English Revision: 1888002:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<a href="../ja/mod/mod_authz_groupfile.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_authz_groupfile.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Autorisation de groupes à base de fichiers
textes</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1744983 -->
+<!-- English Revision: 1744983:1933687 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 574882:1744983 (outdated) -->
+<!-- English Revision: 574882:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1744983 (outdated) -->
+<!-- English Revision: 151408:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
</variants>
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_host.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_authz_host.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Autorisations de groupe basées sur l'hôte (nom ou adresse
IP)</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1903838 -->
+<!-- English Revision: 1903838:1933687 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
<a href="../ja/mod/mod_authz_user.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_authz_user.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Autorisation basée sur l'utilisateur</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>authz_user_module</td></tr>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1587032 -->
+<!-- English Revision: 1587032:1933687 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 635137:1587032 (outdated) -->
+<!-- English Revision: 635137:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1587032 (outdated) -->
+<!-- English Revision: 151408:1933687 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
</variants>
settings (which may have been inherited from an upper-level
directory). However, whenever an unprefixed keyword is processed, it
clears all inherited options and any incremental settings encountered
- so far. Consider the following example:</p>
+ so far, except for options that take a value
+ (<code>Charset</code>, <code>Type</code>,
+ <code>DescriptionWidth</code>, <code>NameWidth</code>,
+ <code>IconWidth</code>, <code>IconHeight</code>),
+ which are inherited independently.
+ Consider the following example:</p>
<pre class="prettyprint lang-config">IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
IndexOptions +SuppressSize</pre>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932827:1933551 (outdated) -->
+<!-- English Revision: 1932827:1933762 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 689261:1933551 (outdated) -->
+<!-- English Revision: 689261:1933762 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 103423:1933551 (outdated) -->
+<!-- English Revision: 103423:1933762 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1303788:1933551 (outdated) -->
+<!-- English Revision: 1303788:1933762 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BufferSize integer</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BufferSize 131072</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_buffer</td></tr>
</table>
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_buffer.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_buffer.html" title="Français"> fr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support de la mise en tampon des requêtes</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>buffer_module</td></tr>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1330964 -->
+<!-- English Revision: 1330964:1933747 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
</variants>
</metafile>
an <a href="#AltSyn">alternate syntax</a>, described earlier in
this document.</p>
+ <p>The MIME type can use a wildcard for the sub-type, for
+ example <code>image/*</code>. This will match any type under
+ that major type. When a request's content type does not match
+ a specific <code class="directive">ExpiresByType</code> entry, a
+ wildcard entry for the major type is checked before falling
+ back to the <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code>.</p>
+
+ <div class="example"><h3>Example with wildcard:</h3><pre class="prettyprint lang-config">ExpiresActive On
+# All images expire after 1 month
+ExpiresByType image/* "access plus 1 month"
+# Override specifically for GIF
+ExpiresByType image/gif "access plus 1 week"</pre>
+</div>
+
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ExpiresDefault" id="ExpiresDefault">ExpiresDefault</a> <a name="expiresdefault" id="expiresdefault">Directive</a> <a title="Permanent link" href="#expiresdefault" class="permalink">¶</a></h2>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1330988:1933502 (outdated) -->
+<!-- English Revision: 1330988:1933749 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1933502 (outdated) -->
+<!-- English Revision: 420990:1933749 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 420990:1933502 (outdated) -->
+<!-- English Revision: 420990:1933749 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
</Location></pre>
+ <p>Note that <code class="directive">AddOutputFilterByType</code> directives
+ within the same context are additive, but a definition in a more
+ specific context (such as a
+ <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>,
+ <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, or
+ <code class="directive"><a href="../mod/core.html#location"><Location></a></code> section)
+ will replace — not add to — any definitions inherited from a
+ broader context. This is the same behavior as
+ <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>.</p>
+
+ <pre class="prettyprint lang-config"># Server context: compress text/html and text/plain
+AddOutputFilterByType DEFLATE text/html text/plain
+<VirtualHost *:80>
+ # Replaces the server-level definition for this vhost;
+ # only text/css will be compressed here:
+ AddOutputFilterByType DEFLATE text/css
+</VirtualHost></pre>
+
+
+ <div class="warning"><h3>Limitation with user-defined filters</h3>
+ <p><code class="directive">AddOutputFilterByType</code> works with standard
+ compiled-in filters such as <code>DEFLATE</code> and
+ <code>INCLUDES</code>, but does not work with filters that look
+ up their configuration by filter name, such as those defined by
+ <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> or <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code>'s
+ <code>LuaOutputFilter</code>. This is because internally the
+ filter name is modified with a <code>BYTYPE:</code> prefix.
+ For user-defined filters, use
+ <code class="directive">FilterDeclare</code> and
+ <code class="directive">FilterProvider</code> with an expression
+ matching on <code>%{CONTENT_TYPE}</code> instead.</p></div>
+
<h3>See also</h3>
<ul>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1874148:1933179 (outdated) -->
+<!-- English Revision: 1874148:1933776 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p>
<p>Order of processing is important and is affected both by the
- order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These
+ order in the configuration file and by placement in <a href="../sections.html#merging">configuration sections</a>. These
two directives have a different effect if reversed:</p>
<pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1873677:1933534 (outdated) -->
+<!-- English Revision: 1873677:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 151408:1933534 (outdated) -->
+<!-- English Revision: 151408:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 151408:1933534 (outdated) -->
+<!-- English Revision: 151408:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
LDAPTrustedGlobalCert CA_DER /certs/certfile.der
-<Location "/ldap-status">
- SetHandler ldap-status
-
- Require host yourdomain.example.com
-
- Satisfy any
+<Location "/protected">
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
LDAPTrustedGlobalCert CA_DER /certs/certfile.der
-<Location "/ldap-status">
- SetHandler ldap-status
-
- Require host yourdomain.example.com
-
- Satisfy any
+<Location "/protected">
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db
# Specify the secmod file if required
LDAPTrustedGlobalCert CA_SECMOD /certs/secmod
-<Location "/ldap-status">
- SetHandler ldap-status
-
- Require host yourdomain.example.com
-
- Satisfy any
+<Location "/protected">
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
<pre class="prettyprint lang-config"># Specify two CA certificate files
LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
-<Location "/ldap-status">
- SetHandler ldap-status
-
- Require host yourdomain.example.com
-
+<Location "/protected">
+ AuthType Basic
+ AuthName "LDAP Protected"
+ AuthBasicProvider ldap
LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem
# CA certs respecified due to per-directory client certs
LDAPTrustedClientCert CA_DER /certs/cacert1.der
LDAPTrustedClientCert CA_BASE64 /certs/cacert2.pem
- Satisfy any
- AuthType Basic
- AuthName "LDAP Protected"
- AuthBasicProvider ldap
AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
Require valid-user
</Location></pre>
<p>Since 2.4.10, new measures are in place to avoid the reference time
from being inflated by cache hits or slow requests. First, the reference
- time is not updated if no backend LDAP conncetions were needed. Second,
+ time is not updated if no backend LDAP connections were needed. Second,
the reference time uses the time the HTTP request was received instead
of the time the request is completed.</p>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1885833:1933304 (outdated) -->
+<!-- English Revision: 1885833:1933764 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
</table>
<p>
This command gets called when one of the following events happen for
- a Managed Domain: "renewed", "installed", "expiring", "errored". The command may
+ a Managed Domain: "renewed", "installed", "expiring", "errored", "renewing", "challenge-setup:type:domain", "ocsp-renewed", "ocsp-errored". The command may
be invoked for more than these in the future and ignore events
it is not prepared to handle.
</p><p>
DNS name in a MDomain. Cluster setups may use this event to distribute
challenge files to all nodes in a cluster.
</p><p>
- ocsp-errored happens when <code class="directive"><a href="#mdstapling">MDStapling</a></code>
+ 'ocsp-errored' happens when <code class="directive"><a href="#mdstapling">MDStapling</a></code>
is enabled for a domain, this indicates
that an error was encountered retrieving the OCSP response from the
Certificate Authority. mod_md will continue trying.
+ </p><p>
+ 'ocsp-renewed' is triggered when a new OCSP response has been
+ successfully obtained for a domain's certificate. This event fires
+ at most once per day.
</p>
</div>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<!-- English Revision: 1932365:1933502 (outdated) -->
+<!-- English Revision: 1932365:1933741 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
</FilesMatch></pre>
</div>
+ <div class="note"><h3>Files with no extension</h3>
+ <p>Files with no extension (such as <code>Makefile</code>) cannot
+ be matched by <code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code>'s extension-based directives.
+ To set the content type or charset for such files, use a
+ <code class="directive"><a href="../mod/core.html#files"><Files></a></code> or
+ <code class="directive"><a href="../mod/core.html#filesmatch"><FilesMatch></a></code>
+ section instead:</p>
+
+ <pre class="prettyprint lang-config"># For a specific file:
+<Files "Makefile">
+ ForceType text/plain
+ AddDefaultCharset UTF-8
+</Files>
+
+# For all files with no extension:
+<FilesMatch "^[^.]+$">
+ ForceType text/plain
+ AddDefaultCharset UTF-8
+ AddDefaultCharset UTF-8
+</FilesMatch></pre>
+
+ </div>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="contentencoding" id="contentencoding">Content encoding</a> <a title="Permanent link" href="#contentencoding" class="permalink">¶</a></h2>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932814:1933506 (outdated) -->
+<!-- English Revision: 1932814:1933715 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 659902:1933506 (outdated) -->
+<!-- English Revision: 659902:1933715 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<dd>
The <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME media type</a> of
- the document, with optional parameters. Parameters are
+ the document, with optional parameters. Each variant should
+ include a <code>Content-Type</code> header; negotiation will
+ not work correctly for variants that lack one. Parameters are
separated from the media type and from one another by a
semi-colon, with a syntax of <code>name=value</code>. Common
parameters include:
</table>
<p>If set, this directive allows content-negotiated documents
to be cached by proxy servers. This could mean that clients
- behind those proxys could retrieve versions of the documents
+ behind those proxies could retrieve versions of the documents
that are not the best match for their abilities, but it will
make caching more efficient.</p>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1924775:1933502 (outdated) -->
+<!-- English Revision: 1924775:1933745 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1933502 (outdated) -->
+<!-- English Revision: 420990:1933745 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
by configuration or MPM design.</p>
</div>
+ <div class="note"><h3>Connection pooling with prefork MPM</h3>
+ <p>With the prefork MPM, connections to backends are not pooled
+ (each child process handles one connection at a time). The
+ <code>acquire</code> and <code>ttl</code> parameters, which
+ control connection pool behavior, have no effect when using
+ prefork. The <code>min</code>, <code>smax</code>, and
+ <code>hmax</code> pool sizing parameters are also ignored.</p>
+ </div>
+
<p>Use the <code>ttl</code> parameter to set an optional
time to live; connections which have been unused for at least
<code>ttl</code> seconds will be closed. <code>ttl</code> can be used
behavior regarding reuse/keepalive of backend connections (which were
never reused before for these URLs), the parameter <var>enablereuse</var>
(or <var>disablereuse</var>) default to <code>off</code> (resp. <code>on</code>)
- in this case. Setting <code>enablereuse=on</code> explicitely allows to
+ in this case. Setting <code>enablereuse=on</code> explicitly allows to
reuse connections <strong>unless</strong> some backreference(s) belong in
the <code>authority</code> part (hostname and/or port) of the <var>url</var>
(this condition is enforced since Apache HTTP Server 2.4.55, and produces
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932769:1933645 (outdated) -->
+<!-- English Revision: 1932769:1933753 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 344971:1933645 (outdated) -->
+<!-- English Revision: 344971:1933753 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<code>ssl_key_size</code> refer to the
corresponding pieces of HTTP and HTTPS.</p>
<p>The <code>jvm_route</code>, is used to support sticky
- sessions -- associating a user's sesson with a particular Tomcat instance
+ sessions -- associating a user's session with a particular Tomcat instance
in the presence of multiple, load-balancing servers.</p>
<p>The <code>secret</code> is sent when the <code>secret=secret_keyword</code>
parameter is used in
<a href="../fr/mod/mod_proxy_ajp.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_proxy_ajp.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Module de support AJP pour
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1886996 -->
+<!-- English Revision: 1886996:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 669473:1886996 (outdated) -->
+<!-- English Revision: 669473:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
</variants>
</metafile>
<div id="quickview"><h3>Topics</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#scheduler">Load balancer scheduler algorithm</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#stickyness">Load balancer stickyness</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#stickiness">Load balancer stickiness</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#example">Examples of a balancer configuration</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#environment">Exported Environment Variables</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#balancer_manager">Enabling Balancer Manager Support</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#stickyness_implementation">Details on load balancer stickyness</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#stickyness_troubleshooting">Troubleshooting load balancer stickyness</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#stickiness_implementation">Details on load balancer stickiness</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#stickiness_troubleshooting">Troubleshooting load balancer stickiness</a></li>
</ul><h3 class="directives">Directives</h3>
<p>This module provides no
directives.</p>
configure the Balancer and BalancerMembers.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="stickyness" id="stickyness">Load balancer stickyness</a> <a title="Permanent link" href="#stickyness" class="permalink">¶</a></h2>
+<h2><a name="stickiness" id="stickiness">Load balancer stickiness</a> <a title="Permanent link" href="#stickiness" class="permalink">¶</a></h2>
- <p>The balancer supports stickyness. When a request is proxied
+ <p>The balancer supports stickiness. When a request is proxied
to some back-end, then all following requests from the same user
should be proxied to the same back-end. Many load balancers implement
this feature via a table that maps client IP addresses to back-ends.
This approach is transparent to clients and back-ends, but suffers
from some problems: unequal load distribution if clients are themselves
- hidden behind proxies, stickyness errors when a client uses a dynamic
- IP address that changes during a session and loss of stickyness, if the
+ hidden behind proxies, stickiness errors when a client uses a dynamic
+ IP address that changes during a session and loss of stickiness, if the
mapping table overflows.</p>
- <p>The module <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> implements stickyness
+ <p>The module <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> implements stickiness
on top of two alternative means: cookies and URL encoding. Providing the
cookie can be either done by the back-end or by the Apache web server
itself. The URL encoding is usually done on the back-end.</p>
ProxyPassReverse "/test" "balancer://mycluster"</pre>
- <p>Another example of how to provide load balancing with stickyness
+ <p>Another example of how to provide load balancing with stickiness
using <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>, even if the back-end server does
not set a suitable session cookie:
</p>
containers can be dynamically controlled by the Manager.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="stickyness_implementation" id="stickyness_implementation">Details on load balancer stickyness</a> <a title="Permanent link" href="#stickyness_implementation" class="permalink">¶</a></h2>
+<h2><a name="stickiness_implementation" id="stickiness_implementation">Details on load balancer stickiness</a> <a title="Permanent link" href="#stickiness_implementation" class="permalink">¶</a></h2>
- <p>When using cookie based stickyness, you need to configure the
+ <p>When using cookie based stickiness, you need to configure the
name of the cookie that contains the information about which back-end
to use. This is done via the <var>stickysession</var> attribute added
to either <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> or
<code class="directive"><a href="../mod/mod_proxy.html#proxyset">ProxySet</a></code>. The cookie can either
be set by the back-end, or as shown in the above
<a href="#example">example</a> by the Apache web server itself.</p>
- <p>Some back-ends use a slightly different form of stickyness cookie,
+ <p>Some back-ends use a slightly different form of stickiness cookie,
for instance Apache Tomcat. Tomcat adds the name of the Tomcat instance
to the end of its session id cookie, separated with a dot (<code>.</code>)
from the session id. Thus if the Apache web server finds a dot in the value
- of the stickyness cookie, it only uses the part behind the dot to search
+ of the stickiness cookie, it only uses the part behind the dot to search
for the route. In order to let Tomcat know about its instance name, you
need to set the attribute <code>jvmRoute</code> inside the Tomcat
configuration file <code>conf/server.xml</code> to the value of the
The name of the session cookie used by Tomcat (and more generally by Java
web applications based on servlets) is <code>JSESSIONID</code>
(upper case) but can be configured to something else.</p>
- <p>The second way of implementing stickyness is URL encoding.
+ <p>The second way of implementing stickiness is URL encoding.
The web server searches for a query parameter in the URL of the request.
The name of the parameter is specified again using <var>stickysession</var>.
The value of the parameter is used to lookup a member worker with <var>route</var>
for the same request, the information from the request parameter is used.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="stickyness_troubleshooting" id="stickyness_troubleshooting">Troubleshooting load balancer stickyness</a> <a title="Permanent link" href="#stickyness_troubleshooting" class="permalink">¶</a></h2>
+<h2><a name="stickiness_troubleshooting" id="stickiness_troubleshooting">Troubleshooting load balancer stickiness</a> <a title="Permanent link" href="#stickiness_troubleshooting" class="permalink">¶</a></h2>
- <p>If you experience stickyness errors, e.g. users lose their
+ <p>If you experience stickiness errors, e.g. users lose their
application sessions and need to login again, you first want to
check whether this is because the back-ends are sometimes unavailable
or whether your configuration is wrong. To find out about possible
stability problems with the back-ends, check your Apache error log
for proxy error messages.</p>
- <p>To verify your configuration, first check, whether the stickyness
+ <p>To verify your configuration, first check, whether the stickiness
is based on a cookie or on URL encoding. Next step would be logging
the appropriate data in the access log by using an enhanced
<code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code>.
<p>Common reasons for loss of session are session timeouts,
which are usually configurable on the back-end server.</p>
<p>The balancer also logs detailed information about handling
- stickyness to the error log, if the log level is set to
+ stickiness to the error log, if the log level is set to
<code>debug</code> or higher. This is an easy way to
- troubleshoot stickyness problems, but the log volume might
+ troubleshoot stickiness problems, but the log volume might
be too high for production servers under high load.</p>
</div>
</div>
<a href="../fr/mod/mod_proxy_balancer.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_proxy_balancer.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Extension de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> pour le support de
la répartition de charge</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1878784 -->
+<!-- English Revision: 1878784:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 395228:1878784 (outdated) -->
+<!-- English Revision: 395228:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
</variants>
</metafile>
<div id="quickview"><h3>Topics</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#intro">Introduction</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#custom">Customised HTML Parsing</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#custom">Customized HTML Parsing</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#i18n">Internationalisation</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
and is a standard module in HTTPD 2.4 and development versions.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="custom" id="custom">Customised HTML Parsing</a> <a title="Permanent link" href="#custom" class="permalink">¶</a></h2>
+<h2><a name="custom" id="custom">Customized HTML Parsing</a> <a title="Permanent link" href="#custom" class="permalink">¶</a></h2>
<p>Internally, mod_proxy_html uses the HTMLParser module from the
third-party <a href="http://xmlsoft.org/">libxml2</a> library.
Unlike other libxml2 parsers, HTMLParser deals with HTML without
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932817:1933179 (outdated) -->
+<!-- English Revision: 1932817:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!--
<code>REQUEST_URI</code>
has already been %-decoded, to re-encode it pass it through
the "escape" <a href="#mapfunc">mapping-function</a>.
+ Note that this server variable differs from the CGI
+ environment variable of the same name: in a CGI context,
+ <code>REQUEST_URI</code> contains the full original URI
+ from the request line, including the query string. See
+ the <code class="directive"><a href="../mod/core.html#cgivar">CGIVar</a></code>
+ directive for details.
</dd>
<dt><code>THE_REQUEST</code></dt>
<dt>file-system path</dt>
<dd>Designates the location on the file-system of the resource
- to be delivered to the client. Substitutions are only
- treated as a file-system path when the rule is configured in
- server (virtualhost) context and the first component of the
- path in the substitution exists in the file-system</dd>
+ to be delivered to the client. A substitution beginning with
+ <code>/</code> is treated as a file-system path only in
+ server or virtual host context, and only when the first
+ component of the path exists in the file-system. In
+ <a class="glossarylink" href="../glossary.html#perdirectory" title="see glossary">per-directory context</a>,
+ this guessing does not occur.</dd>
<dt>URL-path</dt>
<dd>A <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>-relative path to the
- resource to be served. Note that <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
- tries to guess whether you have specified a file-system path
- or a URL-path by checking to see if the first segment of the
- path exists at the root of the file-system. For example, if
- you specify a <em>Substitution</em> string of
- <code>/www/file.html</code>, then this will be treated as a
- URL-path <em>unless</em> a directory named <code>www</code>
- exists at the root of your file-system (or, in the case of
- per-directory rewrites, relative to
- your document root), in which case it will
- be treated as a file-system path. If you wish other
+ resource to be served. In server or virtual host context,
+ if the first segment of the path exists at the root of the
+ file-system, the substitution is treated as a file-system
+ path instead. For example, <code>/www/file.html</code> is
+ a URL-path unless a directory named <code>www</code> exists
+ at the root of the file-system. If you wish other
URL-mapping directives (such as <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>) to be applied to the
resulting URL-path, use the <code>[PT]</code> flag as
described below.</dd>
(<strong>N</strong>=0..9). <code>$0</code> refers to the
entire string matched by the <em>Pattern</em>, while
<code>$1</code>..<code>$9</code> refer to the corresponding
- captured groups from the matched <em>Pattern</em>. The server-variables are the same
+ captured groups from the matched <em>Pattern</em>.
+ Similarly, back-references
+ <code>%0</code>..<code>%9</code> refer to the most recently
+ matched
+ <code class="directive"><a href="#rewritecond">RewriteCond</a></code>
+ <em>CondPattern</em>: <code>%0</code> is the entire match and
+ <code>%1</code>..<code>%9</code> are the captured groups. The server-variables are the same
as for the <em>TestString</em> of a
<code class="directive"><a href="#rewritecond">RewriteCond</a></code>
directive. The mapping-functions come from the
</div>
- <p>Here are all possible substitution combinations and their
+ <p>Here are the possible combinations of substitution string
+ form, context, and the [R] and [P] flags, and their
meanings:</p>
- <p><strong>Inside per-server configuration
- (<code>httpd.conf</code>)<br />
+ <p><strong>Outside <a class="glossarylink" href="../glossary.html#perdirectory" title="see glossary">per-directory</a> configuration<br />
for request ``<code>GET
/somepath/pathinfo</code>'':</strong><br />
</p>
</tr>
</table>
- <p><strong>Inside per-directory configuration for
+ <p><strong>Inside <a class="glossarylink" href="../glossary.html#perdirectory" title="see glossary">per-directory</a> configuration for
<code>/somepath</code><br />
- (<code>/physical/path/to/somepath/.htaccess</code>, with
+ (e.g., <code>.htaccess</code> or <code><Directory></code>, with
<code>RewriteBase "/somepath"</code>)<br />
for request ``<code>GET
/somepath/localpath/pathinfo</code>'':</strong><br />
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932387:1933662 (outdated) -->
+<!-- English Revision: 1932387:1933772 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
the compatibility policy is tested.</p>
<p>The <code>strict</code> policy blocks all HTTP requests which are
-identified with a different virtual host to that identifed by SNI.
+identified with a different virtual host to that identified by SNI.
The <code>insecure</code> policy allows all HTTP requests regardless
of virtual host identified; such a configuration may be vulnerable to
<a href="https://httpd.apache.org/security/vulnerabilities_24.html">CVE-2025-23048</a>.
certificate or key (<code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> etc), cipher or
protocol restrictions (<code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> and <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code>)</li>
- <li><strong>client vertification and authentication
+ <li><strong>client verification and authentication
settings</strong>: directives which affect TLS client certificate
verification or authentication, such as <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code>, <code class="directive"><a href="#sslverifymode">SSLVerifyMode</a></code>, <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>, <code class="directive"><a href="#sslsrpverifierfile">SSLSRPVerifierFile</a></code>; any use of <code class="directive"><a href="#sslopensslconfcmd">SSLOpenSSLConfCmd</a></code></li>
</ul>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1817381:1933647 (outdated) -->
+<!-- English Revision: 1817381:1933739 (outdated) -->
<!-- Spanish Translation: Daniel Ferradal <dferradal@apache.org> -->
<!-- Updated and reviewed: Luis Gil de bernabe <lgilbernabe@apache.org> -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933097:1933647 (outdated) -->
+<!-- English Revision: 1933097:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
not been tampered with.</dd>
<dt>Signed Certificate Timestamp (SCT)</dt>
- <dd>This is an acknowledgement from a log that it has accepted a valid
+ <dd>This is an acknowledgment from a log that it has accepted a valid
certificate. It is signed with the log's public key. One or more SCTs
is passed to clients during the handshake, either in the ServerHello
(TLS extension), certificate extension, or in a stapled OCSP response.</dd>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1690137:1933449 (outdated) -->
+<!-- English Revision: 1690137:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- $LastChangedRevision: 2015071101 $ -->
format. The interpolation is controlled by specifiers inspired
by <code>printf</code> which have a number of formats:</p>
+ <div class="note"><h3>Note</h3>
+ <p>The interpolated directory must be an absolute path. The
+ special value <code>none</code> can be used to disable the
+ directive.</p>
+ </div>
+
<table>
<tr><td><code>%%</code></td>
<a href="../fr/mod/mod_vhost_alias.html" title="Français"> fr </a> |
<a href="../tr/mod/mod_vhost_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet de configurer dynamiquement l'hébergement virtuel de
masse</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1673945 -->
+<!-- English Revision: 1673945:1933743 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- $LastChangedRevision: 2015041801 $ -->
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">tr</variant>
</variants>
</metafile>
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1174747:1673945 (outdated) -->
+<!-- English Revision: 1174747:1933743 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Sets environment variables conditional on User-Agent without
respect to case</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">Buffer log entries in memory before writing to disk</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">The default duration to cache a document when no expiry date is specified.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">The number of characters in subdirectory names</td></tr>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Sets environment variables conditional on User-Agent without
respect to case</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">Buffer log entries in memory before writing to disk</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">The default duration to cache a document when no expiry date is specified.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">The number of characters in subdirectory names</td></tr>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Sets environment variables conditional on User-Agent without
respect to case</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">Buffer log entries in memory before writing to disk</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">The default duration to cache a document when no expiry date is specified.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">The number of characters in subdirectory names</td></tr>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">HTTP User-Agent に基づいて大文字小文字を区別せずに
環境変数を設定する</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">ディスクに書き出す前にメモリにログエントリをバッファする</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (1時間) </td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">サブディレクトリ名の文字数</td></tr>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö¾Ê°í User-Agent¿¡ µû¶ó ȯ°æº¯¼ö¸¦
¼³Á¤ÇÑ´Ù</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs" /></td><td></td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">Buffer log entries in memory before writing to disk</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>svdh</td><td>X</td></tr><tr><td class="descr" colspan="4">¸¸±â½Ã°£À» ÁöÁ¤ÇÏÁö¾ÊÀº ¹®¼¸¦ ij½¬ÇÒ ±âº» ±â°£.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader" /></td><td></td><td>svdh</td><td>X</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>X</td></tr><tr><td class="descr" colspan="4">ÇÏÀ§µð·ºÅ丮¸íÀÇ ¹®ÀÚ°³¼ö</td></tr>
duyarsız eşleşmelerine bağlı olarak belirler.</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>T</td></tr><tr><td class="descr" colspan="4">Günlük girdilerini diske yazmadan önce bellekte tamponlar
</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>skdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>skdh</td><td>E</td></tr><tr><td class="descr" colspan="4">The default duration to cache a document when no expiry date is specified.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>skdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">The number of characters in subdirectory names</td></tr>
[[!]<em>env-variable</em>[=<em>value</em>]] ...</a></td><td></td><td>svdh</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Sets environment variables conditional on User-Agent without
respect to case</td></tr>
<tr><td><a href="mod_log_config.html#bufferedlogs">BufferedLogs On|Off</a></td><td> Off </td><td>s</td><td>B</td></tr><tr><td class="descr" colspan="4">Buffer log entries in memory before writing to disk</td></tr>
-<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
+<tr class="odd"><td><a href="mod_buffer.html#buffersize">BufferSize integer</a></td><td> 131072 </td><td>dh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Maximum size in bytes to buffer by the buffer filter</td></tr>
<tr><td><a href="mod_cache.html#cachedefaultexpire" id="C" name="C">CacheDefaultExpire <var>seconds</var></a></td><td> 3600 (one hour) </td><td>svdh</td><td>E</td></tr><tr><td class="descr" colspan="4">The default duration to cache a document when no expiry date is specified.</td></tr>
<tr class="odd"><td><a href="mod_cache.html#cachedetailheader">CacheDetailHeader <var>on|off</var></a></td><td> off </td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Add an X-Cache-Detail header to the response.</td></tr>
<tr><td><a href="mod_cache_disk.html#cachedirlength">CacheDirLength <var>length</var></a></td><td> 2 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">The number of characters in subdirectory names</td></tr>
<p>During the build process, adding the keyword "install" to the makefile command line
will automatically produce a complete distribution package under the subdirectory
<code>DIST</code>. Install httpd by simply copying the distribution that was produced
- by the makfiles to the root of a NetWare volume (see: <a href="#comp">Compiling Apache httpd for
+ by the makefiles to the root of a NetWare volume (see: <a href="#comp">Compiling Apache httpd for
NetWare</a> below).</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1874148:1933438 (outdated) -->
+<!-- English Revision: 1874148:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1933438 (outdated) -->
+<!-- English Revision: 105989:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
or <code>-n</code>, httpd will use the file name compiled into the
server, such as <code>conf\httpd.conf</code>. This built-in path
is relative to the installation directory. You can verify the compiled
- file name from a value labelled as <code>SERVER_CONFIG_FILE</code> when
+ file name from a value labeled as <code>SERVER_CONFIG_FILE</code> when
invoking httpd with the <code>-V</code> switch, like this:</p>
<div class="example"><p><code>
<li>The server root compiled into the server. This is <code>
/apache</code> by default, you can verify it by using <code>
- httpd.exe -V</code> and looking for a value labelled as
+ httpd.exe -V</code> and looking for a value labeled as
<code>HTTPD_ROOT</code>.</li>
</ol>
<a href="../fr/platform/windows.html" title="Français"> fr </a> |
<a href="../ko/platform/windows.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Ce document décrit l'installation, la configuration et
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933076 -->
+<!-- English Revision: 1933076:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1933076 (outdated) -->
+<!-- English Revision: 105989:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ko</variant>
</variants>
</metafile>
same stdin, stdout, and stderr as rotatelogs itself, and also inherits
the environment.</p>
<p>When two parameters are provided, under some conditions the parameters
-will have the same value. For example, if rotation is triggerd but the
+will have the same value. For example, if rotation is triggered but the
portions of the time and date incorporated into the log filename do not change
across the rotation.</p>
</dd>
<p>This creates the files /var/log/logfile.yyyy.mm where
yyyy is the year and mm is the month. Every day at midnight, rotation
will occur, including running programs specified with <code>-p</code>.
- Despite rotation ocurring, the filename will only change on the first
+ Despite rotation occurring, the filename will only change on the first
rotation of the month. Rotation on other days will continue to output file
and append to it.
</p>
<a href="../ko/programs/rotatelogs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/programs/rotatelogs.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p><code class="program"><a href="../programs/rotatelogs.html">rotatelogs</a></code> est un programme simple à utiliser en
conjonction avec la fonctionnalité d'Apache de redirection dans un
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933136 -->
+<!-- English Revision: 1933136:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 420993:1933136 (outdated) -->
+<!-- English Revision: 420993:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
</variants>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1189220:1933136 (outdated) -->
+<!-- English Revision: 1189220:1933739 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<li><img alt="" src="../images/down.gif" /> <a href="#alias">URL Aliasing</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxy">Simple Proxying</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#setenv">Environment Variable Testing</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#fallback-resource">Front Controller / Resource Routing</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#ifexpr">Conditional Configuration with Expressions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#blocked-inline-images">Forbidding Image Hotlinking</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#blocking-of-robots">Blocking of Robots</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#host-deny">Denying Hosts in a Reject List</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#vhosts">Virtual Hosting</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#load-balancing">Load Balancing</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="redirect" id="redirect">Simple Redirection</a> <a title="Permanent link" href="#redirect" class="permalink">¶</a></h2>
use in <code class="directive"><a href="../mod/core.html#if"><If></a></code> sections,
and in certain other directives.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="fallback-resource" id="fallback-resource">Front Controller / Resource Routing</a> <a title="Permanent link" href="#fallback-resource" class="permalink">¶</a></h2>
+
+<p>A very common use of <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> is to route all
+requests for non-existent resources to a single front controller script
+(e.g. <code>index.php</code>). This is the basis of most modern web
+framework routing.</p>
+
+<p>The typical <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> approach is:</p>
+
+<pre class="prettyprint lang-config">RewriteEngine On
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
+RewriteRule "^(.*)$" "/index.php" [L]</pre>
+
+
+<p>This can be accomplished far more simply with the
+<code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code> directive:</p>
+
+<pre class="prettyprint lang-config">FallbackResource /index.php</pre>
+
+
+<p><code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code> does the
+same thing - requests for existing files and directories are served
+normally, while everything else is routed to the specified resource -
+but without the overhead and complexity of the rewrite engine. It works
+in both server configuration and <code>.htaccess</code> context.</p>
+
+<p>To disable a <code>FallbackResource</code> set in a parent
+directory:</p>
+
+<pre class="prettyprint lang-config">FallbackResource disabled</pre>
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="ifexpr" id="ifexpr">Conditional Configuration with Expressions</a> <a title="Permanent link" href="#ifexpr" class="permalink">¶</a></h2>
+
+<p>Many uses of <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>
+can be replaced by the
+<code class="directive"><a href="../mod/core.html#if"><If></a></code> directive, which
+supports a rich <a href="../expr.html">expression syntax</a> and
+integrates cleanly with other Apache directives.</p>
+
+<p>Redirect based on a query string parameter:</p>
+
+<pre class="prettyprint lang-config"><If "%{QUERY_STRING} =~ /lang=fr/">
+ Redirect "/welcome" "/bienvenue"
+</If></pre>
+
+
+<p>Restrict access by request method:</p>
+
+<pre class="prettyprint lang-config"><If "%{REQUEST_METHOD} IN {'DELETE', 'PUT', 'PATCH'}">
+ Require ip 10.0.0.0/8
+</If></pre>
+
+
+<p>Block requests missing a Host header (HTTP/1.0 clients):</p>
+
+<pre class="prettyprint lang-config"><If "-z req('Host')">
+ Require all denied
+</If></pre>
+
+
+<p>See the <a href="../expr.html">expression evaluation
+documentation</a> for the full syntax available in
+<code class="directive"><a href="../mod/core.html#if"><If></a></code> blocks.</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="blocked-inline-images" id="blocked-inline-images">Forbidding Image Hotlinking</a> <a title="Permanent link" href="#blocked-inline-images" class="permalink">¶</a></h2>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933071:1933675 (outdated) -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<li><img alt="" src="../images/down.gif" /> <a href="#flag_unsafe_allow_3f">UnsafeAllow3F</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_unsafe_prefix_stat">UnsafePrefixStat</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#flag_unc">UNC</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="introduction" id="introduction">Introduction</a> <a title="Permanent link" href="#introduction" class="permalink">¶</a></h2>
RewriteRule "^search/(.*)$" "/search.php/$1" "[BCTLS]"</pre>
-<p>This flag is available in version 2.5.1 and later.</p>
+<p>This flag is available in version 2.4.57 and later.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
RewriteRule "^search/(.*)$" "/search.php?term=$1" "[B,BNE=/]"</pre>
-<p>This flag is available in version 2.5.1 and later.</p>
+<p>This flag is available in version 2.4.57 and later.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="flag_c" id="flag_c">C|chain</a> <a title="Permanent link" href="#flag_c" class="permalink">¶</a></h2>
<h2><a name="flag_dpi" id="flag_dpi">DPI|discardpath</a> <a title="Permanent link" href="#flag_dpi" class="permalink">¶</a></h2>
<p>The DPI flag causes the PATH_INFO portion of the rewritten URI to be
discarded.</p>
-<p>This flag is available in version 2.2.12 and later.</p>
<p>In per-directory context, the URI each <code class="directive">RewriteRule</code>
compares against is the concatenation of the current values of the URI
and PATH_INFO.</p>
<h2><a name="flag_end" id="flag_end">END</a> <a title="Permanent link" href="#flag_end" class="permalink">¶</a></h2>
<p>Using the [END] flag terminates not only the current round of rewrite
processing (like [L]) but also prevents any subsequent rewrite
-processing from occurring in per-directory (htaccess) context.</p>
+processing from occurring in
+<a class="glossarylink" href="../glossary.html#perdirectory" title="see glossary">per-directory</a> context. This
+makes it the preferred flag for most per-directory rules.</p>
+
+<p>In server or virtualhost context, [END] and [L] behave identically.
+The difference matters in per-directory context, where [L] stops the
+current pass but the ruleset is re-applied on the rewritten URL. This
+can cause infinite loops. [END] prevents all further rewrite processing,
+breaking the cycle.</p>
+
+<pre class="prettyprint lang-config"># In .htaccess: route all requests to a front controller
+# [L] would cause a loop here; [END] does not
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
+RewriteRule "^(.*)$" "/index.php" [END]</pre>
+
<p>This does not apply to new requests resulting from external
redirects.</p>
+
+<p>See the <a href="htaccess.html#loops">.htaccess looping</a>
+discussion for a detailed explanation of why [L] behaves differently
+in per-directory context, and when [END] is the right choice.</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="flag_f" id="flag_f">F|forbidden</a> <a title="Permanent link" href="#flag_f" class="permalink">¶</a></h2>
<p>Note: <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> must be enabled in order
to use this flag.</p>
+<div class="warning"><h3>Security warning</h3>
+<p>Take care when constructing the target URL of the rule, considering
+the security impact of allowing the client influence over the set of
+URLs to which your server will act as a proxy. If any part of the
+target URL is derived from user input (backreferences, query strings,
+etc.), an attacker may be able to cause your server to make requests
+to arbitrary internal or external hosts. This is known as a
+Server-Side Request Forgery (SSRF) vulnerability.</p>
+</div>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="flag_pt" id="flag_pt">PT|passthrough</a> <a title="Permanent link" href="#flag_pt" class="permalink">¶</a></h2>
their filename. If no query string is used in the substitution,
a question mark can be appended to it in combination with this flag. </p>
+<p>For example, if a legacy application expects a query string that
+itself contains a question mark:</p>
+
+<pre class="prettyprint lang-config"># Map /lookup/foo?bar to /app?type=foo?bar
+# Without [QSL], the first ? in the substitution would split the
+# path, producing /app with query string type=foo?bar incorrectly.
+# With [QSL], the LAST ? is used as the delimiter.
+RewriteRule "^/lookup/(.*)" "/app?type=$1" [QSL,PT]</pre>
+
+
+<p>Without [QSL], the substitution <code>/app?type=foo?bar</code>
+would be split at the first <code>?</code>, losing the literal question
+mark in the value.</p>
+
<p> This flag is available in version 2.4.19 and later.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<h2><a name="flag_unsafe_allow_3f" id="flag_unsafe_allow_3f">UnsafeAllow3F</a> <a title="Permanent link" href="#flag_unsafe_allow_3f" class="permalink">¶</a></h2>
<p> Setting this flag is required to allow a rewrite to continue If the
HTTP request being written has an encoded question mark, '%3f', and the
- rewritten result has a '?' in the substiution. This protects from a malicious
+ rewritten result has a '?' in the substitution. This protects from a malicious
URL taking advantage of a capture and re-substitution of the encoded
question mark.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933062:1933655 (outdated) -->
+<!-- English Revision: 1933062:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
declared in .htaccess</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#inheritance">Rule inheritance with RewriteOptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#debugging">Debugging .htaccess rewrite rules</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="flags.html">RewriteRule Flags</a></li><li><a href="tech.html">Technical details</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="flags.html">RewriteRule Flags</a></li><li><a href="tech.html">Technical details</a></li><li><a href="../mod/mod_rewrite.html#what_is_matched">What is matched?</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="prerequisites" id="prerequisites">Prerequisites: AllowOverride</a> <a title="Permanent link" href="#prerequisites" class="permalink">¶</a></h2>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933067:1933675 (outdated) -->
+<!-- English Revision: 1933067:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<li><a href="../mod/mod_rewrite.html">mod_rewrite reference
documentation</a></li>
<li><a href="intro.html">Introduction to regular expressions and mod_rewrite</a></li>
+<li><a href="htaccess.html">mod_rewrite in .htaccess files</a></li>
<li><a href="flags.html">RewriteRule Flags</a></li>
<li><a href="rewritemap.html">Using RewriteMap</a></li>
<li><a href="avoid.html">When <strong>NOT</strong> to use mod_rewrite</a></li>
<li><a href="remapping.html">Using mod_rewrite for redirection and remapping of URLs</a></li>
-<li><a href="access.html">Using mod_rewrite to control access</a></li>
<li><a href="vhosts.html">Dynamic virtual hosts with mod_rewrite</a></li>
-<li><a href="proxy.html">Dynamic proxying with mod_rewrite</a></li>
-<li><a href="advanced.html">Advanced techniques</a></li>
<li><a href="tech.html">Technical details</a></li>
</ul>
</div>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">Rewrite Conditions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#rewritemap">Rewrite maps</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#htaccess">.htaccess files</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">Security Considerations</a></li>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="introduction" id="introduction">Introduction</a> <a title="Permanent link" href="#introduction" class="permalink">¶</a></h2>
<div class="section">
<h2><a name="regex" id="regex">Regular Expressions</a> <a title="Permanent link" href="#regex" class="permalink">¶</a></h2>
-<p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> uses the <a href="http://pcre.org/">Perl Compatible
+<p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> uses the <a href="https://www.pcre.org/">Perl Compatible
Regular Expression</a> vocabulary. In this document, we do not attempt
to provide a detailed reference to regular expressions. For that, we
-recommend the <a href="http://pcre.org/pcre.txt">PCRE man pages</a>, the
-<a href="http://perldoc.perl.org/perlre.html">Perl regular
+recommend the <a href="https://www.pcre.org/pcre.txt">PCRE man pages</a>, the
+<a href="https://perldoc.perl.org/perlre">Perl regular
expression man page</a>, and <a href="https://www.oreilly.com/library/view/mastering-regular-expressions/0596528124/">Mastering
Regular Expressions, by Jeffrey Friedl</a> (the third edition is from
2006, but regular expression syntax is essentially unchanged, and this
stripped before matching in
the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. In addition, the <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> should be used to assure the request is properly mapped.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">Security Considerations</a> <a title="Permanent link" href="#security" class="permalink">¶</a></h2>
+
+<p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> is a powerful URL manipulation tool, and
+with that power comes the potential for security mistakes. This section
+highlights the most common security pitfalls to watch for when writing
+rewrite rules.</p>
+
+<h3><a name="security-redirect" id="security-redirect">Open Redirects</a></h3>
+
+<p>If a <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>
+constructs a redirect URL using unvalidated user input, an attacker
+can craft a link that redirects visitors to a malicious site while
+appearing to originate from your domain. This is known as an
+<em>open redirect</em> vulnerability.</p>
+
+<p>For example, this rule is dangerous:</p>
+
+<pre class="prettyprint lang-config"># DANGEROUS - allows open redirect
+RewriteRule "^/redirect" "%{QUERY_STRING}" [R,L]</pre>
+
+
+<p>An attacker could use
+<code>https://yoursite.com/redirect?https://evil.com</code> to redirect
+users to a malicious site. Always validate or constrain redirect
+targets. If the destination must be on your own site, ensure the
+substitution begins with <code>/</code> (a relative path) rather than
+allowing a full URL from user input.</p>
+
+
+
+<h3><a name="security-ssrf" id="security-ssrf">Server-Side Request Forgery (SSRF)</a></h3>
+
+<p>When using the <a href="flags.html#flag_p">[P] (proxy) flag</a>,
+<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> causes the server to make an HTTP request
+to the substitution URL on behalf of the client. If any part of that
+URL is derived from user input - backreferences, query strings, or
+headers - an attacker may be able to cause your server to make requests
+to arbitrary internal services or external hosts.</p>
+
+<p>For example:</p>
+
+<pre class="prettyprint lang-config"># DANGEROUS - user controls the proxy target
+RewriteCond "%{QUERY_STRING}" "target=(.+)"
+RewriteRule "^/fetch" "http://%1" [P]</pre>
+
+
+<p>An attacker could use this to probe internal network services that
+are not otherwise accessible from the internet. Always use a fixed
+hostname in proxy targets, and limit backreferences to the path
+component only.</p>
+
+
+
+<h3><a name="security-path" id="security-path">Path Traversal</a></h3>
+
+<p>Rewrite rules that map user-supplied path components directly to
+the filesystem can allow path traversal attacks if the input is not
+properly constrained. For example:</p>
+
+<pre class="prettyprint lang-config"># DANGEROUS - allows path traversal
+RewriteRule "^/files/(.+)" "/var/data/$1" [L]</pre>
+
+
+<p>A request for <code>/files/../../etc/passwd</code> could potentially
+access files outside the intended directory. Use restrictive patterns
+in your <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> (for
+example, <code>[a-zA-Z0-9_-]+</code> instead of <code>.+</code>), and
+rely on Apache's built-in protections
+(<code class="directive"><a href="../mod/core.html#options">Options</a></code> and
+<code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>
+restrictions) as defense in depth.</p>
+
+
+
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../de/rewrite/intro.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933423:1933655 (outdated) -->
+<!-- English Revision: 1933423:1933724 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
request. This includes many examples of common uses of <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>,
including detailed descriptions of how each works.</p>
-<div class="warning">Note that many of these examples won't work unchanged in your
-particular server configuration, so it's important that you understand
-them, rather than merely cutting and pasting the examples into your
-configuration.</div>
-
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#old-to-new">From Old to New (internal)</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#https-redirect">Forcing HTTPS</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#trailing-slash">Trailing Slash Normalization</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#www-resolve">Canonical www/non-www Hostname</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#front-controller">Front Controller / Application Routing</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#old-to-new-extern">Rewriting From Old to New (external)</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#movehomedirs">Resource Moved to Another Server</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#backward-compatibility">Backward Compatibility for file extension change</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#redirectanchors">Redirecting Anchors</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#time-dependent">Time-Dependent Rewriting</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#on-the-fly-content">On-the-fly Content-Regeneration</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="old-to-new" id="old-to-new">From Old to New (internal)</a> <a title="Permanent link" href="#old-to-new" class="permalink">¶</a></h2>
RewriteRule "^<strong>/foo</strong>\.html$" "<strong>/bar</strong>.html" [PT]</pre>
</dd>
+</dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="https-redirect" id="https-redirect">Forcing HTTPS</a> <a title="Permanent link" href="#https-redirect" class="permalink">¶</a></h2>
+
+
+
+ <dl>
+ <dt>Description:</dt>
+
+ <dd>
+ <p>You want all HTTP requests to be redirected to HTTPS. This
+ is one of the most common uses of <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>,
+ but in most cases it is better accomplished without it.</p>
+ </dd>
+
+ <dt>Solution:</dt>
+
+ <dd>
+
+ <p>The preferred approach uses a
+ <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code> directive in a
+ dedicated HTTP virtual host:</p>
+
+<pre class="prettyprint lang-config"><VirtualHost *:80>
+ ServerName www.example.com
+ Redirect permanent "/" "https://www.example.com/"
+</VirtualHost>
+
+<VirtualHost *:443>
+ ServerName www.example.com
+ # ... SSL configuration goes here
+</VirtualHost></pre>
+
+
+ </dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>If you do not have access to the main server configuration and
+ must use a <code>.htaccess</code> file, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+ is the appropriate tool:</p>
+
+<pre class="prettyprint lang-config">RewriteEngine On
+RewriteCond "%{HTTPS}" !=on
+RewriteRule "^(.*)" "https://%{SERVER_NAME}$1" [R=301,L]</pre>
+
+
+ <p>The <code>%{HTTPS}</code> variable is set to <code>on</code>
+ when the connection is using SSL/TLS, and is empty or
+ <code>off</code> otherwise. Using <code>R=301</code> issues a
+ permanent redirect, which tells search engines to update their
+ index.</p>
+
+ <p>See also the <a href="avoid.html#redirect">When not to use
+ mod_rewrite</a> document for more discussion of the
+ <code>Redirect</code> approach.</p>
+ </dd>
+ </dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="trailing-slash" id="trailing-slash">Trailing Slash Normalization</a> <a title="Permanent link" href="#trailing-slash" class="permalink">¶</a></h2>
+
+
+
+ <dl>
+ <dt>Description:</dt>
+
+ <dd>
+ <p>You want to ensure that URLs for directories always end with
+ a trailing slash, or conversely, that they never do. This is a
+ common requirement for SEO and for consistent URL handling by
+ web applications.</p>
+ </dd>
+
+ <dt>Solution:</dt>
+
+ <dd>
+ <p>To add a trailing slash to URLs that map to directories:</p>
+
+<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" -d
+RewriteCond "%{REQUEST_URI}" "!/$"
+RewriteRule "^(.*)$" "$1/" [R=301,L]</pre>
+
+
+ <p>To remove a trailing slash (except for actual directories):</p>
+
+<pre class="prettyprint lang-config">RewriteCond "%{REQUEST_FILENAME}" !-d
+RewriteCond "%{REQUEST_URI}" "(.+)/$"
+RewriteRule "^" "%1" [R=301,L]</pre>
+
+
+ </dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>Apache's <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> already handles trailing
+ slash redirects for real directories when
+ <code class="directive"><a href="../mod/mod_dir.html#directoryslash">DirectorySlash</a></code> is enabled
+ (the default). You only need a <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> rule
+ if you want to enforce trailing slash behavior for URLs that do
+ not correspond to actual directories on disk, or if you want to
+ remove trailing slashes.</p>
+ </dd>
+ </dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="www-resolve" id="www-resolve">Canonical www/non-www Hostname</a> <a title="Permanent link" href="#www-resolve" class="permalink">¶</a></h2>
+
+
+
+ <dl>
+ <dt>Description:</dt>
+
+ <dd>
+ <p>You want to force all requests to use either
+ <code>www.example.com</code> or <code>example.com</code>,
+ not both. This ensures search engines treat them as one site
+ and prevents cookie scope issues.</p>
+ </dd>
+
+ <dt>Solution:</dt>
+
+ <dd>
+ <p>The best approach does not use <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> at
+ all. Place a <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code>
+ in the virtual host for the non-canonical hostname:</p>
+
+<pre class="prettyprint lang-config"># Redirect example.com -> www.example.com
+<VirtualHost *:80 *:443>
+ ServerName example.com
+ Redirect permanent "/" "https://www.example.com/"
+</VirtualHost></pre>
+
+
+ <p>If you only have <code>.htaccess</code> access:</p>
+
+<pre class="prettyprint lang-config"># Add www
+RewriteEngine On
+RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
+RewriteRule "^(.*)" "https://www.%{HTTP_HOST}$1" [R=301,L]</pre>
+
+
+<pre class="prettyprint lang-config"># Remove www
+RewriteEngine On
+RewriteCond "%{HTTP_HOST}" "^www\.(.+)$" [NC]
+RewriteRule "^(.*)" "https://%1$1" [R=301,L]</pre>
+
+
+ </dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>See also the <a href="#canonicalhost">Canonical Hostnames</a>
+ recipe above, which covers the general case. This recipe focuses
+ specifically on the www/non-www choice, which is the most common
+ hostname canonicalization need.</p>
+ </dd>
+ </dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="front-controller" id="front-controller">Front Controller / Application Routing</a> <a title="Permanent link" href="#front-controller" class="permalink">¶</a></h2>
+
+
+
+ <dl>
+ <dt>Description:</dt>
+
+ <dd>
+ <p>Most modern web frameworks (PHP, Python, Ruby, etc.) use a
+ single entry point - often called a "front controller" - that
+ handles all requests. URLs like <code>/products/widget</code>
+ are routed to <code>index.php</code> (or equivalent), which
+ parses the URL internally.</p>
+ </dd>
+
+ <dt>Solution:</dt>
+
+ <dd>
+
+ <div class="note">For this use case, the
+ <code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code> directive is
+ almost always the better choice. See the
+ <a href="#fallback-resource">Fallback Resource</a> recipe above.</div>
+
+ <p>If you need <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> (for example, to add
+ additional conditions), the standard pattern is:</p>
+
+<pre class="prettyprint lang-config">RewriteEngine On
+RewriteCond "%{REQUEST_FILENAME}" !-f
+RewriteCond "%{REQUEST_FILENAME}" !-d
+RewriteRule "^(.*)$" "/index.php" [L]</pre>
+
+
+ <p>The <code>!-f</code> and <code>!-d</code> conditions skip the
+ rule for requests that map to an existing file or directory, so
+ static assets (images, CSS, JavaScript) are still served
+ directly.</p>
+ </dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>In <code>.htaccess</code> context, consider using
+ <code>[END]</code> instead of <code>[L]</code> to avoid
+ reprocessing loops. See the
+ <a href="htaccess.html#loops">.htaccess looping</a> discussion
+ for details.</p>
+ </dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
Redirect "/docs/" "http://new.example.com/docs/"</pre>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>For simple redirections to another server, the
+ <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code> or
+ <code class="directive"><a href="../mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> directives
+ are preferred, as they are simpler and more efficient.</p>
+ </dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<p>These rulesets will work either in your main server configuration
file, or in a <code>.htaccess</code> file placed in the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> of the server.</p>
- </dd>
- </dl>
+ </dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>If you have access to the server configuration, a
+ <code class="directive"><a href="../mod/mod_alias.html#redirect">Redirect</a></code> in a dedicated
+ <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
+ is the cleanest approach. Use the
+ <code class="directive"><a href="../mod/core.html#if"><If></a></code> directive
+ as a middle ground, and <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> only if you
+ are limited to <code>.htaccess</code>.</p>
+ </dd>
+
+</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
RewriteRule "^" "-" [PT]</pre>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>This is useful during migrations when content is being moved
+ between directories. For permanent setups, consider using
+ <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> or symbolic links
+ instead.</p>
+ </dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
</dd>
+<dt>Discussion:</dt>
+
+<dd>
+<p>The <code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code> directive
+is almost always the better choice for this use case. See the
+<a href="avoid.html#fallback-resource">When not to use mod_rewrite</a>
+document for a simpler one-line alternative.</p>
+</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<dt>Solutions:</dt>
<dd>
<p> Many of the solutions in this section will all use the same condition,
-which leaves the matched value in the %2 backreference. %1 is the beginining
+which leaves the matched value in the %2 backreference. %1 is the beginning
of the query string (up to the key of intererest), and %3 is the remainder. This
condition is a bit complex for flexibility and to avoid double '&&' in the
substitutions.</p>
</dd>
+<dt>Discussion:</dt>
+
+<dd>
+<p>See also the <a href="flags.html#flag_qsa">[QSA]</a> and
+<a href="flags.html#flag_qsd">[QSD]</a> flags, which control whether
+the original query string is appended to or discarded from the
+substitution.</p>
+</dd>
+
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
RewriteRule "^/~(<strong>([a-z])</strong>[a-z0-9]+)(.*)" "/home/<strong>$2</strong>/$1/public_html$3"</pre>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>This technique is primarily useful for large hosting
+ environments with thousands of users. For most sites,
+ <code class="module"><a href="../mod/mod_userdir.html">mod_userdir</a></code> handles tilde-based user URLs
+ without requiring <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+ </dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
content dynamically, and customizing it based on the time of day.</div>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>Serving dynamic content through your application is almost
+ always a better approach. Caching by browsers, proxies, and
+ <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> makes time-based rewriting unreliable
+ in practice.</p>
+ </dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
from the document directory, and they will then be regenerated the
next time they are requested.</p>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>Modern approaches such as <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>, CDN
+ caching layers, or application-level caching provide more robust
+ and controllable solutions for serving pre-generated static
+ content. The <code>-U</code> subrequest test used here also
+ carries a performance cost on every request.</p>
+ </dd>
</dl>
</div></div>
<p>These rulesets will work either in your main server configuration
file, or in a <code>.htaccess</code> file placed in the <directive
module="core">DocumentRoot</directive> of the server.</p>
+ </dd>
<dt>Discussion:</dt>
as a middle ground, and <module>mod_rewrite</module> only if you
are limited to <code>.htaccess</code>.</p>
</dd>
- </dl>
+
+</dl>
</section>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933068:1933676 (outdated) -->
+<!-- English Revision: 1933068:1933781 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
the use of the <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> directive,
and provides examples of each of the various <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code> types.</p>
- <div class="warning">Note that many of these examples won't work unchanged in your
-particular server configuration, so it's important that you understand
-them, rather than merely cutting and pasting the examples into your
-configuration.</div>
-
- </div>
+ </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#int">int: Internal Function</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#txt">txt: Plain text maps</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#dbd">dbd or fastdbd: SQL Query</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sharding">URL-based sharding across multiple backends</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#summary">Summary</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="htaccess.html">Per-directory rewrites (.htaccess)</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="introduction" id="introduction">Introduction</a> <a title="Permanent link" href="#introduction" class="permalink">¶</a></h2>
RewriteRule "^/u/([^/]+)/?(.*)" "http://${users-to-hosts:$1|server0}/u/$1/$2"</pre>
</dd>
+
+ <dt>Discussion:</dt>
+
+ <dd>
+ <p>For distributing requests across backend servers,
+ <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> provides a more robust and
+ configurable approach, with support for health checking, load
+ weighting, and session stickiness. The <code>txt:</code> map
+ approach shown here is simpler but lacks these features.</p>
+ </dd>
</dl>
<p>See the <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1932819:1933611 (outdated) -->
+<!-- English Revision: 1932819:1933728 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#InternalAPI">API Phases</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#InternalRuleset">Ruleset Processing</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="vhosts.html">Virtual hosts</a></li><li><a href="rewritemap.html">Using RewriteMap</a></li><li><a href="htaccess.html">Per-directory rewrites (.htaccess)</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="InternalAPI" id="InternalAPI">API Phases</a> <a title="Permanent link" href="#InternalAPI" class="permalink">¶</a></h2>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933438:1933655 (outdated) -->
+<!-- English Revision: 1933438:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">Diese Übersetzung ist möglicherweise
+ nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
+ die neuesten Änderungen.</div>
<p>Dieses Dokument ergänzt die <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<li><img alt="" src="../images/down.gif" /> <a href="#simple.rewrite">Dynamic
Virtual Hosts Using <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#xtra-conf">Using a Separate Virtual Host Configuration File</a></li>
-</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="access.html">Controlling access</a></li><li><a href="proxy.html">Proxying</a></li><li><a href="rewritemap.html">RewriteMap</a></li><li><a href="advanced.html">Advanced techniques</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>See also</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Module documentation</a></li><li><a href="intro.html">mod_rewrite introduction</a></li><li><a href="remapping.html">Redirection and remapping</a></li><li><a href="rewritemap.html">RewriteMap</a></li><li><a href="htaccess.html">Per-directory rewrites (.htaccess)</a></li><li><a href="avoid.html">When not to use mod_rewrite</a></li><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="per-hostname" id="per-hostname">Virtual Hosts For Arbitrary Hostnames</a> <a title="Permanent link" href="#per-hostname" class="permalink">¶</a></h2>
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">Esta traducción podría estar
+ obsoleta. Consulte la versión en inglés de la
+ documentación para comprobar si se han producido cambios
+ recientemente.</div>
<p>Este documento complementa la <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">この日本語訳はすでに古くなっている
+ 可能性があります。
+ 最近更新された内容を見るには英語版をご覧下さい。
+ </div>
<p>このドキュメントは <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù.
+ ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div>
<p>�� 문��� <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<a href="../tr/rewrite/vhosts.html" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
<p>Bu belge, <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<a href="../tr/rewrite/vhosts.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a> |
<a href="../zh-cn/rewrite/vhosts.html" title="Simplified Chinese"> zh-cn </a></p>
</div>
+<div class="outofdate">此翻译可能过期。要了解最近的更改,请阅读英文版。</div>
<p>本文档是 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<relpath>..</relpath>
<variants>
- <variant>de</variant>
+ <variant outdated="yes">de</variant>
<variant>en</variant>
- <variant>es</variant>
- <variant>fr</variant>
- <variant>ja</variant>
- <variant>ko</variant>
- <variant>tr</variant>
- <variant>zh-cn</variant>
+ <variant outdated="yes">es</variant>
+ <variant outdated="yes">fr</variant>
+ <variant outdated="yes">ja</variant>
+ <variant outdated="yes">ko</variant>
+ <variant outdated="yes">tr</variant>
+ <variant outdated="yes">zh-cn</variant>
</variants>
</metafile>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.zh-cn.xsl"?>
-<!-- English Revision: 1933071 -->
+<!-- English Revision: 1933071:1933718 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<p>The <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
directive need not have anything to do with the filesystem.
For example, the following example shows how to map a particular
-URL to an internal Apache HTTP Server handler provided by <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>.
-No file called <code>server-status</code> needs to exist in the
+URL to an internal handler provided by <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>.
+No file called <code>server-status</code> needs to exist on the
filesystem.</p>
-<pre class="prettyprint lang-config"><Location "/server-status">
+<pre class="prettyprint lang-config"># Map a URL to a built-in handler:
+<Location "/server-status">
SetHandler server-status
+</Location>
+
+# Map a URL path to a reverse proxy backend:
+<Location "/app">
+ ProxyPass "http://backend.example.com/"
+ ProxyPassReverse "http://backend.example.com/"
+</Location>
+
+# Deny access to a URL path regardless of what serves it:
+<Location "/private">
+ Require all denied
</Location></pre>
+<p>Because <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
+operates on URLs rather than filesystem paths, it is the appropriate
+container for proxy configuration and module-provided endpoints.</p>
+
<h3><a name="overlapping-webspace" id="overlapping-webspace">Overlapping Webspace</a></h3>
<p>In order to have two overlapping URLs one has to consider the order in which
but in the order they appear in the configuration files.</li>
<li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
(group 1 above) is processed in the order shortest directory
- component to longest. For example,
+ component to longest (regardless of the order in which they
+ appear in the configuration file). For example,
<code><Directory "/var/web/dir"></code> will be processed before
<code><Directory "/var/web/dir/subdir"></code>.</li>
<li>If multiple <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> sections apply
to the same directory they are processed in the configuration file
- order.</li>
+ order. The same applies when multiple
+ <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>, or
+ <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>
+ sections match the same resource.</li>
<li>Configurations included via the <code class="directive"><a href="./mod/core.html#include">Include</a></code> directive will be treated as if
they were inside the including file at the location of the
<code class="directive"><a href="./mod/core.html#include">Include</a></code> directive.</li>
<li>Sections inside <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> sections
are applied <em>after</em> the corresponding sections outside
the virtual host definition. This allows virtual hosts to
- override the main server configuration.</li>
+ override the main server configuration. Note that unlike the
+ other section types, only one
+ <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code>
+ is selected per request — directives from multiple matching
+ vhosts are never merged. See
+ <a href="vhosts/details.html">virtual host matching</a>
+ for details on how a vhost is selected.</li>
<li>When the request is served by <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>, the
<code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code>
container takes the place of the <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> container in the processing
used in <code>.htaccess</code>, the enclosed directives in a parent
directory will be merged <em>after</em> non-enclosed directives in a
subdirectory.</li>
+ <li><div class="warning"><h3>Caution: <Limit> inside
+ <Location> can silently grant access</h3>
+ <p>Using <code class="directive"><a href="./mod/core.html#limit"><Limit></a></code>
+ inside a <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
+ section to restrict authorization to specific HTTP methods can have
+ unexpected results. For methods not listed in the
+ <code class="directive"><a href="./mod/core.html#limit"><Limit></a></code>, the
+ enclosing <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
+ section is treated as having no authorization requirements — which
+ effectively grants access and overrides any
+ <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
+ restrictions that would otherwise apply. Use
+ <code class="directive"><a href="./mod/core.html#limitexcept"><LimitExcept></a></code>
+ instead, or apply authorization without method restrictions.</p>
+ </div></li>
</ul>
<div class="note"><h3>Technical Note</h3>
<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/sections.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Les directives des <a href="configuring.html">fichiers de configuration</a> peuvent s'appliquer
au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes,
ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
-<!-- English Revision: 1905716 -->
+<!-- English Revision: 1905716:1933722 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1905716 (outdated) -->
+<!-- English Revision: 420990:1933722 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 105989:1905716 (outdated) -->
+<!-- English Revision: 105989:1933722 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 1300910:1905716 (outdated) -->
+<!-- English Revision: 1300910:1933722 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
for configuring the certificate chain.</p>
+<h3>Tuning OCSP Stapling for production</h3>
+
+<p>The default OCSP stapling settings are conservative and may
+result in excessive queries to OCSP responders, timeouts, or
+error responses being cached for too long. The following settings
+are recommended for production use:</p>
+
+ <pre class="prettyprint lang-config"># Do not pass OCSP responder errors to clients:
+SSLStaplingReturnResponderErrors off
+
+# Reduce the OCSP responder timeout from the default 10s:
+SSLStaplingResponderTimeout 4
+
+# Cache valid OCSP responses for 48 hours (default: 1 hour).
+# This reduces load on OCSP responders and avoids transient
+# errors caused by frequent queries:
+SSLStaplingStandardCacheTimeout 172800
+
+# Retry failed OCSP queries after 60 seconds instead of the
+# default 600s:
+SSLStaplingErrorCacheTimeout 60</pre>
+
+
+<p>These settings address common issues where default OCSP stapling
+produces errors under load — particularly when OCSP responders are
+slow or unreliable. See the individual directive documentation for
+<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code>,
+<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></code>,
+<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></code>, and
+<code class="directive"><a href="../mod/mod_ssl.html#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></code>
+for details.</p>
+
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="accesscontrol" id="accesscontrol">Client Authentication and Access Control</a> <a title="Permanent link" href="#accesscontrol" class="permalink">¶</a></h2>
<p>The <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> method is generally required when
the certificates are completely arbitrary, or when their DNs have
- no common fields (usually the organisation, etc.). In this case,
+ no common fields (usually the organization, etc.). In this case,
you should establish a password database containing <em>all</em>
clients allowed, as follows:</p>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1757280:1933449 (outdated) -->
+<!-- English Revision: 1757280:1933739 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
applicable to a general-purpose web server.</p>
<p> Name-based virtual hosting builds off of the IP-based virtual host
- selection algorithm, meaning that comparisons of ther requested hostname
+ selection algorithm, meaning that comparisons of the requested hostname
to configured hostnames occurs only within the set of virtual hosts that
share the most specific IP:PORT based match at the network layer.</p>
<a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+ anglaise pour les changements récents.</div>
<p>Ce document décrit quand et comment utiliser des serveurs
virtuels par nom.</p>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 420990:1884608 (outdated) -->
+<!-- English Revision: 420990:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1884608 -->
+<!-- English Revision: 1884608:1933739 (outdated) -->
<!-- French translation by alain B, review by Vincent Deffontaines
updated by Lucien GENTIS -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 420990:1884608 (outdated) -->
+<!-- English Revision: 420990:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 420990:1884608 (outdated) -->
+<!-- English Revision: 420990:1933739 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<variants>
<variant outdated="yes">de</variant>
<variant>en</variant>
- <variant>fr</variant>
+ <variant outdated="yes">fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1301398:1884608 (outdated) -->
+<!-- English Revision: 1301398:1933739 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>