github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/howto/auth.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>Authentication and Authorization - 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/howto/auth.html" rel="canonical" /></head> 18 <body id="manual-page"><div id="page-header"> 19 <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> 20 <p class="apache">Apache HTTP Server Version 2.2</p> 21 <img alt="" src="../images/feather.gif" /></div> 22 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> 23 <div id="path"> 24 <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="./">How-To / Tutorials</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> 25 <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> 26 <p>You may follow <a href="http://httpd.apache.org/docs/current/howto/auth.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Authentication and Authorization</h1> 27 <div class="toplang"> 28 <p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English"> en </a> | 29 <a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 30 <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 31 <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 32 <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> 33 </div> 34 35 <p>Authentication is any process by which you verify that 36 someone is who they claim they are. Authorization is any 37 process by which someone is allowed to be where they want to 38 go, or to have information that they want to have.</p> 39 40 <p>For general access control, see the <a href="access.html">Access 41 Control How-To</a>.</p> 42 </div> 43 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Related Modules and Directives</a></li> 44 <li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li> 45 <li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">The Prerequisites</a></li> 46 <li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Getting it working</a></li> 47 <li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li> 48 <li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Letting more than one 49 person in</a></li> 50 <li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Possible problems</a></li> 51 <li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Alternate password storage</a></li> 52 <li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">More information</a></li> 53 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> 54 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 55 <div class="section"> 56 <h2><a name="related" id="related">Related Modules and Directives</a></h2> 57 58 <p>There are three types of modules involved in the authentication and 59 authorization process. You will usually need to choose at least one 60 module from each group.</p> 61 62 <ul> 63 <li>Authentication type (see the 64 <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> directive) 65 <ul> 66 <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> 67 <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> 68 </ul> 69 </li> 70 <li>Authentication provider (see the 71 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> and 72 <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directives) 73 74 <ul> 75 <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> 76 <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> 77 <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> 78 <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> 79 <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> 80 </ul> 81 </li> 82 <li>Authorization (see the 83 <code class="directive"><a href="../mod/core.html#require">Require</a></code> directive) 84 <ul> 85 <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> 86 <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> 87 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> 88 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> 89 <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> 90 <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> 91 </ul> 92 </li> 93 </ul> 94 95 <p>The module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> is both an 96 authentication and authorization provider. The module 97 <code class="module"><a href="../mod/mod_authn_alias.html">mod_authn_alias</a></code> is not an authentication provider 98 in itself, but allows other authentication providers to be 99 configured in a flexible manner.</p> 100 101 <p>The module <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> provides authorization 102 and access control based on hostname, IP address or characteristics 103 of the request, but is not part of the authentication provider 104 system.</p> 105 106 <p>You probably also want to take a look at the <a href="access.html">Access Control</a> howto, which discusses the 107 various ways to control access to your server.</p> 108 109 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 110 <div class="section"> 111 <h2><a name="introduction" id="introduction">Introduction</a></h2> 112 <p>If you have information on your web site that is sensitive 113 or intended for only a small group of people, the techniques in 114 this article will help you make sure that the people that see 115 those pages are the people that you wanted to see them.</p> 116 117 <p>This article covers the "standard" way of protecting parts 118 of your web site that most of you are going to use.</p> 119 120 <div class="note"><h3>Note:</h3> 121 <p>If your data really needs to be secure, consider using 122 <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> in addition to any authentication.</p> 123 </div> 124 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 125 <div class="section"> 126 <h2><a name="theprerequisites" id="theprerequisites">The Prerequisites</a></h2> 127 <p>The directives discussed in this article will need to go 128 either in your main server configuration file (typically in a 129 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> section), or 130 in per-directory configuration files (<code>.htaccess</code> files).</p> 131 132 <p>If you plan to use <code>.htaccess</code> files, you will 133 need to have a server configuration that permits putting 134 authentication directives in these files. This is done with the 135 <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive, which 136 specifies which directives, if any, may be put in per-directory 137 configuration files.</p> 138 139 <p>Since we're talking here about authentication, you will need 140 an <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive like the 141 following:</p> 142 143 <div class="example"><p><code> 144 AllowOverride AuthConfig 145 </code></p></div> 146 147 <p>Or, if you are just going to put the directives directly in 148 your main server configuration file, you will of course need to 149 have write permission to that file.</p> 150 151 <p>And you'll need to know a little bit about the directory 152 structure of your server, in order to know where some files are 153 kept. This should not be terribly difficult, and I'll try to 154 make this clear when we come to that point.</p> 155 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 156 <div class="section"> 157 <h2><a name="gettingitworking" id="gettingitworking">Getting it working</a></h2> 158 <p>Here's the basics of password protecting a directory on your 159 server.</p> 160 161 <p>First, you need to create a password file. Exactly how you do 162 this will vary depending on what authentication provider you have 163 chosen. More on that later. To start with, we'll use a text password 164 file.</p> 165 166 <p>This file should be 167 placed somewhere not accessible from the web. This is so that 168 folks cannot download the password file. For example, if your 169 documents are served out of <code>/usr/local/apache/htdocs</code> you 170 might want to put the password file(s) in 171 <code>/usr/local/apache/passwd</code>.</p> 172 173 <p>To create the file, use the <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> utility that 174 came with Apache. This will be located in the <code>bin</code> directory 175 of wherever you installed Apache. If you have installed Apache from 176 a third-party package, it may be in your execution path.</p> 177 178 <p>To create the file, type:</p> 179 180 <div class="example"><p><code> 181 htpasswd -c /usr/local/apache/passwd/passwords rbowen 182 </code></p></div> 183 184 <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> will ask you for the password, and 185 then ask you to type it again to confirm it:</p> 186 187 <div class="example"><p><code> 188 # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> 189 New password: mypassword<br /> 190 Re-type new password: mypassword<br /> 191 Adding password for user rbowen 192 </code></p></div> 193 194 <p>If <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> is not in your path, of course 195 you'll have to type the full path to the file to get it to run. 196 With a default installation, it's located at 197 <code>/usr/local/apache2/bin/htpasswd</code></p> 198 199 <p>Next, you'll need to configure the server to request a 200 password and tell the server which users are allowed access. 201 You can do this either by editing the <code>httpd.conf</code> 202 file or using an <code>.htaccess</code> file. For example, if 203 you wish to protect the directory 204 <code>/usr/local/apache/htdocs/secret</code>, you can use the 205 following directives, either placed in the file 206 <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or 207 placed in <code>httpd.conf</code> inside a <Directory 208 /usr/local/apache/apache/htdocs/secret> section.</p> 209 210 <div class="example"><p><code> 211 AuthType Basic<br /> 212 AuthName "Restricted Files"<br /> 213 # (Following line optional)<br /> 214 AuthBasicProvider file<br /> 215 AuthUserFile /usr/local/apache/passwd/passwords<br /> 216 Require user rbowen 217 </code></p></div> 218 219 <p>Let's examine each of those directives individually. The <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> directive selects 220 that method that is used to authenticate the user. The most 221 common method is <code>Basic</code>, and this is the method 222 implemented by <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. It is important to be aware, 223 however, that Basic authentication sends the password from the client to 224 the server unencrypted. This method should therefore not be used for 225 highly sensitive data, unless accompanied by <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. 226 Apache supports one other authentication method: 227 <code>AuthType Digest</code>. This method is implemented by <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> and was intended to be more secure. This is no 228 longer the case and the connection should be encrypted with <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> instead.</p> 229 230 <p>The <code class="directive"><a href="../mod/core.html#authname">AuthName</a></code> directive sets 231 the <dfn>Realm</dfn> to be used in the authentication. The realm serves 232 two major functions. First, the client often presents this information to 233 the user as part of the password dialog box. Second, it is used by the 234 client to determine what password to send for a given authenticated 235 area.</p> 236 237 <p>So, for example, once a client has authenticated in the 238 <code>"Restricted Files"</code> area, it will automatically 239 retry the same password for any area on the same server that is 240 marked with the <code>"Restricted Files"</code> Realm. 241 Therefore, you can prevent a user from being prompted more than 242 once for a password by letting multiple restricted areas share 243 the same realm. Of course, for security reasons, the client 244 will always need to ask again for the password whenever the 245 hostname of the server changes.</p> 246 247 <p>The <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> is, 248 in this case, optional, since <code>file</code> is the default value 249 for this directive. You'll need to use this directive if you are 250 choosing a different source for authentication, such as 251 <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> or <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p> 252 253 <p>The <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> 254 directive sets the path to the password file that we just 255 created with <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. If you have a large number 256 of users, it can be quite slow to search through a plain text 257 file to authenticate the user on each request. Apache also has 258 the ability to store user information in fast database files. 259 The <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> module provides the <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code> directive. These 260 files can be created and manipulated with the <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> program. Many 261 other types of authentication options are available from third 262 party modules in the <a href="http://modules.apache.org/">Apache Modules 263 Database</a>.</p> 264 265 <p>Finally, the <code class="directive"><a href="../mod/core.html#require">Require</a></code> 266 directive provides the authorization part of the process by 267 setting the user that is allowed to access this region of the 268 server. In the next section, we discuss various ways to use the 269 <code class="directive"><a href="../mod/core.html#require">Require</a></code> directive.</p> 270 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 271 <div class="section"> 272 <h2><a name="satisfy" id="satisfy">Satisfy</a></h2> 273 274 <p>The <code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code> directive can be used to specify 275 that several criteria may be considered when trying to decide if a particular user 276 will be granted admission. Satisfy can take as an argument one of two options - <code>all</code> 277 or <code>any</code>. By default, it is assumed that the value is <code>all</code>. This means that if several 278 criteria are specified, then all of them must be met in order for someone to get in. 279 However, if set to <code>any</code>, then several criteria may be specified, but if 280 the user satisfies any of these, then they will be granted entrance.</p> 281 282 <p>An example of this is using access control to assure that, although a resource 283 is password protected from outside your network, all hosts inside the network 284 will be given unauthenticated access to the resource. This would be accomplished 285 by using the Satisfy directive, as shown below.</p> 286 287 <div class="example"><p><code> 288 <Directory /usr/local/apache/htdocs/sekrit><br /> 289 <span class="indent"> 290 AuthType Basic<br /> 291 AuthName intranet<br /> 292 AuthUserFile /www/passwd/users<br /> 293 AuthGroupFile /www/passwd/groups<br /> 294 Require group customers<br /> 295 Order allow,deny<br /> 296 Allow from internal.com<br /> 297 Satisfy any<br /> 298 </span> 299 </Directory> 300 </code></p></div> 301 302 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 303 <div class="section"> 304 <h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Letting more than one 305 person in</a></h2> 306 <p>The directives above only let one person (specifically 307 someone with a username of <code>rbowen</code>) into the 308 directory. In most cases, you'll want to let more than one 309 person in. This is where the <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> comes in.</p> 310 311 <p>If you want to let more than one person in, you'll need to 312 create a group file that associates group names with a list of 313 users in that group. The format of this file is pretty simple, 314 and you can create it with your favorite editor. The contents 315 of the file will look like this:</p> 316 317 <div class="example"><p><code> 318 GroupName: rbowen dpitts sungo rshersey 319 </code></p></div> 320 321 <p>That's just a list of the members of the group in a long 322 line separated by spaces.</p> 323 324 <p>To add a user to your already existing password file, 325 type:</p> 326 327 <div class="example"><p><code> 328 htpasswd /usr/local/apache/passwd/passwords dpitts 329 </code></p></div> 330 331 <p>You'll get the same response as before, but it will be 332 appended to the existing file, rather than creating a new file. 333 (It's the <code>-c</code> that makes it create a new password 334 file).</p> 335 336 <p>Now, you need to modify your <code>.htaccess</code> file or 337 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> 338 block to look like the following:</p> 339 340 <div class="example"><p><code> 341 AuthType Basic<br /> 342 AuthName "By Invitation Only"<br /> 343 # Optional line:<br /> 344 AuthBasicProvider file<br /> 345 AuthUserFile /usr/local/apache/passwd/passwords<br /> 346 AuthGroupFile /usr/local/apache/passwd/groups<br /> 347 Require group GroupName 348 </code></p></div> 349 350 <p>Now, anyone that is listed in the group <code>GroupName</code>, 351 and has an entry in the <code>password</code> file, will be let in, if 352 they type the correct password.</p> 353 354 <p>There's another way to let multiple users in that is less 355 specific. Rather than creating a group file, you can just use 356 the following directive:</p> 357 358 <div class="example"><p><code> 359 Require valid-user 360 </code></p></div> 361 362 <p>Using that rather than the <code>Require user rbowen</code> 363 line will allow anyone in that is listed in the password file, 364 and who correctly enters their password.</p> 365 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 366 <div class="section"> 367 <h2><a name="possibleproblems" id="possibleproblems">Possible problems</a></h2> 368 <p>Because of the way that Basic authentication is specified, 369 your username and password must be verified every time you 370 request a document from the server. This is even if you're 371 reloading the same page, and for every image on the page (if 372 they come from a protected directory). As you can imagine, this 373 slows things down a little. The amount that it slows things 374 down is proportional to the size of the password file, because 375 it has to open up that file, and go down the list of users 376 until it gets to your name. And it has to do this every time a 377 page is loaded.</p> 378 379 <p>A consequence of this is that there's a practical limit to 380 how many users you can put in one password file. This limit 381 will vary depending on the performance of your particular 382 server machine, but you can expect to see slowdowns once you 383 get above a few hundred entries, and may wish to consider a 384 different authentication method at that time.</p> 385 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 386 <div class="section"> 387 <h2><a name="dbmdbd" id="dbmdbd">Alternate password storage</a></h2> 388 389 <p>Because storing passwords in plain text files has the above 390 problems, you may wish to store your passwords somewhere else, such 391 as in a database.</p> 392 393 <p><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> and <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> are two 394 modules which make this possible. Rather than selecting <code><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> file</code>, instead 395 you can choose <code>dbm</code> or <code>dbd</code> as your storage 396 format.</p> 397 398 <p>To select a dbd file rather than a text file, for example:</p> 399 400 <div class="example"><p><code> 401 <Directory /www/docs/private><br /> 402 <span class="indent"> 403 AuthName "Private"<br /> 404 AuthType Basic<br /> 405 AuthBasicProvider dbm<br /> 406 AuthDBMUserFile /www/passwords/passwd.dbm<br /> 407 Require valid-user<br /> 408 </span> 409 </Directory> 410 </code></p></div> 411 412 <p>Other options are available. Consult the 413 <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> documentation for more details.</p> 414 415 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> 416 <div class="section"> 417 <h2><a name="moreinformation" id="moreinformation">More information</a></h2> 418 <p>You should also read the documentation for 419 <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> and <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> which 420 contain some more information about how this all works. 421 <code class="module"><a href="../mod/mod_authn_alias.html">mod_authn_alias</a></code> can also help in simplifying certain 422 authentication configurations.</p> 423 424 <p>The various ciphers supported by Apache for authentication data are 425 explained in <a href="../misc/password_encryptions.html">Password 426 Encryptions</a>.</p> 427 428 <p>And you may want to look at the <a href="access.html">Access 429 Control</a> howto, which discusses a number of related topics.</p> 430 431 </div></div> 432 <div class="bottomlang"> 433 <p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English"> en </a> | 434 <a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 435 <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 436 <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 437 <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> 438 </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> 439 <script type="text/javascript"><!--//--><![CDATA[//><!-- 440 var comments_shortname = 'httpd'; 441 var comments_identifier = 'http://httpd.apache.org/docs/2.2/howto/auth.html'; 442 (function(w, d) { 443 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 444 d.write('<div id="comments_thread"><\/div>'); 445 var s = d.createElement('script'); 446 s.type = 'text/javascript'; 447 s.async = true; 448 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 449 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 450 } 451 else { 452 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 453 } 454 })(window, document); 455 //--><!]]></script></div><div id="footer"> 456 <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> 457 <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[//><!-- 458 if (typeof(prettyPrint) !== 'undefined') { 459 prettyPrint(); 460 } 461 //--><!]]></script> 462 </body></html>