10.5. Configuration Directives in httpd.conf
	The Apache HTTP Server configuration file is
	/etc/httpd/conf/httpd.conf. The
	httpd.conf file is well-commented and mostly
	self-explanatory. Its default configuration works for most
	situations; however, it is a good idea to become familiar some of the
	more important configuration options.
      
10.5.1. General Configuration Tips
	If configuring the Apache HTTP Server, edit
	/etc/httpd/conf/httpd.conf and then either reload,
	restart, or stop and start the httpd process as
	outlined in Section 10.4 Starting and Stopping httpd.
      
	Before editing httpd.conf, first make a copy the
	original file.  Creating a backup makes it easier to recover from
	mistakes made while editing the configuration file.
      
	If a mistake is made and the Web server does not work correctly, first
	review recently edited passages in httpd.conf
	to verify there are no typos.
      
	Next look in the Web server's error log,
	/var/log/httpd/error_log. The error log may not be
	easy to interpret, depending on the level of experience. If experiencing
	problems, however, the last entries in the error log should provide
	useful information about what happened.
      
	Next are a list of short descriptions for many of the directives
	included in httpd.conf. These descriptions are not
	exhaustive. For more information, refer to the Apache documentation
	provided in HTML format at http://localhost/manual/ or online at the
	following URL: http://httpd.apache.org/docs-2.0/.
      
	For more information about mod_ssl directives,
	refer to the documentation included in HTML format at
	http://localhost/mod/mod_ssl.html or online at the following URL: http://httpd.apache.org/docs-2.0/mod/mod_ssl.html.
      
10.5.2. ServerRoot
	  The ServerRoot is the top-level directory which
	  contains the server's files.  Both the secure server and the
	  non-secure server set the ServerRoot directive is
	  set to "/etc/httpd".
	
10.5.3. ScoreBoardFile
	  The ScoreBoardFile stores internal server process
	  information, which is used for communication between the parent server
	  process and its child processes. Red Hat Linux uses shared memory to store the
	  ScoreBoardFile, the default of
	  /etc/httpd/logs/apache_runtime_status is only
	  used as a fall back.
	
10.5.4. PidFile
	  PidFile names the file where the server records its
	  process ID (PID).  By default the PID is set in
	  /var/run/httpd.pid.
	
10.5.5. Timeout
	  Timeout defines, in seconds, the amount of time
	  that the server will wait for receipts and transmissions during
	  communications.  Specifically, Timeout defines how
	  long the server will wait to receive a GET request, how long it will
	  wait to receive TCP packets on a POST or PUT request, and how long it
	  will wait between ACKs responding to TCP packets.
	  Timeout is set to 300 seconds by
	  default, which is appropriate for most situations.
	
10.5.6. KeepAlive
	  KeepAlive sets whether the server will allow more
	  than one request per connection and can be used to prevent any one
	  client from consuming too much of the server's resources.
	
	  By default Keepalive is set to
	  off. If Keepalive is set to
	  on and the server becomes very busy, the server can
	  quickly spawn the maximum number of child processes. In this
	  situation, the server will slow down significantly. If
	  Keepalive is enabled, it is a good idea to set the
	  the KeepAliveTimeout low (refer to Section 10.5.8 KeepAliveTimeout for more information about the
	  KeepAliveTimeout directive) and monitor the
	  /var/log/httpd/error_log log file on the
	  server. This log  reports when the server is running out of child
	  processes.
	
10.5.7. MaxKeepAliveRequests
	  This directive sets the maximum number of requests allowed per
	  persistent connection.  The Apache Project recommends a high setting,
	  which improves the server's performance.
	  MaxKeepAliveRequests is set to
	  100 by default, which should be appropriate for
	  most situations.
	
10.5.8. KeepAliveTimeout
	  KeepAliveTimeout sets the number of seconds the
	  server will wait after a request has been served before it closes the
	  connection. Once the server receives a request, the
	  Timeout directive applies
	  instead. KeepAliveTimeout is set to 15 seconds by
	  default.
	
