github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/mod/mod_headers.html.en (about) 1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head> 4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> 5 <!-- 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 This file is generated from xml source: DO NOT EDIT 8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9 --> 10 <title>mod_headers - Apache HTTP Server Version 2.2</title> 11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 13 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> 14 <script src="../style/scripts/prettify.min.js" type="text/javascript"> 15 </script> 16 17 <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/mod/mod_headers.html" rel="canonical" /></head> 18 <body> 19 <div id="page-header"> 20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> 21 <p class="apache">Apache HTTP Server Version 2.2</p> 22 <img alt="" src="../images/feather.gif" /></div> 23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> 24 <div id="path"> 25 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">Modules</a></div> 26 <div id="page-content"> 27 <div class="retired"><h4>Please note</h4> 28 <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p> 29 <p>You may follow <a href="http://httpd.apache.org/docs/current/mod/mod_headers.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Apache Module mod_headers</h1> 30 <div class="toplang"> 31 <p><span>Available Languages: </span><a href="../en/mod/mod_headers.html" title="English"> en </a> | 32 <a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 33 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> 34 </div> 35 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Customization of HTTP request and response 36 headers</td></tr> 37 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr> 38 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>headers_module</td></tr> 39 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_headers.c</td></tr></table> 40 <h3>Summary</h3> 41 42 <p>This module provides directives to control and modify HTTP 43 request and response headers. Headers can be merged, replaced 44 or removed.</p> 45 </div> 46 <div id="quickview"><h3>Topics</h3> 47 <ul id="topics"> 48 <li><img alt="" src="../images/down.gif" /> <a href="#order">Order of Processing</a></li> 49 <li><img alt="" src="../images/down.gif" /> <a href="#early">Early and Late Processing</a></li> 50 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li> 51 </ul><h3 class="directives">Directives</h3> 52 <ul id="toc"> 53 <li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li> 54 <li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li> 55 </ul> 56 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> 57 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 58 <div class="section"> 59 <h2><a name="order" id="order">Order of Processing</a></h2> 60 61 <p>The directives provided by <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can 62 occur almost anywhere within the server configuration, and can be 63 limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p> 64 65 <p>Order of processing is important and is affected both by the 66 order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These 67 two directives have a different effect if reversed:</p> 68 69 <div class="example"><p><code> 70 RequestHeader append MirrorID "mirror 12"<br /> 71 RequestHeader unset MirrorID 72 </code></p></div> 73 74 <p>This way round, the <code>MirrorID</code> header is not set. If 75 reversed, the MirrorID header is set to "mirror 12".</p> 76 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 77 <div class="section"> 78 <h2><a name="early" id="early">Early and Late Processing</a></h2> 79 <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can be applied either early or late 80 in the request. The normal mode is late, when <em>Request</em> Headers are 81 set immediately before running the content generator and <em>Response</em> 82 Headers just as the response is sent down the wire. Always use 83 Late mode in an operational server.</p> 84 85 <p>Early mode is designed as a test/debugging aid for developers. 86 Directives defined using the <code>early</code> keyword are set 87 right at the beginning of processing the request. This means 88 they can be used to simulate different requests and set up test 89 cases, but it also means that headers may be changed at any time 90 by other modules before generating a Response.</p> 91 92 <p>Because early directives are processed before the request path's 93 configuration is traversed, early headers can only be set in a 94 main server or virtual host context. Early directives cannot depend 95 on a request path, so they will fail in contexts such as 96 <code><Directory></code> or <code><Location></code>.</p> 97 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 98 <div class="section"> 99 <h2><a name="examples" id="examples">Examples</a></h2> 100 101 <ol> 102 <li> 103 Copy all request headers that begin with "TS" to the 104 response headers: 105 106 <div class="example"><p><code> 107 Header echo ^TS 108 </code></p></div> 109 </li> 110 111 <li> 112 Add a header, <code>MyHeader</code>, to the response including a 113 timestamp for when the request was received and how long it 114 took to begin serving the request. This header can be used by 115 the client to intuit load on the server or in isolating 116 bottlenecks between the client and the server. 117 118 <div class="example"><p><code> 119 Header set MyHeader "%D %t" 120 </code></p></div> 121 122 <p>results in this header being added to the response:</p> 123 124 <div class="example"><p><code> 125 MyHeader: D=3775428 t=991424704447256 126 </code></p></div> 127 </li> 128 129 <li> 130 Say hello to Joe 131 132 <div class="example"><p><code> 133 Header set MyHeader "Hello Joe. It took %D microseconds \<br /> 134 for Apache to serve this request." 135 </code></p></div> 136 137 <p>results in this header being added to the response:</p> 138 139 <div class="example"><p><code> 140 MyHeader: Hello Joe. It took D=3775428 microseconds for Apache 141 to serve this request. 142 </code></p></div> 143 </li> 144 145 <li> 146 Conditionally send <code>MyHeader</code> on the response if and 147 only if header <code>MyRequestHeader</code> is present on the request. 148 This is useful for constructing headers in response to some client 149 stimulus. Note that this example requires the services of the 150 <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> module. 151 152 <div class="example"><p><code> 153 SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader<br /> 154 Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader 155 </code></p></div> 156 157 <p>If the header <code>MyRequestHeader: myvalue</code> is present on 158 the HTTP request, the response will contain the following header:</p> 159 160 <div class="example"><p><code> 161 MyHeader: D=3775428 t=991424704447256 mytext 162 </code></p></div> 163 </li> 164 165 <li> 166 Enable DAV to work with Apache running HTTP through SSL hardware 167 (<a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">problem 168 description</a>) by replacing <var>https:</var> with 169 <var>http:</var> in the <var>Destination</var> header: 170 171 <div class="example"><p><code> 172 RequestHeader edit Destination ^https: http: early 173 </code></p></div> 174 </li> 175 176 <li> 177 Set the same header value under multiple nonexclusive conditions, 178 but do not duplicate the value in the final header. 179 If all of the following conditions applied to a request (i.e., 180 if the <code>CGI</code>, <code>NO_CACHE</code> and 181 <code>NO_STORE</code> environment variables all existed for the 182 request): 183 184 <div class="example"><p><code> 185 Header merge Cache-Control no-cache env=CGI<br /> 186 Header merge Cache-Control no-cache env=NO_CACHE<br /> 187 Header merge Cache-Control no-store env=NO_STORE 188 </code></p></div> 189 190 <p>then the response would contain the following header:</p> 191 192 <div class="example"><p><code> 193 Cache-Control: no-cache, no-store 194 </code></p></div> 195 196 <p>If <code>append</code> was used instead of <code>merge</code>, 197 then the response would contain the following header:</p> 198 199 <div class="example"><p><code> 200 Cache-Control: no-cache, no-cache, no-store 201 </code></p></div> 202 </li> 203 </ol> 204 </div> 205 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 206 <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">Directive</a></h2> 207 <table class="directive"> 208 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure HTTP response headers</td></tr> 209 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Header [<var>condition</var>] set|append|merge|add|unset|echo|edit 210 <var>header</var> [<var>value</var>] [<var>replacement</var>] 211 [early|env=[!]<var>variable</var>]</code></td></tr> 212 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> 213 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> 214 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> 215 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr> 216 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The <code>merge</code> argument is available in version 217 2.2.9 and later. The <code>edit</code> argument is available in version 218 2.2.4 and later.</td></tr> 219 </table> 220 <p>This directive can replace, merge or remove HTTP response 221 headers. The header is modified just after the content handler 222 and output filters are run, allowing outgoing headers to be 223 modified.</p> 224 225 <p> The optional <var>condition</var> argument determines which internal 226 table of responses headers this directive will operate against. Other 227 components of the server may have stored their response headers in either 228 the table that corresponds to <code>onsuccess</code> or the table that 229 corresponds to <code>always</code>. "Always" in this context refers to 230 whether headers you add will be sent during both a successful and unsucessful 231 response, but if your action is a function of an existing header, you 232 will have to read on for further complications.</p> 233 234 <p> The default value of <code>onsuccess</code> may need to be changed to 235 <code>always</code> under the circumstances similar to those listed below. 236 Note also that repeating this directive with both conditions makes sense in 237 some scenarios because <code>always</code> is not a superset of 238 <code>onsuccess</code> with respect to existing headers:</p> 239 240 <ul> 241 <li> You're adding a header to a non-success (non-2xx) response, such 242 as a redirect, in which case only the table corresponding to 243 <code>always</code> is used in the ultimate response.</li> 244 <li> You're modifying or removing a header generated by a CGI script, 245 in which case the CGI scripts are in the table corresponding to 246 <code>always</code> and not in the default table.</li> 247 <li> You're modifying or removing a header generated by some piece of 248 the server but that header is not being found by the default 249 <code>onsuccess</code> condition.</li> 250 </ul> 251 252 <p>The action it performs is determined by the first 253 argument (second argument if a <var>condition</var> is specified). 254 This can be one of the following values:</p> 255 256 <dl> 257 <dt><code>set</code></dt> 258 <dd>The response header is set, replacing any previous header 259 with this name. The <var>value</var> may be a format string.</dd> 260 261 <dt><code>append</code></dt> 262 <dd>The response header is appended to any existing header of 263 the same name. When a new value is merged onto an existing 264 header it is separated from the existing header with a comma. 265 This is the HTTP standard way of giving a header multiple values.</dd> 266 267 <dt><code>merge</code></dt> 268 <dd>The response header is appended to any existing header of 269 the same name, unless the value to be appended already appears in the 270 header's comma-delimited list of values. When a new value is merged onto 271 an existing header it is separated from the existing header with a comma. 272 This is the HTTP standard way of giving a header multiple values. 273 Values are compared in a case sensitive manner, and after 274 all format specifiers have been processed. Values in double quotes 275 are considered different from otherwise identical unquoted values. 276 <em>Available in version 2.2.9 and later.</em></dd> 277 278 <dt><code>add</code></dt> 279 <dd>The response header is added to the existing set of headers, 280 even if this header already exists. This can result in two 281 (or more) headers having the same name. This can lead to 282 unforeseen consequences, and in general <code>set</code>, 283 <code>append</code> or <code>merge</code> should be used instead.</dd> 284 285 <dt><code>unset</code></dt> 286 <dd>The response header of this name is removed, if it exists. 287 If there are multiple headers of the same name, all will be 288 removed. <var>value</var> must be omitted.</dd> 289 290 <dt><code>echo</code></dt> 291 <dd>Request headers with this name are echoed back in the 292 response headers. <var>header</var> may be a 293 <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>. 294 <var>value</var> must be omitted.</dd> 295 296 <dt><code>edit</code></dt> 297 <dd>If this response header exists, its value is transformed 298 according to a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a> 299 search-and-replace. The <var>value</var> argument is 300 a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>, and 301 the <var>replacement</var> is a replacement string, which may 302 contain backreferences. <em>Available in version 2.2.4 and 303 later.</em></dd> 304 </dl> 305 306 <p>This argument is followed by a <var>header</var> name, which 307 can include the final colon, but it is not required. Case is 308 ignored for <code>set</code>, <code>append</code>, <code>merge</code>, 309 <code>add</code>, <code>unset</code> and <code>edit</code>. 310 The <var>header</var> name for <code>echo</code> 311 is case sensitive and may be a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular 312 expression</a>.</p> 313 314 <p>For <code>set</code>, <code>append</code>, <code>merge</code> and 315 <code>add</code> a <var>value</var> is specified as the next argument. 316 If <var>value</var> 317 contains spaces, it should be surrounded by double quotes. 318 <var>value</var> may be a character string, a string containing format 319 specifiers or a combination of both. The following format specifiers 320 are supported in <var>value</var>:</p> 321 322 <table class="bordered"><tr class="header"><th>Format</th><th>Description</th></tr> 323 <tr><td><code>%%</code></td> 324 <td>The percent sign</td></tr> 325 <tr class="odd"><td><code>%t</code></td> 326 <td>The time the request was received in Universal Coordinated Time 327 since the epoch (Jan. 1, 1970) measured in microseconds. The value 328 is preceded by <code>t=</code>.</td></tr> 329 <tr><td><code>%D</code></td> 330 <td>The time from when the request was received to the time the 331 headers are sent on the wire. This is a measure of the duration 332 of the request. The value is preceded by <code>D=</code>. 333 The value is measured in microseconds.</td></tr> 334 <tr class="odd"><td><code>%{FOOBAR}e</code></td> 335 <td>The contents of the <a href="../env.html">environment 336 variable</a> <code>FOOBAR</code>.</td></tr> 337 <tr><td><code>%{FOOBAR}s</code></td> 338 <td>The contents of the <a href="mod_ssl.html#envvars">SSL environment 339 variable</a> <code>FOOBAR</code>, if <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is enabled.</td></tr> 340 </table> 341 342 <div class="note"><h3>Note</h3> 343 <p>The <code>%s</code> format specifier is only available in 344 Apache 2.1 and later; it can be used instead of <code>%e</code> 345 to avoid the overhead of enabling <code>SSLOptions 346 +StdEnvVars</code>. If <code>SSLOptions +StdEnvVars</code> must 347 be enabled anyway for some other reason, <code>%e</code> will be 348 more efficient than <code>%s</code>.</p> 349 </div> 350 351 <p>For <code>edit</code> there is both a <var>value</var> argument 352 which is a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>, 353 and an additional <var>replacement</var> string.</p> 354 355 <p>The <code class="directive">Header</code> directive may be followed by an 356 an additional argument, which may be used to specify conditions under 357 which the action will be taken, or may be the keyword <code>early</code> 358 to specify <a href="#early">early processing</a>. If the 359 <a href="../env.html">environment variable</a> specified in the 360 <code>env=<var>...</var></code> argument exists (or if the environment 361 variable does not exist and <code>env=!<var>...</var></code> is specified) 362 then the action specified by the <code class="directive">Header</code> directive 363 will take effect. Otherwise, the directive will have no effect 364 on the request.</p> 365 366 <p>Except in <a href="#early">early</a> mode, the 367 <code class="directive">Header</code> directives are processed just 368 before the response is sent to the network. This means that it is 369 possible to set and/or override most headers, except for some headers 370 added by the HTTP header filter. Prior to 2.2.12, it was not possible 371 to change the Content-Type header with this directive.</p> 372 373 </div> 374 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 375 <div class="directive-section"><h2><a name="RequestHeader" id="RequestHeader">RequestHeader</a> <a name="requestheader" id="requestheader">Directive</a></h2> 376 <table class="directive"> 377 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure HTTP request headers</td></tr> 378 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RequestHeader set|append|merge|add|unset|edit <var>header</var> 379 [<var>value</var>] [<var>replacement</var>] [early|env=[!]<var>variable</var>]</code></td></tr> 380 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> 381 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> 382 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr> 383 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_headers</td></tr> 384 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The <code>merge</code> argument is available in version 385 2.2.9 and later. The <code>edit</code> argument is available in version 386 2.2.4 and later.</td></tr> 387 </table> 388 <p>This directive can replace, merge, change or remove HTTP request 389 headers. The header is modified just before the content handler 390 is run, allowing incoming headers to be modified. The action it 391 performs is determined by the first argument. This can be one 392 of the following values:</p> 393 394 <dl> 395 <dt><code>set</code></dt> 396 <dd>The request header is set, replacing any previous header 397 with this name</dd> 398 399 <dt><code>append</code></dt> 400 <dd>The request header is appended to any existing header of the 401 same name. When a new value is merged onto an existing header 402 it is separated from the existing header with a comma. This 403 is the HTTP standard way of giving a header multiple 404 values.</dd> 405 406 <dt><code>merge</code></dt> 407 <dd>The request header is appended to any existing header of 408 the same name, unless the value to be appended already appears in the 409 existing header's comma-delimited list of values. When a new value is 410 merged onto an existing header it is separated from the existing header 411 with a comma. This is the HTTP standard way of giving a header multiple 412 values. Values are compared in a case sensitive manner, and after 413 all format specifiers have been processed. Values in double quotes 414 are considered different from otherwise identical unquoted values. 415 <em>Available in version 2.2.9 and later.</em></dd> 416 417 <dt><code>add</code></dt> 418 <dd>The request header is added to the existing set of headers, 419 even if this header already exists. This can result in two 420 (or more) headers having the same name. This can lead to 421 unforeseen consequences, and in general <code>set</code>, 422 <code>append</code> or <code>merge</code> should be used instead.</dd> 423 424 <dt><code>unset</code></dt> 425 <dd>The request header of this name is removed, if it exists. If 426 there are multiple headers of the same name, all will be removed. 427 <var>value</var> must be omitted.</dd> 428 429 <dt><code>edit</code></dt> 430 <dd>If this request header exists, its value is transformed 431 according to a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a> 432 search-and-replace. The <var>value</var> argument is 433 a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>, and 434 the <var>replacement</var> is a replacement string, which may 435 contain backreferences. <em>Available in version 2.2.4 and 436 later</em>.</dd> 437 </dl> 438 439 <p>This argument is followed by a header name, which can 440 include the final colon, but it is not required. Case is 441 ignored. For <code>set</code>, <code>append</code>, <code>merge</code> and 442 <code>add</code> a <var>value</var> is given as the third argument. If a 443 <var>value</var> contains spaces, it should be surrounded by double 444 quotes. For <code>unset</code>, no <var>value</var> should be given. 445 <var>value</var> may be a character string, a string containing format 446 specifiers or a combination of both. The supported format specifiers 447 are the same as for the <code class="directive"><a href="#header">Header</a></code>, 448 please have a look there for details. For <code>edit</code> both 449 a <var>value</var> and a <var>replacement</var> are required, and are 450 a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a> and a 451 replacement string respectively.</p> 452 453 <p>The <code class="directive">RequestHeader</code> directive may be followed by 454 an additional argument, which may be used to specify conditions under 455 which the action will be taken, or may be the keyword <code>early</code> 456 to specify <a href="#early">early processing</a>. If the 457 <a href="../env.html">environment 458 variable</a> specified in the <code>env=<var>...</var></code> argument 459 exists (or if the environment variable does not exist and 460 <code>env=!<var>...</var></code> is specified) then the action specified 461 by the <code class="directive">RequestHeader</code> directive will take effect. 462 Otherwise, the directive will have no effect on the request.</p> 463 464 <p>Except in <a href="#early">early</a> mode, the 465 <code class="directive">RequestHeader</code> directive is processed 466 just before the request is run by its handler in the fixup phase. 467 This should allow headers generated by the browser, or by Apache 468 input filters to be overridden or modified.</p> 469 470 </div> 471 </div> 472 <div class="bottomlang"> 473 <p><span>Available Languages: </span><a href="../en/mod/mod_headers.html" title="English"> en </a> | 474 <a href="../ja/mod/mod_headers.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 475 <a href="../ko/mod/mod_headers.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> 476 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 477 <script type="text/javascript"><!--//--><![CDATA[//><!-- 478 var comments_shortname = 'httpd'; 479 var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_headers.html'; 480 (function(w, d) { 481 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 482 d.write('<div id="comments_thread"><\/div>'); 483 var s = d.createElement('script'); 484 s.type = 'text/javascript'; 485 s.async = true; 486 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 487 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 488 } 489 else { 490 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 491 } 492 })(window, document); 493 //--><!]]></script></div><div id="footer"> 494 <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 495 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 496 if (typeof(prettyPrint) !== 'undefined') { 497 prettyPrint(); 498 } 499 //--><!]]></script> 500 </body></html>