Here is what you will see when viewing the server-info page for Mod_Rewrite
First you will need to have mod_status loaded, (which 99.9% of you do). If not already enabled, add this to your httpd.conf and restart apache.
LoadModule status_module modules/mod_status.so
This module provides apache with 2 new handlers you can use:
You may have seen special cases where other handlers were used in .htaccess files like SetHandler send-as-is
or SetHandler cgi-script
, but basically a handler is something apache will use to render a request in a way other than normal files are rendered. So what we need to do is add the server-info handler for a specific request so that the special info is rendered.
If you have access to modify the httpd.conf you can set up /server-status
and /server-info
to always be handled by mod_status, no matter which site/vhost.
SetHandler server-status Order deny,allow Deny from all Allow from localhost SetHandler server-info Order deny,allow Deny from all Allow from localhost
Create 2 files, named server-info
and server-status
in a web-accessible location, like your main htdocs. This will force requests to either file to be handled by mod_status. Then in the same folders .htaccess
file add:
SetHandler server-info Order deny,allow Deny from all Allow from localhost SetHandler server-status Order deny,allow Deny from all Allow from localhost
Requirements: lynx, bash, sed. This is pretty cool, basically you set the SERVER_URL var below to the location of the server-info you setup. Then you run this script to output a list of each module currently loaded into Apache and its corresponding directives. It outputs this in a commented out fashion so you can copy and paste it into your httpd.conf or keep for notes.
#!/bin/bash SERVER_URL=http://localhost/server-info for m in $(lynx -dump ${SERVER_URL}?list|sed '/.c$/!d; s/^[^a-z]*([^.]*).c.*$/1.c/g'); do echo "# ${m}"; lynx -dump -width=300 ${SERVER_URL}?${m}|sed '/Directives:/,/^$/!d'|sed '/Module /d;s/^[^a-zA-Z<]*(.*)$/# 1/g'; done
# mod_suphp.c # suPHP_Engine - Whether suPHP is on or off, default is off # suPHP_ConfigPath - Wheres the php.ini resides, default is the PHP default # suPHP_UserGroup - User and group scripts shall be run as # suPHP_AddHandler - Tells mod_suphp to handle these MIME-types # suPHP_RemoveHandler - Tells mod_suphp not to handle these MIME-types # suPHP_PHPPath - Path to the PHP binary used to render source view # # mod_rewrite.c # RewriteEngine - On or Off to enable or disable (default) the whole rewriting engine # RewriteOptions - List of option strings to set # RewriteBase - the base URL of the per-directory context # RewriteCond - an input string and a to be applied regexp-pattern # RewriteRule - an URL-applied regexp-pattern and a substitution URL # RewriteMap - a mapname and a filename # RewriteLock - the filename of a lockfile used for inter-process synchronization # RewriteLog - the filename of the rewriting logfile # RewriteLogLevel - the level of the rewriting logfile verbosity (0=none, 1=std, .., 9=max) # # mod_alias.c # Alias - a fakename and a realname # ScriptAlias - a fakename and a realname # Redirect - an optional status, then document to be redirected and destination URL # AliasMatch - a regular expression and a filename # ScriptAliasMatch - a regular expression and a filename # RedirectMatch - an optional status, then a regular expression and destination URL # RedirectTemp - a document to be redirected, then the destination URL # RedirectPermanent - a document to be redirected, then the destination URL # # mod_actions.c # Action - a media type followed by a script name # Script - a method followed by a script name # # mod_dir.c # FallbackResource - Set a default handler # DirectoryIndex - a list of file names # DirectorySlash - On or Off # # mod_negotiation.c # CacheNegotiatedDocs - Either 'on' or 'off' (default) # LanguagePriority - space-delimited list of MIME language abbreviations # ForceLanguagePriority - Force LanguagePriority elections, either None, or Fallback and/or Prefer # # mod_vhost_alias.c # VirtualScriptAlias - how to create a ScriptAlias based on the host # VirtualDocumentRoot - how to create the DocumentRoot based on the host # VirtualScriptAliasIP - how to create a ScriptAlias based on the host # VirtualDocumentRootIP - how to create the DocumentRoot based on the host # # mod_cgi.c # ScriptLog - the name of a log for script debugging info # ScriptLogLength - the maximum length (in bytes) of the script debug log # ScriptLogBuffer - the maximum size (in bytes) to record of a POST request # # mod_suexec.c # SuexecUserGroup - User and group for spawned processes # # mod_info.c # AddModuleInfo - a module name and additional information on that module # # mod_autoindex.c # AddIcon - an icon URL followed by one or more filenames # AddIconByType - an icon URL followed by one or more MIME types # AddIconByEncoding - an icon URL followed by one or more content encodings # AddAlt - alternate descriptive text followed by one or more filenames # AddAltByType - alternate descriptive text followed by one or more MIME types # AddAltByEncoding - alternate descriptive text followed by one or more content encodings # IndexOptions - one or more index options [+|-][] # IndexOrderDefault - {Ascending,Descending} {Name,Size,Description,Date} # IndexIgnore - one or more file extensions # AddDescription - Descriptive text followed by one or more filenames # HeaderName - a filename # ReadmeName - a filename # FancyIndexing - The FancyIndexing directive is no longer supported. Use IndexOptions FancyIndexing. # DefaultIcon - an icon URL # IndexStyleSheet - URL to style sheet # IndexHeadInsert - String to insert in HTML HEAD section # # mod_status.c # ExtendedStatus - "On" to enable extended status information, "Off" to disable # SeeRequestTail - For verbose requests, "On" to see the last 63 chars of the request, "Off" (default) to see the first 63 in extended status display # # mod_mime.c # AddCharset - a charset (e.g., iso-2022-jp), followed by one or more file extensions # AddEncoding - an encoding (e.g., gzip), followed by one or more file extensions # AddHandler - a handler name followed by one or more file extensions # AddInputFilter - input filter name (or ; delimited names) followed by one or more file extensions # AddLanguage - a language (e.g., fr), followed by one or more file extensions # AddOutputFilter - output filter name (or ; delimited names) followed by one or more file extensions # AddType - a mime type followed by one or more file extensions # DefaultLanguage - language to use for documents with no other language file extension # MultiviewsMatch - NegotiatedOnly (default), Handlers and/or Filters, or Any # RemoveCharset - one or more file extensions # RemoveEncoding - one or more file extensions # RemoveHandler - one or more file extensions # RemoveInputFilter - one or more file extensions # RemoveLanguage - one or more file extensions # RemoveOutputFilter - one or more file extensions # RemoveType - one or more file extensions # TypesConfig - the MIME types config file # ModMimeUsePathInfo - Set to 'yes' to allow mod_mime to use path info for type checking # # mod_ssl.c # SSLMutex - Valid SSLMutex mechanisms are: `none', `default', `flock:/path/to/file', `fcntl:/path/to/file', `sysvsem', `posixsem', `pthread', `file:/path/to/file', `sem' # SSLPassPhraseDialog - SSL dialog mechanism for the pass phrase query (`builtin', `|/path/to/pipe_program`, or `exec:/path/to/cgi_program') # SSLSessionCache - SSL Session Cache storage (`none', `nonenotnull', `dbm:/path/to/file') # SSLCryptoDevice - SSL external Crypto Device usage (`builtin', `...') # SSLRandomSeed - SSL Pseudo Random Number Generator (PRNG) seeding source (`startup|connect builtin|file:/path|exec:/path [bytes]') # SSLEngine - SSL switch for the protocol engine (`on', `off') # SSLFIPS - Enable FIPS-140 mode (`on', `off') # SSLCipherSuite - Colon-delimited list of permitted SSL Ciphers (`XXX:...:XXX' - see manual) # SSLCertificateFile - SSL Server Certificate file (`/path/to/file' - PEM or DER encoded) # SSLCertificateKeyFile - SSL Server Private Key file (`/path/to/file' - PEM or DER encoded) # SSLCertificateChainFile - SSL Server CA Certificate Chain file (`/path/to/file' - PEM encoded) # SSLCACertificatePath - SSL CA Certificate path (`/path/to/dir' - contains PEM encoded files) # SSLCACertificateFile - SSL CA Certificate file (`/path/to/file' - PEM encoded) # SSLCADNRequestPath - SSL CA Distinguished Name path (`/path/to/dir' - symlink hashes to PEM of acceptable CA names to request) # SSLCADNRequestFile - SSL CA Distinguished Name file (`/path/to/file' - PEM encoded to derive acceptable CA names to request) # SSLCARevocationPath - SSL CA Certificate Revocation List (CRL) path (`/path/to/dir' - contains PEM encoded files) # SSLCARevocationFile - SSL CA Certificate Revocation List (CRL) file (`/path/to/file' - PEM encoded) # SSLVerifyClient - SSL Client verify type (`none', `optional', `require', `optional_no_ca') # SSLVerifyDepth - SSL Client verify depth (`N' - number of intermediate certificates) # SSLSessionCacheTimeout - SSL Session Cache object lifetime (`N' - number of seconds) # SSLProtocol - Enable or disable various SSL protocols(`[+-][SSLv2|SSLv3|TLSv1] ...' - see manual) # SSLHonorCipherOrder - Use the server's cipher ordering preference # SSLInsecureRenegotiation - Enable support for insecure renegotiation # SSLUserName - Set user name to SSL variable value # SSLStrictSNIVHostCheck - Strict SNI virtual host checking # SSLProxyEngine - SSL switch for the proxy protocol engine (`on', `off') # SSLProxyProtocol - SSL Proxy: enable or disable SSL protocol flavors (`[+-][SSLv2|SSLv3|TLSv1] ...' - see manual) # SSLProxyCipherSuite - SSL Proxy: colon-delimited list of permitted SSL ciphers (`XXX:...:XXX' - see manual) # SSLProxyVerify - SSL Proxy: whether to verify the remote certificate (`on' or `off') # SSLProxyVerifyDepth - SSL Proxy: maximum certificate verification depth (`N' - number of intermediate certificates) # SSLProxyCACertificateFile - SSL Proxy: file containing server certificates (`/path/to/file' - PEM encoded certificates) # SSLProxyCACertificatePath - SSL Proxy: directory containing server certificates (`/path/to/dir' - contains PEM encoded certificates) # SSLProxyCARevocationPath - SSL Proxy: CA Certificate Revocation List (CRL) path (`/path/to/dir' - contains PEM encoded files) # SSLProxyCARevocationFile - SSL Proxy: CA Certificate Revocation List (CRL) file (`/path/to/file' - PEM encoded) # SSLProxyMachineCertificateFile - SSL Proxy: file containing client certificates (`/path/to/file' - PEM encoded certificates) # SSLProxyMachineCertificatePath - SSL Proxy: directory containing client certificates (`/path/to/dir' - contains PEM encoded certificates) # SSLProxyCheckPeerExpire - SSL Proxy: check the peers certificate expiration date # SSLProxyCheckPeerCN - SSL Proxy: check the peers certificate CN # SSLOptions - Set one or more options to configure the SSL engine(`[+-]option[=value] ...' - see manual) # SSLRequireSSL - Require the SSL protocol for the per-directory context (no arguments) # SSLRequire - Require a boolean expression to evaluate to true for granting access(arbitrary complex boolean expression - see manual) # SSLRenegBufferSize - Configure the amount of memory that will be used for buffering the request body if a per-location SSL renegotiation is required due to changed access control requirements # SSLLog - SSLLog directive is no longer supported - use ErrorLog. # SSLLogLevel - SSLLogLevel directive is no longer supported - use LogLevel. # # mod_version.c # - a comparison operator, a version (and a delimiter) # # mod_setenvif.c # SetEnvIf - A header-name, regex and a list of variables. # SetEnvIfNoCase - a header-name, regex and a list of variables. # BrowserMatch - A browser regex and a list of variables. # BrowserMatchNoCase - A browser regex and a list of variables. # # mod_unique_id.c # # # mod_headers.c # Header - an optional condition, an action, header and value followed by optional env clause # RequestHeader - an action, header and value followed by optional env clause # # mod_expires.c # ExpiresActive - Limited to 'on' or 'off' # ExpiresByType - a MIME type followed by an expiry date code # ExpiresDefault - an expiry date code # # mod_mime_magic.c # MimeMagicFile - Path to MIME Magic file (in file(1) format) # # mod_env.c # PassEnv - a list of environment variables to pass to CGI. # SetEnv - an environment variable name and optional value to pass to CGI. # UnsetEnv - a list of variables to remove from the CGI environment. # # mod_logio.c # # # mod_log_forensic.c # ForensicLog - the filename of the forensic log # # mod_log_config.c # CustomLog - a file name, a custom log format string or format name, and an optional "env=" clause (see docs) # TransferLog - the filename of the access log # LogFormat - a log format string (see docs) and an optional format name # CookieLog - the filename of the cookie log # BufferedLogs - Enable Buffered Logging (experimental) # # mod_deflate.c # DeflateFilterNote - Set a note to report on compression ratio # DeflateWindowSize - Set the Deflate window size (1-15) # DeflateBufferSize - Set the Deflate Buffer Size # DeflateMemLevel - Set the Deflate Memory Level (1-9) # DeflateCompressionLevel - Set the Deflate Compression Level (1-9) # # mod_filter.c # FilterDeclare - filter-name [, filter-type] # FilterProvider - filter-name, provider-name, dispatch--criterion, dispatch-match # FilterChain - list of filter names with optional [+-=!@] # FilterTrace - Debug level # FilterProtocol - filter-name [provider-name] protocol-args # # mod_include.c # XBitHack - Off, On, or Full # SSIErrorMsg - a string # SSITimeFormat - a strftime(3) formatted string # SSIStartTag - SSI Start String Tag # SSIEndTag - SSI End String Tag # SSIUndefinedEcho - String to be displayed if an echoed variable is undefined # SSIAccessEnable - Whether testing access is enabled. Limited to 'on' or 'off' # SSILastModified - Whether to set the last modified header or respect an existing header. Limited to 'on' or 'off' # SSIEtag - Whether to allow the generation of ETags within the server. Existing ETags will be preserved. Limited to 'on' or 'off' # # mod_ext_filter.c # ExtFilterOptions - valid options: DebugLevel=n, LogStderr, NoLogStderr # ExtFilterDefine - Define an external filter # # mod_dbd.c # DBDriver - SQL Driver # DBDParams - SQL Driver Params # DBDPersist - Use persistent connection/pool # DBDPrepareSQL - SQL statement to prepare (or nothing, to override statement inherited from main server) and label # DBDMin - Minimum number of connections # DBDKeep - Maximum number of sustained connections # DBDMax - Maximum number of connections # DBDExptime - Keepalive time for idle connections # # mod_mem_cache.c # MCacheSize - The maximum amount of memory used by the cache in KBytes # MCacheMaxObjectCount - The maximum number of objects allowed to be placed in the cache # MCacheMinObjectSize - The minimum size (in bytes) of an object to be placed in the cache # MCacheMaxObjectSize - The maximum size (in bytes) of an object to be placed in the cache # MCacheRemovalAlgorithm - The algorithm used to remove entries from the cache (default: GDSF) # MCacheMaxStreamingBuffer - Maximum number of bytes of content to buffer for a streamed response # # mod_disk_cache.c # CacheRoot - The directory to store cache files # CacheDirLevels - The number of levels of subdirectories in the cache # CacheDirLength - The number of characters in subdirectory names # CacheMinFileSize - The minimum file size to cache a document # CacheMaxFileSize - The maximum file size to cache a document # # mod_cache.c # CacheEnable - A cache type and partial URL prefix below which caching is enabled # CacheDisable - A partial URL prefix below which caching is disabled # CacheMaxExpire - The maximum time in seconds to cache a document # CacheDefaultExpire - The default time in seconds to cache a document # CacheIgnoreNoLastMod - Ignore Responses where there is no Last Modified Header # CacheIgnoreCacheControl - Ignore requests from the client for uncached content # CacheStorePrivate - Ignore 'Cache-Control: private' and store private content # CacheStoreNoStore - Ignore 'Cache-Control: no-store' and store sensitive content # CacheIgnoreHeaders - A space separated list of headers that should not be stored by the cache # CacheIgnoreQueryString - Ignore query-string when caching # CacheIgnoreURLSessionIdentifiers - A space separated list of session identifiers that should be ignored for creating the key of the cached entity. # CacheLastModifiedFactor - The factor used to estimate Expires date from LastModified date # CacheLock - Enable or disable the thundering herd lock. # CacheLockPath - The thundering herd lock path. Defaults to the '/mod_cache-lock' directory in the system temp directory. # CacheLockMaxAge - Maximum age of any thundering herd lock. # # mod_file_cache.c # cachefile - A space separated list of files to add to the file handle cache at config time # mmapfile - A space separated list of files to mmap at config time # # mod_auth_digest.c # AuthName - The authentication realm (e.g. "Members Only") # AuthDigestProvider - specify the auth providers for a directory or location # AuthDigestQop - A list of quality-of-protection options # AuthDigestNonceLifetime - Maximum lifetime of the server nonce (seconds) # AuthDigestNonceFormat - The format to use when generating the server nonce # AuthDigestNcCheck - Whether or not to check the nonce-count sent by the client # AuthDigestAlgorithm - The algorithm used for the hash calculation # AuthDigestDomain - A list of URI's which belong to the same protection space as the current URI # AuthDigestShmemSize - The amount of shared memory to allocate for keeping track of clients # # mod_auth_basic.c # AuthBasicProvider - specify the auth providers for a directory or location # AuthBasicAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules if the UserID is not known to this module # # mod_authz_default.c # AuthzDefaultAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules. (default is On.) # # mod_authz_owner.c # AuthzOwnerAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules. (default is On.) # # mod_authz_dbm.c # AuthDBMGroupFile - database file containing group names and member user IDs # AuthzDBMType - what type of DBM file the group file is # AuthzDBMAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules, if the group required is not found or empty, or the user is not in the required groups. (default is On.) # # mod_authz_user.c # AuthzUserAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules if the 'require user' or 'require valid-user' statement is not met. (default: On). # # mod_authz_groupfile.c # AuthGroupFile - text file containing group names and member user IDs # AuthzGroupFileAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules if the 'require group' fails. (default is On). # # mod_authz_host.c # order - 'allow,deny', 'deny,allow', or 'mutual-failure' # allow - 'from' followed by hostnames or IP-address wildcards # deny - 'from' followed by hostnames or IP-address wildcards # # mod_authn_alias.c # - Container for authentication directives grouped under a provider alias # # mod_authn_default.c # AuthDefaultAuthoritative - Set to 'Off' to allow access control to be passed along to lower modules if the UserID is not known to this module. (default is On). # # mod_authn_dbd.c # AuthDBDUserPWQuery - Query used to fetch password for user # AuthDBDUserRealmQuery - Query used to fetch password for user+realm # # mod_authn_anon.c # Anonymous - a space-separated list of user IDs # Anonymous_MustGiveEmail - Limited to 'on' or 'off' # Anonymous_NoUserId - Limited to 'on' or 'off' # Anonymous_VerifyEmail - Limited to 'on' or 'off' # Anonymous_LogEmail - Limited to 'on' or 'off' # # mod_authn_dbm.c # AuthDBMUserFile - dbm database file containing user IDs and passwords # AuthDBMType - what type of DBM file the user file is # # mod_authn_file.c # AuthUserFile - text file containing user IDs and passwords # # mod_so.c # LoadFile - shared object file or library to load into the server at runtime # # http_core.c # KeepAliveTimeout - Keep-Alive timeout duration (sec) # MaxKeepAliveRequests - Maximum number of Keep-Alive requests per connection, or 0 for infinite # KeepAlive - Whether persistent connections should be On or Off # # prefork.c # User - Effective user id for this server # Group - Effective group id for this server # ChrootDir - The directory to chroot(2) into # ListenBacklog - Maximum length of the queue of pending connections, as used by listen(2) # Listen - A port number or a numeric IP address and a port number, and an optional protocol # SendBufferSize - Send buffer size in bytes # ReceiveBufferSize - Receive buffer size in bytes # StartServers - Number of child processes launched at server startup # MinSpareServers - Minimum number of idle children, to handle request spikes # MaxSpareServers - Maximum number of idle children # MaxClients - Maximum number of children alive at the same time # ServerLimit - Maximum value of MaxClients for this run of Apache # GracefulShutdownTimeout - Maximum time in seconds to wait for child processes to complete transactions during shutdown # # core.c # - Container for directives affecting resources located in the specified directories # - Container for directives affecting resources accessed through the specified URL paths # - Container to map directives to a particular virtual host, takes one or more host addresses # - Container for directives affecting files matching specified patterns # - Container for authentication directives when accessed using specified HTTP methods # - Container for authentication directives to be applied when any HTTP method other than those specified is used to access the resource # - Container for directives based on existance of specified modules # - Container for directives based on existance of command line defines # - Container for directives affecting resources located in the specified directories # - Container for directives affecting resources accessed through the specified URL paths # - Container for directives affecting files matching specified patterns # AuthType - An HTTP authorization type (e.g., "Basic") # AuthName - The authentication realm (e.g. "Members Only") # Require - Selects which authenticated users or groups may access a protected space # Satisfy - access policy if both allow and require used ('all' or 'any') # AddDefaultCharset - The name of the default charset to add to any Content-Type without one or 'Off' to disable # AcceptPathInfo - Set to on or off for PATH_INFO to be accepted by handlers, or default for the per-handler preference # AccessFileName - Name(s) of per-directory config files (default: .htaccess) # DocumentRoot - Root directory of the document tree # ErrorDocument - Change responses for HTTP errors # AllowOverride - Controls what groups of directives can be configured by per-directory config files # Options - Set a number of attributes for a given directory # DefaultType - the default MIME type for untypable files # FileETag - Specify components used to construct a file's ETag # EnableMMAP - Controls whether memory-mapping may be used to read files # EnableSendfile - Controls whether sendfile may be used to transmit files # Protocol - Set the Protocol for httpd to use. # AcceptFilter - Set the Accept Filter to use for a protocol # Port - Port was replaced with Listen in Apache 2.0 # HostnameLookups - "on" to enable, "off" to disable reverse DNS lookups, or "double" to enable double-reverse DNS lookups # ServerAdmin - The email address of the server administrator # ServerName - The hostname and port of the server # ServerSignature - En-/disable server signature (on|off|email) # ServerRoot - Common directory of server-related files (logs, confs, etc.) # ErrorLog - The filename of the error log # ServerAlias - A name or names alternately used to access the server # ServerPath - The pathname the server can be reached at # Timeout - Timeout duration (sec) # ContentDigest - whether or not to send a Content-MD5 header with each request # UseCanonicalName - How to work out the ServerName : Port when constructing URLs # UseCanonicalPhysicalPort - Whether to use the physical Port when constructing URLs # Include - Name of the config file to be included # LogLevel - Level of verbosity in error logging # NameVirtualHost - A numeric IP address:port, or the name of a host # ServerTokens - Determine tokens displayed in the Server: header - Min(imal), OS or Full # LimitRequestLine - Limit on maximum size of an HTTP request line # LimitRequestFieldsize - Limit on maximum size of an HTTP request header field # LimitRequestFields - Limit (0 = unlimited) on max number of header fields in a request message # LimitRequestBody - Limit (in bytes) on maximum size of request message body # LimitXMLRequestBody - Limit (in bytes) on maximum size of an XML-based request body # RLimitCPU - Soft/hard limits for max CPU usage in seconds # RLimitMEM - Soft/hard limits for max memory usage per process # RLimitNPROC - soft/hard limits for max number of processes per uid # LimitInternalRecursion - maximum recursion depth of internal redirects and subrequests # ForceType - a mime type that overrides other configured type # SetHandler - a handler name that overrides any other configured handler # SetOutputFilter - filter (or ; delimited list of filters) to be run on the request content # SetInputFilter - filter (or ; delimited list of filters) to be run on the request body # AddOutputFilterByType - output filter name followed by one or more content-types # AllowEncodedSlashes - Allow URLs containing '/' encoded as '%2F' # PidFile - A file for logging the server process ID # ScoreBoardFile - A file for Apache to maintain runtime process management information # LockFile - The lockfile used when Apache needs to lock the accept() call # MaxRequestsPerChild - Maximum number of requests a particular child serves before dying. # CoreDumpDirectory - The location of the directory Apache changes to before dumping core # AcceptMutex - Valid accept mutexes for this platform and MPM are: default, flock, fcntl, sysvsem, posixsem, pthread. # MaxMemFree - Maximum number of 1k blocks a particular childs allocator may hold. # TraceEnable - 'on' (default), 'off' or 'extended' to trace request body content