10.5.9. MinSpareServers and
	  MaxSpareServers
	  The Apache HTTP Server dynamically adapts to the perceived load by
	  maintaining an appropriate number of spare server processes based on
	  the traffic.  The server checks the number of servers waiting for a
	  request and kills some if there are more than
	  MaxSpareServers or creates some if the number of
	  servers is less than MinSpareServers.
	
	  The default MinSpareServers value is
	  5; the default MaxSpareServers
	  value is 20. These default settings should be
	  appropriate in most situations. Be careful not to increase the
	  MinSpareServers to a large number as doing so will
	  create a heavy processing load on the server even when traffic is
	  light.
	
10.5.10. StartServers
	  StartServers sets how many server processes are
	  created upon startup.  Since the Web server dynamically kills and
	  creates server processes based on traffic load, it is not necessary to
	  change this parameter.  The Web server is set to start eight server
	  processes at startup.
	
10.5.11. MaxClients
	  MaxClients sets a limit on the total number of
	  server processes, or simultaneously connected clients, that can run at
	  one time.  The main purpose of this directive is to keep a runaway
	  Apache HTTP Server from crashing the operating system. For busy servers this
	  value should be set to a high value. The
	  server's default is set to 150.  It is not recommended this the value
	  for the MaxClients exceed 256.
	
10.5.12. MaxRequestsPerChild
	  MaxRequestsPerChild sets the total number of
	  requests each child server process serves before the child dies. The
	  main reason for setting MaxRequestsPerChild is to
	  avoid long-lived process induced memory leaks. The default
	  MaxRequestsPerChild for the server is
	  1000.
	
10.5.13. Listen
	  The Listen command identifies the ports on which
	  the Web server will accept incoming requests. By default, the Apache HTTP Server
	  is set to listen to port 80 for non-secure Web communications and (in
	  the /etc/httpd/conf.d/ssl.conf which defines any
	  secure servers) to port 443 for secure Web communications.
	
	  If the Apache HTTP Server is configured to listen to a port under 1024, the root
	  user to start it.  For port 1024 and above,
	  httpd can be started as a regular user.
	
	  The Listen directive can also be used to specify
	  particular IP addresses over which the server will accept connections.
	
10.5.14. Include
	  Include allows other configuration files to be
	  included at runtime.
	
	  The path to these configuration files can be absolute or relative to
	  the ServerRoot.
	
|  | Important | 
|---|
|  | 	    For the server to use individually packaged modules, such
	    as mod_ssl, mod_perl, and
	    php, the following directive must be in
	    Section 1: Global Environment of
	    httpd.conf:
	   | 
10.5.15. LoadModule
	  LoadModule is used to load in Dynamic Shared Object
	  (DSO) modules.  More information on the Apache HTTP Server's DSO support,
	  including exactly how to use the LoadModule
	  directive, can be found in Section 10.7 Adding Modules. Note,
	  the load order of the modules is no longer
	  important with Apache HTTP Server 2.0. See Section 10.2.1.3 Dynamic Shared Object (DSO) Support for more
	  information about Apache HTTP Server 2.0 DSO support.
	
10.5.16. ExtendedStatus
	  The ExtendedStatus directive controls whether
	  Apache generates basic (off) or detailed server
	  status information (on), when the
	  server-status handler is called. The
	  Server-status handler is called using
	  Location tags.  More information on calling
	  server-status is included in Section 10.5.63 Location.
	
10.5.17. IfDefine
	  The <IfDefine> and
	  </IfDefine> tags surround configuration
	  directives that are applied if the "test" stated in the
	  <IfDefine> tag is true.  The directives are
	  ignored if the test is false.
	
	  The test in the <IfDefine> tags is a
	  parameter name (for example, HAVE_PERL). If the
	  parameter is defined, meaning that it is provided as an argument to
	  the server's start-up command, then the test is true. In this case,
	  when the Web server is started, the test is true and the directives
	  contained in the IfDefine tags are applied.
	
	  By default, <IfDefine HAVE_SSL> tags surround
	  the virtual host tags for the secure server. <IfDefine
	  HAVE_SSL> tags also surround the
	  LoadModule and AddModule
	  directives for the ssl_module.
	
10.5.18. User
	  The User directive sets the user name of the server
	  process and determines what files the server is allowed to access. Any
	  files inaccessible to this user are also inaccessible to clients
	  connecting to the Apache HTTP Server.
	
	  By default User is set to
	  apache.
	
