|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
|
Packit |
90a5c9 |
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
This file is generated from xml source: DO NOT EDIT
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
-->
|
|
Packit |
90a5c9 |
<title>mod_isapi - Apache HTTP Server Version 2.4</title>
|
|
Packit |
90a5c9 |
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
|
Packit |
90a5c9 |
<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" />
|
|
Packit |
90a5c9 |
<script src="../style/scripts/prettify.min.js" type="text/javascript">
|
|
Packit |
90a5c9 |
</script>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
|
Packit |
90a5c9 |
<body>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossary | Sitemap
|
|
Packit |
90a5c9 |
Apache HTTP Server Version 2.4
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache > HTTP Server > Documentation > Version 2.4 > Modules
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache Module mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Available Languages: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module Identifier:isapi_module
|
|
Packit |
90a5c9 |
Source File:mod_isapi.c
|
|
Packit |
90a5c9 |
Compatibility:Win32 only
|
|
Packit |
90a5c9 |
Summary
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
This module implements the Internet Server extension API. It
|
|
Packit |
90a5c9 |
allows Internet Server extensions (e.g. ISAPI .dll
|
|
Packit |
90a5c9 |
modules) to be served by Apache for Windows, subject to the
|
|
Packit |
90a5c9 |
noted restrictions.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
ISAPI extension modules (.dll files) are written by third
|
|
Packit |
90a5c9 |
parties. The Apache Group does not author these modules, so we
|
|
Packit |
90a5c9 |
provide no support for them. Please contact the ISAPI's author
|
|
Packit |
90a5c9 |
directly if you are experiencing problems running their ISAPI
|
|
Packit |
90a5c9 |
extension. Please do not post such problems to
|
|
Packit |
90a5c9 |
Apache's lists or bug reporting pages.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Topics
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Usage
|
|
Packit |
90a5c9 |
Additional Notes
|
|
Packit |
90a5c9 |
Programmer's Journal
|
|
Packit |
90a5c9 |
Directives
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
ISAPIAppendLogToErrors
|
|
Packit |
90a5c9 |
ISAPIAppendLogToQuery
|
|
Packit |
90a5c9 |
ISAPICacheFile
|
|
Packit |
90a5c9 |
ISAPIFakeAsync
|
|
Packit |
90a5c9 |
ISAPILogNotSupported
|
|
Packit |
90a5c9 |
ISAPIReadAheadBuffer
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Bugfix checklistSee also
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Comments
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
In the server configuration file, use
|
|
Packit |
90a5c9 |
the AddHandler directive to
|
|
Packit |
90a5c9 |
associate ISAPI files with the isapi-handler handler, and map
|
|
Packit |
90a5c9 |
it to them with their file extensions. To enable any .dll file to be
|
|
Packit |
90a5c9 |
processed as an ISAPI extension, edit the httpd.conf file and add the
|
|
Packit |
90a5c9 |
following line:
|
|
Packit |
90a5c9 |
AddHandler isapi-handler .dll
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
In older versions of the Apache server,
|
|
Packit |
90a5c9 |
isapi-isa was the proper handler name, rather than
|
|
Packit |
90a5c9 |
isapi-handler . As of 2.3 development versions of the Apache
|
|
Packit |
90a5c9 |
server, isapi-isa is no longer valid. You will need to
|
|
Packit |
90a5c9 |
change your configuration to use isapi-handler
|
|
Packit |
90a5c9 |
instead.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
There is no capability within the Apache server to leave a
|
|
Packit |
90a5c9 |
requested module loaded. However, you may preload and keep a
|
|
Packit |
90a5c9 |
specific module loaded by using the following syntax in your
|
|
Packit |
90a5c9 |
httpd.conf:
|
|
Packit |
90a5c9 |
ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Whether or not you have preloaded an ISAPI extension, all
|
|
Packit |
90a5c9 |
ISAPI extensions are governed by the same permissions and
|
|
Packit |
90a5c9 |
restrictions as CGI scripts. That is, Options ExecCGI must be set for the
|
|
Packit |
90a5c9 |
directory that contains the ISAPI .dll file.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Review the Additional Notes and the Programmer's Journal for additional details
|
|
Packit |
90a5c9 |
and clarification of the specific ISAPI support offered by
|
|
Packit |
90a5c9 |
mod_isapi .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache's ISAPI implementation conforms to all of the ISAPI
|
|
Packit |
90a5c9 |
2.0 specification, except for some "Microsoft-specific"
|
|
Packit |
90a5c9 |
extensions dealing with asynchronous I/O. Apache's I/O model
|
|
Packit |
90a5c9 |
does not allow asynchronous reading and writing in a manner
|
|
Packit |
90a5c9 |
that the ISAPI could access. If an ISA tries to access
|
|
Packit |
90a5c9 |
unsupported features, including async I/O, a message is placed
|
|
Packit |
90a5c9 |
in the error log to help with debugging. Since these messages
|
|
Packit |
90a5c9 |
can become a flood, the directive ISAPILogNotSupported
|
|
Packit |
90a5c9 |
Off exists to quiet this noise.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Some servers, like Microsoft IIS, load the ISAPI extension
|
|
Packit |
90a5c9 |
into the server and keep it loaded until memory usage is too
|
|
Packit |
90a5c9 |
high, or unless configuration options are specified. Apache
|
|
Packit |
90a5c9 |
currently loads and unloads the ISAPI extension each time it is
|
|
Packit |
90a5c9 |
requested, unless the ISAPICacheFile directive is specified.
|
|
Packit |
90a5c9 |
This is inefficient, but Apache's memory model makes this the
|
|
Packit |
90a5c9 |
most effective method. Many ISAPI modules are subtly
|
|
Packit |
90a5c9 |
incompatible with the Apache server, and unloading these
|
|
Packit |
90a5c9 |
modules helps to ensure the stability of the server.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Also, remember that while Apache supports ISAPI Extensions,
|
|
Packit |
90a5c9 |
it does not support ISAPI Filters. Support for
|
|
Packit |
90a5c9 |
filters may be added at a later date, but no support is planned
|
|
Packit |
90a5c9 |
at this time.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
If you are programming Apache 2.0 mod_isapi
|
|
Packit |
90a5c9 |
modules, you must limit your calls to ServerSupportFunction
|
|
Packit |
90a5c9 |
to the following directives:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_SEND_URL_REDIRECT_RESP
|
|
Packit |
90a5c9 |
Redirect the user to another location.
|
|
Packit |
90a5c9 |
This must be a fully qualified URL (e.g.
|
|
Packit |
90a5c9 |
http://server/location ).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_SEND_URL
|
|
Packit |
90a5c9 |
Redirect the user to another location.
|
|
Packit |
90a5c9 |
This cannot be a fully qualified URL, you are not allowed to
|
|
Packit |
90a5c9 |
pass the protocol or a server name (e.g. simply
|
|
Packit |
90a5c9 |
/location ).
|
|
Packit |
90a5c9 |
This redirection is handled by the server, not the
|
|
Packit |
90a5c9 |
browser.
|
|
Packit |
90a5c9 |
Warning
|
|
Packit |
90a5c9 |
In their recent documentation, Microsoft appears to have
|
|
Packit |
90a5c9 |
abandoned the distinction between the two
|
|
Packit |
90a5c9 |
HSE_REQ_SEND_URL functions. Apache continues to treat
|
|
Packit |
90a5c9 |
them as two distinct functions with different requirements
|
|
Packit |
90a5c9 |
and behaviors.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_SEND_RESPONSE_HEADER
|
|
Packit |
90a5c9 |
Apache accepts a response body following the header if it
|
|
Packit |
90a5c9 |
follows the blank line (two consecutive newlines) in the
|
|
Packit |
90a5c9 |
headers string argument. This body cannot contain NULLs,
|
|
Packit |
90a5c9 |
since the headers argument is NULL terminated.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_DONE_WITH_SESSION
|
|
Packit |
90a5c9 |
Apache considers this a no-op, since the session will be
|
|
Packit |
90a5c9 |
finished when the ISAPI returns from processing.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_MAP_URL_TO_PATH
|
|
Packit |
90a5c9 |
Apache will translate a virtual name to a physical
|
|
Packit |
90a5c9 |
name.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_APPEND_LOG_PARAMETER
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
This logged message may be captured in any of the following
|
|
Packit |
90a5c9 |
logs:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
in the \"%{isapi-parameter}n\" component in a
|
|
Packit |
90a5c9 |
CustomLog
|
|
Packit |
90a5c9 |
directive
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
in the %q log component with the
|
|
Packit |
90a5c9 |
ISAPIAppendLogToQuery
|
|
Packit |
90a5c9 |
On directive
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
in the error log with the ISAPIAppendLogToErrors On directive
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The first option, the %{isapi-parameter}n component,
|
|
Packit |
90a5c9 |
is always available and preferred.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_IS_KEEP_CONN
|
|
Packit |
90a5c9 |
Will return the negotiated Keep-Alive status.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_SEND_RESPONSE_HEADER_EX
|
|
Packit |
90a5c9 |
Will behave as documented, although the fKeepConn
|
|
Packit |
90a5c9 |
flag is ignored.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
HSE_REQ_IS_CONNECTED
|
|
Packit |
90a5c9 |
Will report false if the request has been aborted.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache returns FALSE to any unsupported call to
|
|
Packit |
90a5c9 |
ServerSupportFunction , and sets the
|
|
Packit |
90a5c9 |
GetLastError value to
|
|
Packit |
90a5c9 |
ERROR_INVALID_PARAMETER .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
ReadClient retrieves the request body exceeding the
|
|
Packit |
90a5c9 |
initial buffer (defined by ISAPIReadAheadBuffer ). Based on the
|
|
Packit |
90a5c9 |
ISAPIReadAheadBuffer setting (number of bytes
|
|
Packit |
90a5c9 |
to buffer prior to calling the ISAPI handler) shorter requests are sent
|
|
Packit |
90a5c9 |
complete to the extension when it is invoked. If the request is
|
|
Packit |
90a5c9 |
longer, the ISAPI extension must use ReadClient to
|
|
Packit |
90a5c9 |
retrieve the remaining request body.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
WriteClient is supported, but only with the
|
|
Packit |
90a5c9 |
HSE_IO_SYNC flag or no option flag (value of
|
|
Packit |
90a5c9 |
0 ). Any other WriteClient request
|
|
Packit |
90a5c9 |
will be rejected with a return value of FALSE , and a
|
|
Packit |
90a5c9 |
GetLastError value of
|
|
Packit |
90a5c9 |
ERROR_INVALID_PARAMETER .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
GetServerVariable is supported, although extended server
|
|
Packit |
90a5c9 |
variables do not exist (as defined by other servers.) All the
|
|
Packit |
90a5c9 |
usual Apache CGI environment variables are available from
|
|
Packit |
90a5c9 |
GetServerVariable , as well as the ALL_HTTP
|
|
Packit |
90a5c9 |
and ALL_RAW values.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Since httpd 2.0, mod_isapi supports additional
|
|
Packit |
90a5c9 |
features introduced in later versions of the ISAPI specification,
|
|
Packit |
90a5c9 |
as well as limited emulation of async I/O and the
|
|
Packit |
90a5c9 |
TransmitFile semantics. Apache httpd also supports preloading
|
|
Packit |
90a5c9 |
ISAPI .dlls for performance.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:Record HSE_APPEND_LOG_PARAMETER requests from
|
|
Packit |
90a5c9 |
ISAPI extensions to the error log
|
|
Packit |
90a5c9 |
Syntax:ISAPIAppendLogToErrors on|off
|
|
Packit |
90a5c9 |
Default:ISAPIAppendLogToErrors off
|
|
Packit |
90a5c9 |
Context:server config, virtual host, directory, .htaccess
|
|
Packit |
90a5c9 |
Override:FileInfo
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Record HSE_APPEND_LOG_PARAMETER requests from ISAPI
|
|
Packit |
90a5c9 |
extensions to the server error log.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:Record HSE_APPEND_LOG_PARAMETER requests from
|
|
Packit |
90a5c9 |
ISAPI extensions to the query field
|
|
Packit |
90a5c9 |
Syntax:ISAPIAppendLogToQuery on|off
|
|
Packit |
90a5c9 |
Default:ISAPIAppendLogToQuery on
|
|
Packit |
90a5c9 |
Context:server config, virtual host, directory, .htaccess
|
|
Packit |
90a5c9 |
Override:FileInfo
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Record HSE_APPEND_LOG_PARAMETER requests from ISAPI
|
|
Packit |
90a5c9 |
extensions to the query field (appended to the CustomLog %q
|
|
Packit |
90a5c9 |
component).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:ISAPI .dll files to be loaded at startup
|
|
Packit |
90a5c9 |
Syntax:ISAPICacheFile file-path [file-path]
|
|
Packit |
90a5c9 |
...
|
|
Packit |
90a5c9 |
Context:server config, virtual host
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Specifies a space-separated list of file names to be loaded
|
|
Packit |
90a5c9 |
when the Apache server is launched, and remain loaded until the
|
|
Packit |
90a5c9 |
server is shut down. This directive may be repeated for every
|
|
Packit |
90a5c9 |
ISAPI .dll file desired. The full path name of each file should
|
|
Packit |
90a5c9 |
be specified. If the path name is not absolute, it will be treated
|
|
Packit |
90a5c9 |
relative to ServerRoot .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:Fake asynchronous support for ISAPI callbacks
|
|
Packit |
90a5c9 |
Syntax:ISAPIFakeAsync on|off
|
|
Packit |
90a5c9 |
Default:ISAPIFakeAsync off
|
|
Packit |
90a5c9 |
Context:server config, virtual host, directory, .htaccess
|
|
Packit |
90a5c9 |
Override:FileInfo
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
While set to on, asynchronous support for ISAPI callbacks is
|
|
Packit |
90a5c9 |
simulated.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:Log unsupported feature requests from ISAPI
|
|
Packit |
90a5c9 |
extensions
|
|
Packit |
90a5c9 |
Syntax:ISAPILogNotSupported on|off
|
|
Packit |
90a5c9 |
Default:ISAPILogNotSupported off
|
|
Packit |
90a5c9 |
Context:server config, virtual host, directory, .htaccess
|
|
Packit |
90a5c9 |
Override:FileInfo
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Logs all requests for unsupported features from ISAPI
|
|
Packit |
90a5c9 |
extensions in the server error log. This may help administrators
|
|
Packit |
90a5c9 |
to track down problems. Once set to on and all desired ISAPI modules
|
|
Packit |
90a5c9 |
are functioning, it should be set back to off.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Description:Size of the Read Ahead Buffer sent to ISAPI
|
|
Packit |
90a5c9 |
extensions
|
|
Packit |
90a5c9 |
Syntax:ISAPIReadAheadBuffer size
|
|
Packit |
90a5c9 |
Default:ISAPIReadAheadBuffer 49152
|
|
Packit |
90a5c9 |
Context:server config, virtual host, directory, .htaccess
|
|
Packit |
90a5c9 |
Override:FileInfo
|
|
Packit |
90a5c9 |
Status:Base
|
|
Packit |
90a5c9 |
Module:mod_isapi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Defines the maximum size of the Read Ahead Buffer sent to
|
|
Packit |
90a5c9 |
ISAPI extensions when they are initially invoked. All remaining
|
|
Packit |
90a5c9 |
data must be retrieved using the ReadClient callback; some
|
|
Packit |
90a5c9 |
ISAPI extensions may not support the ReadClient function.
|
|
Packit |
90a5c9 |
Refer questions to the ISAPI extension's author.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Available Languages: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko
|
|
Packit |
90a5c9 |
Notice: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 mailing lists.
|
|
Packit |
90a5c9 |
<script type="text/javascript">
|
|
Packit |
90a5c9 |
var comments_shortname = 'httpd';
|
|
Packit |
90a5c9 |
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_isapi.html';
|
|
Packit |
90a5c9 |
(function(w, d) {
|
|
Packit |
90a5c9 |
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
var s = d.createElement('script');
|
|
Packit |
90a5c9 |
s.type = 'text/javascript';
|
|
Packit |
90a5c9 |
s.async = true;
|
|
Packit |
90a5c9 |
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
|
Packit |
90a5c9 |
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
else {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
})(window, document);
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
Copyright 2018 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossary | Sitemap <script type="text/javascript">
|
|
Packit |
90a5c9 |
if (typeof(prettyPrint) !== 'undefined') {
|
|
Packit |
90a5c9 |
prettyPrint();
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
</body></html>
|