|  | Note | 
|---|
|  |             For security reasons, the Apache HTTP Server will refuse to run as the root
	    user.
	   | 
10.5.19. Group
	  Specifies the group name of the Apache HTTP Server processes.
	
By default Group is set to
	  apache.
	
10.5.20. ServerAdmin
	  Set the ServerAdmin directive to the email address
	  of the Web server administrator. This email address will show up in
	  error messages on server-generated Web pages, so users can report a
	  problem by sending email to the server administrator.
	
	  By default, ServerAdmin is set to
	  root@localhost.
	
	  A common way to set up ServerAdmin is to set it to
	  webmaster@example.com. Then alias
	  webmaster to the person responsible for the Web
	  server in /etc/aliases and run
	  /usr/bin/newaliases.
	
10.5.21. ServerName
	  Use ServerName to set a hostname and port number
	  (matching the Listen directive) for the server. The
	  ServerName does not need to match the machine's
	  actual hostname. For example, the Web server may be
	  www.example.com but the server's
	  hostname is actually
	  foo.example.com. The value specified
	  in ServerName must be a valid Domain Name Service
	  (DNS) name that can be resolved by the system — do not make something up.
	
	  The following is a sample ServerName directive:
	
| ServerName www.example.com:80 | 
	  When specifying a ServerName, be sure the IP
	  address and server name pair are included in the
	  /etc/hosts file.
	
10.5.22. UseCanonicalName
	  When set to on, this directive configures the Apache HTTP Server
	  to references itself using the value specified in the
	  ServerName and Port
	  directives. When UseCanonicalName is set to
	  off, the server will instead use the value used by
	  the requesting client when referring to itself.
	
	 UseCanonicalName is set to
	  off by default.
	
10.5.23. DocumentRoot
	  The DocumentRoot is the directory which contains
	  most of the HTML files which is served in response to requests.  The
	  default DocumentRoot for both the non-secure and
	  secure Web servers is the /var/www/html
	  directory.  For example, the server might receive a request for the
	  following document:
	
| http://example.com/foo.html | 
	  The server looks for the following file in the default directory:
	
	  To change the DocumentRoot so that it is not shared
	  by the secure and the non-secure Web servers, see Section 10.8 Virtual Hosts.
	
10.5.24. Directory
	  <Directory /path/to/directory> and
	  </Directory> tags create what is referred to
	  as a container and are used to enclose a group
	  of configuration directives meant to apply only to a particular
	  directory and its subdirectories. Any directive which is applicable to
	  a directory may be used within <Directory>
	  tags. 
	
	  By default, very restrictive parameters are applied to the root
	  directory (/), using the Options (see Section 10.5.25 Options) and
	  AllowOverride (see Section 10.5.26 AllowOverride) directives. Under this
	  configuration, any directory on the system which needs more
	  permissive settings has to be explicitly given those settings.
	
	  In the default configuration, another Directory
	  container is configured for the DocumentRoot which
	  assigns less rigid parameters to the directory tree so that the
	  Apache HTTP Server can access the files residing there.
	
	  The Directory container can be also be used to
	  configure additional cgi-bin directories for
	  server-side applications outside of the directory specified in the
	  ScriptAlias directive (refer to Section 10.5.44 ScriptAlias for more information about the
	  ScriptAlias directive).
	
	  To accomplish this, the Directory container must
	  set the ExecCGI option for that directory.
	
	  For example, if CGI scripts are located in
	  /home/my_cgi_directory, add the following
	  Directory container to the
	  httpd.conf file:
	
| <Directory /home/my_cgi_directory>
    Options +ExecCGI
</Directory> | 
	  Next, the AddHandler directive must be 
	  uncommented to identify files with the .cgi
	  extension as CGI scripts. See Section 10.5.59 AddHandler
	  for instructions on setting AddHandler.
	
	  For this to work, permissions for CGI scripts, and the entire path to
	  the scripts, must be set to 0755.
	
10.5.25. Options
	  The Options directive controls which server
	  features are available in a particular directory. For example, under
	  the restrictive parameters specified for the root directory,
	  Options is set to only
	  FollowSymLinks.  No features are enabled, except
	  that the server is allowed to follow symbolic links in the root
	  directory.
	
	  By default, in the DocumentRoot directory,
	  Options is set to include
	  Indexes and
	  FollowSymLinks. Indexes permits
	  the server to generate a directory listing for a directory if no
	  DirectoryIndex (for example,
	  index.html) is
	  specified. FollowSymLinks allows the server to
	  follow symbolic links in that directory.
	
|  | Note | 
|---|
|  | 	    Options statements from the main server
	    configuration section needs to be replicated to each
	    VirtualHost containers individually. Refer to
	    Section 10.5.69 VirtualHost for more information about
	    VirtualHost containers.
	   | 
10.5.26. AllowOverride
	  The AllowOverride directive sets whether or not any
	  Options can be overridden by the declarations in an
	  .htaccess file. By default, both the root
	  directory and the DocumentRoot are set to allow no
	  .htaccess overrides.
	
10.5.27. Order
	  The Order directive controls the order in which
	  allow and deny directives are
	  evaluated.  The server is configured to evaluate the
	  Allow directives before the Deny
	  directives for the DocumentRoot directory.
	
10.5.28. Allow
	  Allow specifies which requester can access a given
	  directory.  The requester can be all, a domain
	  name, an IP address, a partial IP address, a network/netmask pair, and
	  so on.  The DocumentRoot directory is configured
	  to Allow requests from all,
	  meaning everyone has access.
	
10.5.29. Deny
	  Deny works just like Allow,
	  except it specifies who is denied access. The
	  DocumentRoot is not configured to
	  Deny requests from anyone by default.
	
10.5.30. UserDir
	  UserDir is the name of the subdirectory within each
	  user's home directory where they should place personal HTML files
	  which are served by the Web server. This directive is set to
	  disable by default.
	
	 The name for the subdirectory is set to
	  public_html in the default configuration. For
	  example, the server might receive the following request:
	
| http://example.com/~username/foo.html | 
	  The server would look for the file:
	
| /home/username/public_html/foo.html | 
	  In the above example, /home/username/ is the
	  user's home directory (note that the default path to users' home
	  directories may vary).
	
	  Make sure that the permissions on the users' home directories are set
	  correctly.  Users' home directories must be set to 0711.  The read (r)
	  and execute (x) bits must be set on the users'
	  public_html directories (0755 will also work).
	  Files that will be served in users' public_html
	  directories must be set to at least 0644.
	
10.5.31. DirectoryIndex
	  The DirectoryIndex is the default page served by
	  the server when a user requests an index of a directory by specifying
	  a forward slash (/) at the end of the directory name.
	
	  When a user requests the page
	  http://example/this_directory/,
	  they get either the DirectoryIndex page if it
	  exists or a server-generated directory list. The default for
	  DirectoryIndex is index.html
	  and the index.html.var type map. The server tries
	  to find any one of these files, and returns the first one it finds.
	  If it does not find any of these files and Options
	  Indexes is set for that directory, the server generates and
	  returns a listing, in HTML format, of the subdirectories and files
	  within the directory, unless the directory listing feature is turned
	  off.
	
10.5.32. AccessFileName
	  AccessFileName names the file which the server
	  should use for access control information in each directory.  The
	  default is .htaccess.
	
	  Immediately after the AccessFileName directive, a
	  set of Files tags apply access control to any file
	  beginning with a .ht. These directives deny Web
	  access to any .htaccess files (or other files
	  which begin with .ht) for security reasons.
	
10.5.33. CacheNegotiatedDocs
	  By default, the Web server asks proxy servers not to cache any
	  documents which were negotiated on the basis of content (that is, they
	  may change over time or because of the input from the requester). If
	  CacheNegotiatedDocs is set to on,
	  disables the function and allowing proxy servers to cache documents.
	
10.5.34. TypesConfig
	  TypesConfig names the file which sets the default
	  list of MIME type mappings (file name extensions to content types).
	  The default TypesConfig file is
	  /etc/mime.types.  Instead of editing
	  /etc/mime.types, the recommended way to add MIME
	  type mappings is to use the AddType directive.
	
	  For more information about AddType, refer to
	Section 10.5.58 AddType.
	
10.5.35. DefaultType
	  DefaultType sets a default content type for the Web
	  server to use for documents whose MIME types cannot be determined.
	  The default is text/plain.
	
10.5.36. IfModule
	  <IfModule> and
	  </IfModule> tags create a conditional
	  container which are only activated if the specified module is
	  loaded. Directives contained within the IfModule
	  tags are processed under one of two conditions.  The directives are
	  processed if the module contained within the starting
	  <IfModule> tag is loaded. Or, if an
	  exclamation point [!] appears before the module name,
	  the directives are processed only if the module specified in the
	  <IfModule> tag is not
	  loaded.
	
	  For more information about Apache HTTP Server modules, refer to Section 10.7 Adding Modules.
	
10.5.37. HostnameLookups
	  HostnameLookups can be set to on,
	  off or double. If
	  HostnameLookups set to on, the
	  server automatically resolves the IP address for each
	  connection. Resolving the IP address means that the server makes one
	  or more connections to a DNS server, adding processing overhead. If
	  HostnameLookups is set to double,
	  the server performs a double-reverse DNS look up adding even more
	  processing overhead.
	
	  To conserve resources on the server, HostnameLookups
	  set to off by default.
	
	  If hostnames are required in server log files, consider running one of
	  the many log analyzer tools that perform the DNS lookups more
	  efficiently and in bulk when rotating the Web server log files.
	
10.5.38. ErrorLog
	  ErrorLog specifies the file where server errors are
	  logged. By default, this directive is set to
	  /var/log/httpd/error_log.
	
10.5.39. LogLevel
	  LogLevel sets how verbose the error messages in the
	  error logs are.  LogLevel can be set (from
	  least verbose to most verbose) to emerg,
	  alert, crit,
	  error, warn,
	  notice, info or
	  debug.  The default LogLevel is
	  warn.
	
10.5.40. LogFormat
	  The LogFormat directive configures the format of
	  the various Web server log files. The actual
	  LogFormat used depends on the settings given in
	  the CustomLog directive (see Section 10.5.41 CustomLog).
	
	  The following are the format options if the
	  CustomLog directive is set to
	  combined:
	
- %h (remote host's IP address or hostname)
- Lists the remote IP address of the requesting client. If
	      HostnameLookups is set to on,
	      the client hostname is recorded unless it is not available
	      from DNS.
	       
- %l (rfc931)
- Not used. A hyphen [-] appears in the log
		file for this field.
	       
- %u (authenticated user)
- If authentication was required, lists the user name of the
		user is recorded. Usually, this is not used, so a hyphen
		[-] appears in the log file for this field.
	       
- %t (date)
- 		Lists the date and time of the request.
	       
- %r (request string)
- Lists the request string exactly as it came from the browser or
		client.
	       
- %s (status)
- Lists the HTTP status code which was returned to the client host.
	       
- %b (bytes)
- Lists the size of the document.
	       
- %\"%{Referer}i\" (referrer)
- Lists the URL of the webpage which referred the client host
               to Web server. 
- %\"%{User-Agent}i\" (user-agent)
- Lists the type of Web browser making the request. 
10.5.41. CustomLog
	  CustomLog identifies the log file and the log file
	  format. By default, the log is recorded to the
	  /var/log/httpd/access_log file.
	
	  The default CustomLog format is
	  combined. The following illustrates the
	  combined log file format:
	
| remotehost rfc931 user date "request" status bytes referrer user-agent | 
10.5.42. ServerSignature
	  The ServerSignature directive adds a line
	  containing the Apache HTTP Server server version and the
	  ServerName to any server-generated documents, such
	  as error messages sent back to
	  clients. ServerSignature is set to
	  on by default. 
	
	  It to also be set to off or to
	  EMail. EMail, adds a
	  mailto:ServerAdmin HTML tag to the signature line
	  of auto-generated responses.
	
10.5.43. Alias
	  The Alias setting allows directories outside the
	  DocumentRoot directory to be accessible. Any URL
	  ending in the alias automatically resolves to the alias' path. By
	  default, one alias for an icons directory is
	  already set up.  An icons directory can be
	  accessed by the Web server, but the directory is not in the
	  DocumentRoot.
	
10.5.44. ScriptAlias
	  The ScriptAlias directive defines where CGI scripts
	  are located. Generally, it is not good practice to leave CGI scripts
	  within the DocumentRoot, where they can potentially
	  be viewed as text documents. For this reason, a special directory
	  outside of the DocumentRoot directory containing
	  server-side executables and scripts is designated
	  by the ScriptAlias directive. This directory is
	  known as a cgi-bin and set to
	  /var/www/cgi-bin/ by default.
	
	  It is possible to establish directories for storing executables outside
	  of the cgi-bin directory. For instructions on
	  doing so, refer to Section 10.5.59 AddHandler and Section 10.5.24 Directory.
	
10.5.45. Redirect
	  When a webpage is moved, Redirect can be used to
	  map the file location to a new URL. The format is as follows:
	
| Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name> | 
	  In this example, replace <old-path>
	  with the old path information for
	  <file-name> and
	  <current-domain> and
	  <current-path> with the current
	  domain and path information for
	  <file-name>.
	
	  In this example, any requests for
	  <file-name> at the old location is
	  automatically redirected to the new location.
	
For more advanced redirection techniques, use the
          mod_rewrite module included with the Apache HTTP Server. For
          more information about configuring the mod_rewrite
          module, refer to the Apache Software Foundation documentation online
          at http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.
	
10.5.46. IndexOptions
	  IndexOptions controls the appearance of server
	  generated directing listings, by adding icons, file descriptions, and
	  so on.  If Options Indexes is set (see Section 10.5.25 Options), the Web server generates a directory
	  listing when the Web server receives an HTTP request for a directory
	  without an index. 
	
	  First, the Web server looks in the requested directory for a file
	  matching the names listed in the DirectoryIndex
	  directive (usually, index.html). If an
	  index.html file is not found, Apache HTTP Server creates an
	  HTML directory listing of the requested directory. The appearance of
	  this directory listing is controlled, in part, by the
	  IndexOptions directive.
	
	  The default configuration turns on FancyIndexing.
	  This means that a user can re-sort a directory listing by clicking on
	  column headers. Another click on the same header will switch from
	  ascending to descending order. FancyIndexing also
	  shows different icons for different files, based upon file extensions.
	
	  The AddDescription option, when used in conjunction
	  with FancyIndexing, presents a short description
	  for the file in server generated directory listings.
	
	  IndexOptions has a number of other parameters which
	  can be set to control the appearance of server generated directories.
	  Parameters include IconHeight and
	  IconWidth, to make the server include HTML
	  HEIGHT and WIDTH tags for the
	  icons in server generated webpages; IconsAreLinks,
	  for making the icons act as part of the HTML link anchor along with
	  the filename and others. 
	
10.5.47. AddIconByEncoding
	  This directive names icons which are displayed by files with MIME
	  encoding in server generated directory listings.  For example, by
	  default, the Web server shows the compressed.gif
	  icon next to MIME encoded x-compress and x-gzip files in server
	  generated directory listings.
	
10.5.48. AddIconByType
	  This directive names icons which are displayed next to files with MIME
	  types in server generated directory listings.  For example, the server
	  shows the icon text.gif next to files with a
	  mime-type of text, in server
	  generated directory listings.
	
10.5.49. AddIcon
	  AddIcon specifies which icon to show in server
	  generated directory listings for files with certain extensions.  For
	  example, the Web server is set to show the icon
	  binary.gif for files with
	  .bin or .exe extensions.
	
10.5.50. DefaultIcon
	  DefaultIcon specifies the icon displayed in server
	  generated directory listings for files which have no other icon
	  specified. The unknown.gif image file is the
	  default.
	
10.5.51. AddDescription
	   When using FancyIndexing as an
	  IndexOptions parameter, the
	  AddDescription directive can be used to display
	  user-specified descriptions for certain files or file types in a
	  server generated directory listings. The
	  AddDescription directive supports listing specific
	  files, wildcard expressions, or file extensions.
	
10.5.52. ReadmeName
	  ReadmeName names the file which, if it exists in
	  the directory, is appended to the end of server generated directory
	  listings. The Web server first tries to include the file as an HTML
	  document and then try to include it as plain text. By default,
	  ReadmeName is set to
	  README.html.
	
10.5.53. HeaderName
	  HeaderName names the file which, if it exists in
	  the directory, is prepended to the start of server generated
	  directory listings. Like ReadmeName, the server
	  tries to include it as an HTML document if possible or in
	  plain text if not.
	
10.5.54. IndexIgnore
	  IndexIgnore lists file extensions, partial
	  file names, wildcard expressions or full filenames. The Web server
	  will not include any files which match any of those parameters in
	  server generated directory listings.
	
10.5.55. AddEncoding
	  AddEncoding names filename extensions which should
	  specify a particular encoding type. AddEncoding can
	  also be used to instruct some browsers to uncompress certain files as
	  they are downloaded.
	
10.5.56. AddLanguage
	  AddLanguage associates file name extensions with
	  specific languages. This directive is useful for Apache HTTP Servers which serve
	  content in multiple languages based on the client Web browser's
	  language settings.
	
10.5.57. LanguagePriority
	  LanguagePriority sets precedence for different
	  languages in case the client Web browser has no language preference
	  set.
	
10.5.58. AddType
	  Use the AddType directive to define MIME type and
	  file extension pairs. For example, using PHP4, use the
	  AddType directive to make the Web server recognize
	  with PHP file extensions (.php4,
	  .php3 .phtml
	  .php) as PHP MIME types. The following directive
	  tells the Apache HTTP Server to recognize the .shtml file
	  extension:
	
| AddType text/html .shtml
AddHandler server-parsed .shtml | 
10.5.59. AddHandler
	  AddHandler maps file extensions to specific
	  handlers. For example, the cgi-script handler can
	  be matched with the extension .cgi to
	  automatically treat a file ending with .cgi as a
	  CGI script. The following is a sample AddHandler
	  directive for the .cgi extension.
	
| AddHandler cgi-script .cgi | 
	  This directive enables CGIs outside of the
	  cgi-bin to function in any directory on the
	  server which has the ExecCGI option within the
	  directories container. Refer to Section 10.5.24 Directory
	  for more information about setting the ExecCGI
	  option for a directory.
	
	  In addition to CGI scripts, the AddHandler
	  directive is used to process server-parsed HTML and image-map files.
	
10.5.60. Action
	  Action specifies a MIME content type
	  and CGI script pair, so that whenever a file of that media type is
	  requested, a particular CGI script is executed.
	
10.5.61. ErrorDocument
	  The ErrorDocument directive associates an HTTP
	  response code with a message or a URL to be sent back to the
	  client. By default, the Web server outputs a simple and usually
	  cryptic error message when an error occurs. The
	  ErrorDocument directive forces the Web server to
	  instead output a customized message or redirects the client to a local
	  or external URL.
	
|  | Important | 
|---|
|  | 	    In order to be valid, the message must be enclosed in a pair of
	    double quotes ["].
	   | 
10.5.62. BrowserMatch
	  The BrowserMatch directive allows the server to
	  define environment variables and take appropriate actions based on the
	  User-Agent HTTP header field — which identifies the client's Web
	  browser type. By default, the Web server uses
	  BrowserMatch to deny connections to specific
	  browsers with known problems and also to disable keepalives and HTTP
	  header flushes for browsers that are known to have problems with those
	  actions.
	
10.5.63. Location
	  The <Location> and
	  </Location> tags create a container in which access
	  control based on URL can be specified.
	
	  For instance, to allow people connecting from within the server's
	  domain to see status reports, use the following directives:
	
| <Location /server-status>
    SetHandler server-status 
    Order deny,allow Deny from all 
    Allow from <.example.com>
</Location> | 
	  Replace <.example.com> with the
	  second-level domain name for the Web server.
	
	  To provide server configuration reports (including
	  installed modules and configuration directives) to requests from
	  inside the domain, use the following directives:
	
| <Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from <.example.com>
</Location> | 
	  Again, replace <.example.com> with the
	  second-level domain name for the Web server.
	
10.5.64. ProxyRequests
	  To configure the Apache HTTP Server to function as a proxy server, remove the
	  hash marks from the beginning of the <IfModule
	  mod_proxy.c> line to load the
	  mod_proxy module and set the
	  ProxyRequests directive to On.
	
10.5.65. Proxy
	  <Proxy *> and
	  </Proxy> tags create a container which
	  encloses a group of configuration directives meant to apply only to the
	  proxy server. Many directives which are applicable to a directory may
	  be used within <Proxy> tags.
	
10.5.66. ProxyVia
	  The ProxyVia command controls whether or not an
	  HTTP Via: header line is sent along with requests or replies which go
	  through the Apache proxy server. The Via: header shows the hostname if
	  ProxyVia is set to On, shows the
	  hostname and the Apache HTTP Server version for Full, passes
	  along any Via: lines unchanged for Off, and Via:
	  lines are removed for Block.
	
10.5.67. Cache Directives
	  A number of commented cache directives are supplied by the default
	  Apache HTTP Server configuration file. In most cases, uncommenting these lines by
	  removing the hash mark [#] from the beginning of the
	  line is sufficient. The following, however,  is a list of some of the
	  more important cache-related directives.
	
- CacheRoot — Specifies the name of
	      the directory containing cached files. The default
	      CacheRoot is the
	      /var/httpd/proxy/ directory.
	     
- CacheSize — Specifies how much
	      space the cache can use in kilobytes. The default
	      CacheSize is 5 KB.
	     
- CacheGcInterval — Specifies the
	      number of hours which must pass before files in the cache are
	      deleted.  The default for CacheGcInterval is
	      4 hours.
	     
- CacheMaxExpire — Specifies how long
	      HTML documents are retained (without a reload from the originating
	      Web server) in the cache. The default is 24
	      hours.
	     
- CacheLastModifiedFactor — Specifies
	      the creation of an expiry (expiration) date for a document which
	      did not come from its originating server with its own expiry
	      set. The default CacheLastModifiedFactor is set
	      to 0.1, meaning that the expiry date for such
	      documents equals one-tenth of the amount of time since the
	      document was last modified.
	     
- CacheDefaultExpire — Specifies the
	      expiry time in hours for a document that was received using a
	      protocol that does not support expiry times. The default is set to
	      1 hour.
	     
- NoCache — Specifies a list of hosts
	      whose content is not cached.
	     
10.5.68. NameVirtualHost
	  The NameVirtualHost directive associates an IP
	  address and port number, if necessary, for any name-based virtual
	  hosts. Name-based virtual hosting allows one Apache HTTP Server to serve
	  different domains without using multiple IP addresses.
	
|  | Note | 
|---|
|  | 	    Name-based virtual hosts only work with
	    non-secure HTTP connections. If using virtual hosts with a secure
	    server, use IP address-based virtual hosts instead.
	   | 
	  To enable name-based virtual hosting, uncomment the
	  NameVirtualHost configuration directive and add the
	  correct IP address. Then add more VirtualHost
	  containers for each virtual host.
	
10.5.69. VirtualHost
	  <VirtualHost> and
	  </VirtualHost> tags create a container
	  outlining the characteristics of a virtual host. The
	  <VirtualHost> container accepts most
	  configuration directives.
	
	  A set of commented VirtualHost container is
	  provided in httpd.conf, which illustrates the
	  minimum set of configuration directives necessary for each virtual
	  host. Refer to Section 10.8 Virtual Hosts for more
	  information about virtual hosts.
	
|  | Note | 
|---|
|  | All SSL virtual host containers have been
	  moved into the file /etc/httpd/conf.d/ssl.conf.
	   | 
10.5.70. SSL Configuration Directives
	  The SSL directives in /etc/httpd/conf.d/ssl.conf
	  file can be configured to enable secure Web communications using SSL and
	  TLS. 
	
10.5.70.1. SetEnvIf
	    SetEnvIf sets environment variables based on the
	    headers of incoming secure connections. In the supplied
	    /etc/httpd/conf.d/ssl.conf file, it is used to
	    disable HTTP keepalive and to allow SSL to close the connection
	    without a close notify alert from the client browser. This setting
	    is necessary for certain browsers that do not reliably shut down the
	    SSL connection.
	  
	    For more information on SSL directives, direct a Web browser to
	    either of the following addresses:
	  
	    For information about setting up an Apache HTTP Secure Server see
	    the chapter titled Apache HTTP Secure Server
	    Configuration in the Red Hat Linux Customization Guide.
	  
|  | Note | 
|---|
|  | 	      In most cases, the SSL directives are configured appropriately as
	      installed. Be cautious when altering Apache HTTP Secure Server
	      directives as misconfiguration can lead to security
	      vulnerabilities.
	     |