summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/httpd/ABOUT_APACHE2
-rw-r--r--usr.sbin/httpd/Announcement89
-rw-r--r--usr.sbin/httpd/conf/httpd.conf-dist-nw10
-rw-r--r--usr.sbin/httpd/conf/mime.types2
-rw-r--r--usr.sbin/httpd/config.layout28
-rw-r--r--usr.sbin/httpd/configure2
-rw-r--r--usr.sbin/httpd/htdocs/index.html.lb.utf839
-rw-r--r--usr.sbin/httpd/htdocs/index.html.lu39
-rw-r--r--usr.sbin/httpd/htdocs/index.html.zh46
-rw-r--r--usr.sbin/httpd/htdocs/index.html.zh.Big546
-rw-r--r--usr.sbin/httpd/htdocs/manual/bind.html.ja.jis141
-rw-r--r--usr.sbin/httpd/htdocs/manual/cgi_path.html.ja.jis108
-rw-r--r--usr.sbin/httpd/htdocs/manual/cygwin.html94
-rw-r--r--usr.sbin/httpd/htdocs/manual/dso.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/env.html.ja.jis25
-rw-r--r--usr.sbin/httpd/htdocs/manual/howto/auth.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/howto/ssi.html.en2
-rw-r--r--usr.sbin/httpd/htdocs/manual/howto/ssi.html.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/index.html.ja.jis6
-rw-r--r--usr.sbin/httpd/htdocs/manual/install-tpf.html147
-rw-r--r--usr.sbin/httpd/htdocs/manual/logs.html9
-rw-r--r--usr.sbin/httpd/htdocs/manual/misc/FAQ.html77
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/core.html.en112
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/core.html.html112
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.ja.jis557
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis10
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.ja.jis267
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_access.html346
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_access.html.en346
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_access.html.html350
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_actions.html159
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.en163
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.html167
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.ja.jis164
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_alias.html7
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_asis.html103
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.en103
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.html107
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.ja.jis102
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html13
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html228
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.en228
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.html232
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis229
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis2
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_info.html113
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_info.html.en113
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_info.html.html117
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_info.html.ja.jis112
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html9
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en4
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html4
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis1396
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis432
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html4
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html5
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis703
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_so.html192
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_so.html.en196
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_so.html.html200
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_so.html.ja.jis196
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_speling.html133
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.en133
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.html137
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.ja.jis132
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html216
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.en216
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.html220
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis213
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html150
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.en150
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.html154
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis136
-rw-r--r--usr.sbin/httpd/htdocs/manual/mod/module-dict.html.ja.jis241
-rw-r--r--usr.sbin/httpd/htdocs/manual/netware.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/new_features_1_3.html.ja.jis8
-rw-r--r--usr.sbin/httpd/htdocs/manual/process-model.html77
-rw-r--r--usr.sbin/httpd/htdocs/manual/process-model.html.en77
-rw-r--r--usr.sbin/httpd/htdocs/manual/process-model.html.html81
-rw-r--r--usr.sbin/httpd/htdocs/manual/process-model.html.ja.jis78
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/apachectl.html106
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/apachectl.html.en106
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/apachectl.html.html110
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/apachectl.html.ja.jis105
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/htpasswd.html185
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.en185
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.html189
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.ja.jis184
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/httpd.html141
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/httpd.html.en141
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/httpd.html.html145
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/httpd.html.ja.jis138
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis95
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/suexec.html52
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/suexec.html.en52
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/suexec.html.html56
-rw-r--r--usr.sbin/httpd/htdocs/manual/programs/suexec.html.ja.jis51
-rw-r--r--usr.sbin/httpd/htdocs/manual/readme-tpf.html6
-rw-r--r--usr.sbin/httpd/htdocs/manual/sections.html165
-rw-r--r--usr.sbin/httpd/htdocs/manual/sections.html.en165
-rw-r--r--usr.sbin/httpd/htdocs/manual/sections.html.html169
-rw-r--r--usr.sbin/httpd/htdocs/manual/sections.html.ja.jis165
-rw-r--r--usr.sbin/httpd/htdocs/manual/server-wide.html.ja.jis483
-rw-r--r--usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis1093
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/examples.html2
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html83
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.en83
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.html87
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis82
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/index.html.ja.jis143
-rw-r--r--usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis383
-rw-r--r--usr.sbin/httpd/htdocs/manual/win_compiling.html269
-rw-r--r--usr.sbin/httpd/htdocs/manual/win_compiling.html.en273
-rw-r--r--usr.sbin/httpd/htdocs/manual/win_compiling.html.html277
-rw-r--r--usr.sbin/httpd/htdocs/manual/win_compiling.html.ja.jis272
-rw-r--r--usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis583
-rw-r--r--usr.sbin/httpd/htdocs/manual/windows.html633
-rw-r--r--usr.sbin/httpd/htdocs/manual/windows.html.en633
-rw-r--r--usr.sbin/httpd/htdocs/manual/windows.html.ja.jis644
-rw-r--r--usr.sbin/httpd/src/ApacheCore.def3
-rw-r--r--usr.sbin/httpd/src/ApacheCoreOS2.def57
-rw-r--r--usr.sbin/httpd/src/CHANGES131
-rw-r--r--usr.sbin/httpd/src/CHANGES.SSL29
-rw-r--r--usr.sbin/httpd/src/Configure8
-rw-r--r--usr.sbin/httpd/src/Makefile.tmpl10
-rw-r--r--usr.sbin/httpd/src/ap/Makefile.tmpl7
-rw-r--r--usr.sbin/httpd/src/ap/ap.dsp7
-rw-r--r--usr.sbin/httpd/src/helpers/binbuild.sh4
-rw-r--r--usr.sbin/httpd/src/include/ap.h4
-rw-r--r--usr.sbin/httpd/src/include/ap_config.h4
-rw-r--r--usr.sbin/httpd/src/include/ap_mmn.h4
-rw-r--r--usr.sbin/httpd/src/include/http_protocol.h5
-rw-r--r--usr.sbin/httpd/src/include/httpd.h14
-rw-r--r--usr.sbin/httpd/src/main/gen_test_char.c36
-rw-r--r--usr.sbin/httpd/src/main/http_core.c6
-rw-r--r--usr.sbin/httpd/src/main/http_log.c12
-rw-r--r--usr.sbin/httpd/src/main/http_main.c101
-rw-r--r--usr.sbin/httpd/src/main/http_protocol.c85
-rw-r--r--usr.sbin/httpd/src/main/http_request.c2
-rw-r--r--usr.sbin/httpd/src/main/util.c100
-rw-r--r--usr.sbin/httpd/src/main/util_uri.c4
-rw-r--r--usr.sbin/httpd/src/modules/experimental/mod_auth_digest.c6
-rw-r--r--usr.sbin/httpd/src/modules/proxy/mod_proxy.c245
-rw-r--r--usr.sbin/httpd/src/modules/proxy/mod_proxy.h3
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_cache.c948
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_connect.c119
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_ftp.c528
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_http.c358
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_util.c573
-rw-r--r--usr.sbin/httpd/src/modules/ssl/libssl.version2
-rw-r--r--usr.sbin/httpd/src/modules/ssl/ssl_engine_init.c24
-rw-r--r--usr.sbin/httpd/src/modules/ssl/ssl_engine_kernel.c35
-rw-r--r--usr.sbin/httpd/src/modules/ssl/ssl_engine_rand.c9
-rw-r--r--usr.sbin/httpd/src/modules/ssl/ssl_engine_vars.c4
-rw-r--r--usr.sbin/httpd/src/modules/ssl/ssl_scache_shmcb.c4
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_cgi.c2
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_log_config.c29
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_mime_magic.c8
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_rewrite.c8
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheCore.imp2
-rw-r--r--usr.sbin/httpd/src/os/netware/mod_log_nw.c18
-rw-r--r--usr.sbin/httpd/src/os/netware/os.h5
-rw-r--r--usr.sbin/httpd/src/os/netware/test_char.h55
-rw-r--r--usr.sbin/httpd/src/os/os2/os.h3
-rw-r--r--usr.sbin/httpd/src/os/tpf/os.c46
-rw-r--r--usr.sbin/httpd/src/os/tpf/os.h5
-rw-r--r--usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl92
-rw-r--r--usr.sbin/httpd/src/os/unix/os.c8
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_isapi.c2
-rw-r--r--usr.sbin/httpd/src/os/win32/os.h6
-rw-r--r--usr.sbin/httpd/src/support/ab.83
-rw-r--r--usr.sbin/httpd/src/support/ab.c212
-rw-r--r--usr.sbin/httpd/src/support/apxs.pl25
-rw-r--r--usr.sbin/httpd/src/support/httpd.exp4
175 files changed, 15688 insertions, 8447 deletions
diff --git a/usr.sbin/httpd/ABOUT_APACHE b/usr.sbin/httpd/ABOUT_APACHE
index 81034c61023..4fbb888e142 100644
--- a/usr.sbin/httpd/ABOUT_APACHE
+++ b/usr.sbin/httpd/ABOUT_APACHE
@@ -80,7 +80,7 @@ Current Apache Group in alphabetical order as of 18 December 2001:
Mark J. Cox Red Hat, England
Lars Eilebrecht Freelance Consultant, Munich, Germany
Ralf S. Engelschall Cable & Wireless Deutschland, Munich, Germany
- Justin Erenkrantz eBuilt, California
+ Justin Erenkrantz University of California, Irvine
Roy T. Fielding Day Software, California
Tony Finch Covalent Technologies, California
Dean Gaudet Transmeta Corporation, California
diff --git a/usr.sbin/httpd/Announcement b/usr.sbin/httpd/Announcement
index 77e7c4fb63a..f9a341d427a 100644
--- a/usr.sbin/httpd/Announcement
+++ b/usr.sbin/httpd/Announcement
@@ -1,33 +1,34 @@
- Apache 1.3.24 Released
+ Apache 1.3.26 Released
The Apache Software Foundation and The Apache Server Project are
- pleased to announce the release of version 1.3.24 of the Apache HTTP
- server. This Announcement notes the significant changes in 1.3.24.
-
- This version of Apache is principally a security and bug fix release.
- A summary of the bug fixes and major new features is given at the end
- of this document. Of particular note is that 1.3.24 addresses and
- fixes the issues noted in CAN-2002-0061 (mitre.org) regarding escaping
- of command line args on Win32. We would like to thank Ory Segal
- <ORY.SEGAL@SANCTUMINC.COM> for discovering and reporting the
+ pleased to announce the release of version 1.3.26 of the Apache HTTP
+ Server. This Announcement notes the significant changes in 1.3.26.
+ Apache 1.3.25 was not released.
+
+ This version of Apache is principally a security and bug fix
+ release. A summary of the bug fixes is given at the end of this document.
+ Of particular note is that 1.3.26 addresses and fixes the issues noted
+ in CAN-2002-0392 (mitre.org) [CERT VU#944335] regarding a vulnerability
+ in the handling of chunked transfer encoding. We would like to thank
+ Mark Litchfield of ngssoftware.com for discovering and reporting the
vulnerability.
- We consider Apache 1.3.24 to be the best version of Apache available
+ We consider Apache 1.3.26 to be the best version of Apache available
and we strongly recommend that users of older versions, especially of
the 1.1.x and 1.2.x family, upgrade as soon as possible. No further
releases will be made in the 1.2.x family.
- Apache 1.3.24 is available for download from
+ Apache 1.3.26 is available for download from
- http://httpd.apache.org/dist/httpd/
+ http://www.apache.org/dist/httpd/
Please see the CHANGES_1.3 file in the same directory for a full list
of changes.
Binary distributions are available from
- http://httpd.apache.org/dist/httpd/binaries/
+ http://www.apache.org/dist/httpd/binaries/
The source and binary distributions are also available via any of the
mirrors listed at
@@ -70,41 +71,53 @@
version, but is of acceptable quality. Win32 stability or security
problems do not reflect on the Unix version.
- Apache 1.3.24 Major changes
+ Apache 1.3.26 Major changes
Security vulnerabilities
- * Fix the security vulnerability noted in CAN-2002-0061 (mitre.org)
- regarding the escaping of command line args on Win32.
- * Prevent invalid client hostnames from appearing in the log file.
-
+ * Fix the security vulnerability noted in CAN-2002-0392 (mitre.org)
+ regarding the handling of chunked transfer encoding.
New features
- The main new features in 1.3.24 (compared to 1.3.23) are:
+ The main new features in 1.3.26 (compared to 1.3.24) are:
- * Various mod_proxy improvements, such as the new ProxyIOBufferSize
- directive.
- * The new ''IgnoreCase' keyword to the IndexOptions directive.
+ * Add some popular types to the mime types magic file.
New features that relate to specific platforms:
- * Added the module mod_log_nw to handle log rotation under NetWare.
+ * Unix: Added a '-F' flag which causes the supervisor process to
+ no longer fork down and detach and instead stay attached to
+ the tty - thus making live for automatic restart and exit checking
+ code easier.
Bugs fixed
- The following bugs were found in Apache 1.3.23 (or earlier) and have
- been fixed in Apache 1.3.24:
-
- * mod_rewrite's 'rnd' was broken and has been fixed.
- * The '-S' option of 'apxs' was not able to handle quotes; also 'apxs'
- is now rebuilt when options are changed.
- * proxy now correctly handles Cookies and X-Cache headers.
-
- The following bugs relate to specific platforms:
-
- * Fixed a problem in TPF when we were using the wrong subpool when
- opening the error log.
- * pthread accept() mutexes on Solaris were broken (since we were
- not linking against pthread)
+ The following bugs were found in Apache 1.3.24 (or earlier) and have
+ been fixed in Apache 1.3.26:
+
+ * Allow child processes sufficient time for cleanups but making
+ ap_select in reclaim_child_processes more "resistant" to
+ signal interupts.
+
+ * Fix for a problem in mod_rewrite which would lead to 400 Bad Request
+ responses for rewriting rules which resulted in a local path.
+ Note: This will also reject invalid requests as issued by
+ Netscape-4.x Roaming Profiles (on a DAV-enabled server)
+
+ * Recognize platform-specific root directories (other than
+ leading slash) in mod_rewrite for filename rewrite rules.
+
+ * Disallow anything but whitespace on the request line after the
+ HTTP/x.y protocol string to prevent arbitrary user input from
+ ending up in the access_log and error_log. Also control characters
+ are now escaped.
+
+ * A large number of fixes in mod_proxy including: adding support
+ for dechunking chunked responses, correcting a timeout problem
+ which would force long or slow POST requests to close after 300
+ seconds, adding "X-Forwarded" headers, dealing correctly with the
+ multiple-cookie header bug, ability to handle unexpected
+ 100-continue responses sent during PUT or POST commands, and a
+ change to tighten up the Server header overwrite bugfix.
diff --git a/usr.sbin/httpd/conf/httpd.conf-dist-nw b/usr.sbin/httpd/conf/httpd.conf-dist-nw
index e9197cb6873..3c25dd6954a 100644
--- a/usr.sbin/httpd/conf/httpd.conf-dist-nw
+++ b/usr.sbin/httpd/conf/httpd.conf-dist-nw
@@ -404,6 +404,16 @@ DefaultType text/plain
HostnameLookups Off
#
+# LogRotateDaily: If set to 'on' logfiles rotate daily.
+# LogRotateInterval s: If set, logfiles rotate after s seconds.
+# The LogRotateDaily and LogRotateInterval directives are mutually
+# exclusive. The rotated log file name adds the date suffix of
+# YYYYMMDD to identify when the log was rotated.
+#
+# LogRotateDaily on
+# LogRotateInterval 86400
+
+#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
diff --git a/usr.sbin/httpd/conf/mime.types b/usr.sbin/httpd/conf/mime.types
index 16c8cbd5cbd..6eab0ff0590 100644
--- a/usr.sbin/httpd/conf/mime.types
+++ b/usr.sbin/httpd/conf/mime.types
@@ -315,6 +315,7 @@ application/x-troff-ms ms
application/x-ustar ustar
application/x-wais-source src
application/x400-bp
+application/xhtml+xml xhtml xht
application/xml
application/xml-dtd
application/xml-external-parsed-entity
@@ -365,6 +366,7 @@ image/prs.btif
image/prs.pti
image/tiff tiff tif
image/vnd.cns.inf2
+image/vnd.djvu djvu djv
image/vnd.dwg
image/vnd.dxf
image/vnd.fastbidsheet
diff --git a/usr.sbin/httpd/config.layout b/usr.sbin/httpd/config.layout
index b7f52109fc8..77b5bd7f8c3 100644
--- a/usr.sbin/httpd/config.layout
+++ b/usr.sbin/httpd/config.layout
@@ -115,7 +115,7 @@
proxycachedir: $runtimedir/proxy
</Layout>
-# RedHat 5.x layout
+# Red Hat Linux 7.x layout
<Layout RedHat>
prefix: /usr
exec_prefix: $prefix
@@ -124,10 +124,10 @@
libexecdir: $prefix/lib/apache
mandir: $prefix/man
sysconfdir: /etc/httpd/conf
- datadir: /home/httpd
+ datadir: /var/www
iconsdir: $datadir/icons
htdocsdir: $datadir/html
- manualdir: $htdocsdir/manual
+ manualdir: $datadir/manual
cgidir: $datadir/cgi-bin
includedir: $prefix/include/apache
localstatedir: /var
@@ -282,3 +282,25 @@
logfiledir: $prefix/logs
proxycachedir: $prefix/proxy
</Layout>
+
+# Cygwin 1.x layout
+<Layout Cygwin>
+ prefix: /usr
+ exec_prefix: $prefix
+ bindir: $prefix/bin
+ sbindir: $prefix/sbin
+ libexecdir: $prefix/lib/apache
+ mandir: $prefix/man
+ sysconfdir: /etc/apache
+ datadir: /var/www
+ iconsdir: $datadir/icons
+ htdocsdir: $datadir/htdocs
+ manualdir: $htdocsdir/manual
+ cgidir: $datadir/cgi-bin
+ includedir: $prefix/include/apache
+ localstatedir: /var
+ runtimedir: $localstatedir/run
+ logfiledir: $localstatedir/log/apache
+ proxycachedir: $localstatedir/cache/apache
+</Layout>
+
diff --git a/usr.sbin/httpd/configure b/usr.sbin/httpd/configure
index fdd51e2ffe9..807d9446c83 100644
--- a/usr.sbin/httpd/configure
+++ b/usr.sbin/httpd/configure
@@ -1267,7 +1267,6 @@ if [ "x$show_layout" = "x1" ]; then
echo " DEFAULT_PIDLOG: ${runtimedir_relative}${thetarget}.pid"
echo " DEFAULT_SCOREBOARD: ${runtimedir_relative}${thetarget}.scoreboard"
echo " DEFAULT_LOCKFILE: ${runtimedir_relative}${thetarget}.lock"
- echo " DEFAULT_XFERLOG: ${logfiledir_relative}access_log"
echo " DEFAULT_ERRORLOG: ${logfiledir_relative}error_log"
echo " TYPES_CONFIG_FILE: ${sysconfdir_relative}mime.types"
echo " SERVER_CONFIG_FILE: ${sysconfdir_relative}${thetarget}.conf"
@@ -1369,7 +1368,6 @@ echo "echo '-DSHARED_CORE_DIR=\"$libexecdir\"'" >>$src/apaci
echo "echo '-DDEFAULT_PIDLOG=\"${runtimedir_relative}${thetarget}.pid\"'" >>$src/apaci
echo "echo '-DDEFAULT_SCOREBOARD=\"${runtimedir_relative}${thetarget}.scoreboard\"'" >>$src/apaci
echo "echo '-DDEFAULT_LOCKFILE=\"${runtimedir_relative}${thetarget}.lock\"'" >>$src/apaci
-echo "echo '-DDEFAULT_XFERLOG=\"${logfiledir_relative}access_log\"'" >>$src/apaci
echo "echo '-DDEFAULT_ERRORLOG=\"${logfiledir_relative}error_log\"'" >>$src/apaci
echo "echo '-DTYPES_CONFIG_FILE=\"${sysconfdir_relative}mime.types\"'" >>$src/apaci
echo "echo '-DSERVER_CONFIG_FILE=\"${sysconfdir_relative}${thetarget}.conf\"'" >>$src/apaci
diff --git a/usr.sbin/httpd/htdocs/index.html.lb.utf8 b/usr.sbin/httpd/htdocs/index.html.lb.utf8
index 58b959789f4..a8c329d6c21 100644
--- a/usr.sbin/httpd/htdocs/index.html.lb.utf8
+++ b/usr.sbin/httpd/htdocs/index.html.lb.utf8
@@ -37,3 +37,42 @@ Apache-powered Web server ze presenteieren. Merci dat Dir Apache benotzt!
</body>
</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <!-- Originally translated by Jean-Luc Widlowski, jean-luc.widlowski@jrc.it Thu Aug 19 13:00:18 GMT 1999 -->
+ <title>Test Page for Apache Installation on Web Site</title>
+<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000">
+
+<center>
+<h1>
+Et huet geklappt! Den Apache Web Server as op d&euml;ser 'Web Site' installeiert!</h1></center>
+Wann Dir die heiten Sait gesit, dann hun d'Proprietairen vun d&euml;ser 'domain'
+elo just d'<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web server</a> software
+mat succ&eacute;s installeiert. Sie mussen allerdengs nach des Decksait
+remplaceieren oder awer de Server op eng aner Sait mat dem richtigen contenu
+em-dirigeieren.
+<br>
+<hr>
+<blockquote>Wann Dir die heiten Sait anstell vun der site die Dir erw&acirc;rt
+hut gesitt, da contacteiert wannechglift den <b>administrator vun dem betraffener
+site.</b> (Versicht &eacute;n email no <tt>&lt;Webmaster@<i>domain</i>&gt;
+</tt><font face="Times New Roman,Times">ze
+schecken.) Obwuel den heiten site </font>Apache software benotzt, as et
+ball secher datt keng Verbindung mat der Apache Group existeiert, also scheckt
+wannechglift keng email iwert desen site oder sein contenu zu den Apache
+Autoren. Falls Dir d&euml;st awer macht, get &auml;ren message&nbsp;
+<b><font size="+2">ignoreiert.</font></b></blockquote>
+
+<hr>
+<p>D'Apache <a href="manual/">documentation</a> ass d&euml;ser Ausgab
+beigef&uuml;cht.
+<p>Dem Webmaster vun dem heitenen site steht et zou dest Bild ob engem
+Apache-powered Web server ze presenteieren. Merci dat Dir Apache benotzt!
+<center><img src="apache_pb.gif" alt="" ></center>
+
+</body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/index.html.lu b/usr.sbin/httpd/htdocs/index.html.lu
index 58b959789f4..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/index.html.lu
+++ b/usr.sbin/httpd/htdocs/index.html.lu
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <!-- Originally translated by Jean-Luc Widlowski, jean-luc.widlowski@jrc.it Thu Aug 19 13:00:18 GMT 1999 -->
- <title>Test Page for Apache Installation on Web Site</title>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-</head>
-<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#000080" alink="#FF0000">
-
-<center>
-<h1>
-Et huet geklappt! Den Apache Web Server as op d&euml;ser 'Web Site' installeiert!</h1></center>
-Wann Dir die heiten Sait gesit, dann hun d'Proprietairen vun d&euml;ser 'domain'
-elo just d'<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web server</a> software
-mat succ&eacute;s installeiert. Sie mussen allerdengs nach des Decksait
-remplaceieren oder awer de Server op eng aner Sait mat dem richtigen contenu
-em-dirigeieren.
-<br>
-<hr>
-<blockquote>Wann Dir die heiten Sait anstell vun der site die Dir erw&acirc;rt
-hut gesitt, da contacteiert wannechglift den <b>administrator vun dem betraffener
-site.</b> (Versicht &eacute;n email no <tt>&lt;Webmaster@<i>domain</i>&gt;
-</tt><font face="Times New Roman,Times">ze
-schecken.) Obwuel den heiten site </font>Apache software benotzt, as et
-ball secher datt keng Verbindung mat der Apache Group existeiert, also scheckt
-wannechglift keng email iwert desen site oder sein contenu zu den Apache
-Autoren. Falls Dir d&euml;st awer macht, get &auml;ren message&nbsp;
-<b><font size="+2">ignoreiert.</font></b></blockquote>
-
-<hr>
-<p>D'Apache <a href="manual/">documentation</a> ass d&euml;ser Ausgab
-beigef&uuml;cht.
-<p>Dem Webmaster vun dem heitenen site steht et zou dest Bild ob engem
-Apache-powered Web server ze presenteieren. Merci dat Dir Apache benotzt!
-<center><img src="apache_pb.gif" alt="" ></center>
-
-</body>
-</html>
diff --git a/usr.sbin/httpd/htdocs/index.html.zh b/usr.sbin/httpd/htdocs/index.html.zh
index 78a3a558184..2f29983c46e 100644
--- a/usr.sbin/httpd/htdocs/index.html.zh
+++ b/usr.sbin/httpd/htdocs/index.html.zh
@@ -44,3 +44,49 @@ Apache ªº
</body>
</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+ <title>¦w¸Ë Apache ªº´ú¸Õºô­¶</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active)-->
+ <body
+ bgcolor="#FFFFFF"
+ text="#000000"
+ link="#0000FF"
+ vlink="#000080"
+ alink="#FF0000"
+ >
+
+
+<p>
+¦pªG§A¥i¥H¬Ý¨£¦¹­¶¡A³oªí¥Ü§Aªº
+<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web Server</a>
+¤w¸g¦w¸Ë¦¨¥\¡C
+§A¥i¥H¼W¥[¤º®e¨ì³o­Ó¥Ø¿ý¡A©Î§â³o­Óºô­¶´«±¼¡C<p>
+
+<p><hr width="50%" size="8">
+
+<h2 align="CENTER">¨S¦³¬Ý¨ì§A·Q¬Ýªººô¯¸¶Ü ?</h2>
+
+<p>
+³o­Óºô­¶¤§©Ò¥H·|¦b³oùØ¡A¨º¬O¦]¬°ºô¯¸ºÞ²zªÌ¤w¸g§ó§ï³o­Óºô¯¸ªº³]©w¡C
+­Y¦³°ÝÃD, ½Ð»P <strong>ºûÅ@³o­Ó¦øªA¾¹ªº¤H­ûÁpµ¸</strong>¡C
+Apache ³nÅé°òª÷·|¡A¤]´N¬O¶}µo³o®M³nÅ骺³æ¦ì¡A»P¦¹ºô¯¸¨ÃµL¥ô¦óÃö«Y¡A
+¦Ó¥B¤]µLªkÀ°§A¸Ñ¨M³]©w¤Wªº°ÝÃD¡C
+
+<p><hr width="50%" size="8">
+
+<p>
+Apache ªº
+<a href="manual/index.html">¤å¥ó</a>
+¤w¸g¥]§t¦b¸Óª©¥»¤¤¡C
+
+<p>
+§A¥i¥H¦b¨Ï¥Î Apache ªººô¯¸¦øªA¾¹¤W¡A¦Û¥Ñªº¨Ï¥Î¤U­±¤§¹Ï¥Ü¡A
+·PÁ±z¨Ï¥Î Apache¡I
+<br><br>
+<div align="CENTER"><img src="apache_pb.gif" alt=""></div>
+
+</body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/index.html.zh.Big5 b/usr.sbin/httpd/htdocs/index.html.zh.Big5
index 78a3a558184..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/index.html.zh.Big5
+++ b/usr.sbin/httpd/htdocs/index.html.zh.Big5
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
- <head>
- <title>¦w¸Ë Apache ªº´ú¸Õºô­¶</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active)-->
- <body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
- >
-
-
-<p>
-¦pªG§A¥i¥H¬Ý¨£¦¹­¶¡A³oªí¥Ü§Aªº
-<a href="http://www.apache.org/foundation/preFAQ.html">Apache Web Server</a>
-¤w¸g¦w¸Ë¦¨¥\¡C
-§A¥i¥H¼W¥[¤º®e¨ì³o­Ó¥Ø¿ý¡A©Î§â³o­Óºô­¶´«±¼¡C<p>
-
-<p><hr width="50%" size="8">
-
-<h2 align="CENTER">¨S¦³¬Ý¨ì§A·Q¬Ýªººô¯¸¶Ü ?</h2>
-
-<p>
-³o­Óºô­¶¤§©Ò¥H·|¦b³oùØ¡A¨º¬O¦]¬°ºô¯¸ºÞ²zªÌ¤w¸g§ó§ï³o­Óºô¯¸ªº³]©w¡C
-­Y¦³°ÝÃD, ½Ð»P <strong>ºûÅ@³o­Ó¦øªA¾¹ªº¤H­ûÁpµ¸</strong>¡C
-Apache ³nÅé°òª÷·|¡A¤]´N¬O¶}µo³o®M³nÅ骺³æ¦ì¡A»P¦¹ºô¯¸¨ÃµL¥ô¦óÃö«Y¡A
-¦Ó¥B¤]µLªkÀ°§A¸Ñ¨M³]©w¤Wªº°ÝÃD¡C
-
-<p><hr width="50%" size="8">
-
-<p>
-Apache ªº
-<a href="manual/index.html">¤å¥ó</a>
-¤w¸g¥]§t¦b¸Óª©¥»¤¤¡C
-
-<p>
-§A¥i¥H¦b¨Ï¥Î Apache ªººô¯¸¦øªA¾¹¤W¡A¦Û¥Ñªº¨Ï¥Î¤U­±¤§¹Ï¥Ü¡A
-·PÁ±z¨Ï¥Î Apache¡I
-<br><br>
-<div align="CENTER"><img src="apache_pb.gif" alt=""></div>
-
-</body>
-</html>
diff --git a/usr.sbin/httpd/htdocs/manual/bind.html.ja.jis b/usr.sbin/httpd/htdocs/manual/bind.html.ja.jis
index 719fb654ac6..4938a43eee8 100644
--- a/usr.sbin/httpd/htdocs/manual/bind.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/bind.html.ja.jis
@@ -139,3 +139,144 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache $B$,;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</title>
+
+ </head>
+ <!-- English revision: 1.17 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center">Apache $B$,;HMQ$9$k%"%I%l%9$H%]!<%H$N@_Dj(B</h1>
+
+ <hr />
+ Apache $B$O5/F0;~$K!"%m!<%+%k$J%^%7%s$N$"$k%]!<%H$*$h$S%"%I%l%9(B
+ $B$KBP$7$F@\B3$7!"%j%/%(%9%H$,Mh$k$N$rBT$A$^$9!#(B
+ $B%G%U%)%k%H$G$O!"%^%7%s>e$N$9$Y$F$N%"%I%l%9!"$*$h$S%5!<%P@_Dj%U%!%$%k$N(B
+ <tt>Port</tt> $B%G%#%l%/%F%#%V$G@_Dj$5$l$?%]!<%H$KBP$7$F(B listen $B$7$^$9!#(B
+ $B$7$+$7!"J#?t$N%]!<%H$r(B listen $B$9$k!";XDj$5$l$?%"%I%l%9$K8B$C$F(B
+ listen $B$9$k!"$"$k$$$O$=$l$i$rAH$_9g$o$;$F@_Dj$9$k$3$H$b2DG=$G$9!#(B
+ $B$3$l$O!"0[$J$k(B IP $B%"%I%l%9!"%[%9%HL>!"%]!<%H$KBP$9$k(B Apache
+ $B$N1~EzJ}K!$r7hDj$9$k%P!<%A%c%k%[%9%H5!G=$HAH$_9g$o$;$F;H$o$l$^$9!#(B
+
+ <p>Apache $B$,(B listen $B$9$k%"%I%l%9$*$h$S%]!<%H$r8BDj$9$k$?$a$K;H$o$l$k(B
+ $B%G%#%l%/%F%#%V$,Fs$D$"$j$^$9!#(B</p>
+
+ <ul>
+ <li><a href="#bindaddress">BindAddress</a>
+ $B$O!"%5!<%P$,C10l$N%"%I%l%9$r(B listen $B$9$k$h$&$K8BDj$7$^$9!#(B
+ $B0[$J$k(B IP $B%"%I%l%9$r(B listen $B$5$;$?J#?t$N(B Apache
+ $B$rF10l%^%7%s>e$GF0:n$5$;$k$3$H$,$G$-$k$h$&$K$9$k$?$a$K;HMQ$G$-$^$9!#(B</li>
+
+ <li><a href="#listen">Listen</a> $B$OC10l$N(B Apache
+ $B%5!<%P$,J#?t$N%"%I%l%9(B/$B%]!<%H$r(B listen $B$9$k$?$a$K;H$o$l$^$9!#(B
+ </li>
+ </ul>
+
+ <h3><a id="bindaddress" name="bindaddress">BindAddress</a></h3>
+ <a href="mod/directive-dict.html#Syntax"
+ rel="Help"><strong>$B9=J8(B:</strong></a> BindAddress <em>[ * |
+ IP $B%"%I%l%9(B | $B%[%9%HL>(B ]</em><br />
+ <a href="mod/directive-dict.html#Default"
+ rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a><code>BindAddress
+ *</code><br />
+ <a href="mod/directive-dict.html#Context"
+ rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>$B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="mod/directive-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a>$B%3%"(B
+
+ <p>$B%5!<%P$r!"FCDj$N%"%I%l%9$@$1$K%P%$%s%I$7$^$9!#(B
+ $B0z?t$,(B * ($B%"%9%?%j%9%/(B) $B$N>l9g$O!"8=:_%5!<%P>e$GM-8z$J$9$Y$F$N(B
+ $B%$%s%?%U%'!<%9$K%P%$%s%I$7$^$9!#%]!<%H$O(B <tt>Port</tt>
+ $B%G%#%l%/%F%#%V$G$N@_Dj$,;H$o$l$^$9!#(BBindAddress $B$O0l$D$@$1;H$($^$9!#(B
+ </p>
+
+ <h3><a id="listen" name="listen">Listen</a></h3>
+ <a href="mod/directive-dict.html#Syntax"
+ rel="Help"><strong>$B9=J8(B:</strong></a>Listen <em>[$B%]!<%H(B |
+ IP $B%"%I%l%9(B:$B%]!<%H(B ]</em><br />
+ <a href="mod/directive-dict.html#Default"
+ rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a>
+ <code>none</code><br />
+ <a href="mod/directive-dict.html#Context"
+ rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>$B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="mod/directive-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a>$B%3%"(B
+
+ <p><tt>Listen</tt> $B%G%#%l%/%F%#%V$O(B <tt>BindAddress</tt> $B$*$h$S(B
+ <tt>Port</tt> $B%G%#%l%/%F%#%V$NBe$o$j$H$7$F;H$&$3$H$b$G$-$^$9!#(B
+ $B$3$l$K$h$jFCDj$N%]!<%H$^$?$O%"%I%l%9$H%]!<%H$NAH9g$o$;$KBP$7$F$N(B
+ $B%j%/%(%9%H$r%5!<%P$,<u$1IU$1$k(B (listen $B$9$k(B) $B$h$&$K$7$^$9!#(B
+ $B%]!<%HHV9f$@$1$N!":G=i$N=q<0$r;H$C$?>l9g!"(B<tt>Port</tt>
+ $B%G%#%l%/%F%#%V$G@_Dj$5$l$?%]!<%H$G$O$J$/%5!<%P>e$GM-8z$J$9$Y$F$N(B
+ $B%$%s%?%U%'!<%9$KBP$7$F!"$3$3$G@_Dj$5$l$?%]!<%H$r(B listen $B$7$^$9!#(B
+ $B%]!<%H$H6&$K(B IP $B%"%I%l%9$r;XDj$7$?>l9g$O!";XDj$5$l$?%]!<%H$H(B
+ $B%$%s%?%U%'!<%9$KBP$7$F(B listen $B$7$^$9!#(B</p>
+
+ <p>$BJ#?t$N(B Listen $B%G%#%l%/%F%#%V$K$h$j!"(Blisten $B$9$k%"%I%l%9$H%]!<%H$r(B
+ $B$$$/$D$b;XDj$9$k$3$H$b=PMh$^$9!#(B
+ $B%j%9%H$5$l$?%"%I%l%9$H%]!<%HA4$F$KBP$7$F1~Ez$7$^$9!#(B</p>
+
+ <p>$BNc$($P!"%]!<%H(B 80 $B$H(B 8000 $B$NN>J}$KBP$7$F$N@\B3$r<u$1IU$1$k$K$O(B</p>
+<pre>
+ Listen 80
+ Listen 8000
+</pre>
+ $B$H$7$^$9!#(B
+ 2 $B$D$N;XDj$5$l$?%$%s%?%U%'!<%9$H%]!<%HHV9f$KBP$7$F$N@\B3$r<u$1IU$1$k$K$O(B
+<pre>
+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000
+</pre>
+ $B$H$7$^$9!#(B
+
+ <h2>$B%P!<%A%c%k%[%9%H$KBP$7$F$I$&F/$/$N$+(B</h2>
+
+ <tt>BindAddress</tt> $B$H(B <tt>Listen</tt> $B$O%P!<%A%c%k%[%9%H$r9T$J$&(B
+ $B$o$1$G$O$"$j$^$;$s!#$=$l$i$O%a%$%s$N(B Apache $B%G!<%b%s%W%m%;%9$,$I$N%"%I%l%9(B
+ $B$r%P%$%s%I$7!"$I$N%]!<%H$r(B listen $B$9$k$N$+$H$$$&$3$H$r;XDj$7$^$9!#(B
+ &lt;VirtualHost&gt;
+ $B%G%#%l%/%F%#%V$,A4$/;H$o$l$J$$>l9g$O!"<u$1IU$1$?%j%/%(%9%HA4$F$KBP$7$F(B
+ $BF1$8F0:n$r$7$^$9!#$7$+$7!"(B&lt;VirtualHost&gt; $B$r;H$C$F0l$D$"$k$$$OJ#?t$N(B
+ $B%"%I%l%9$*$h$S%]!<%H$KBP$7$F0[$J$kF0:n$r$5$;$k$3$H$b=PMh$^$9!#(B
+ $B%P!<%A%c%k%[%9%H$r9T$J$&$K$O!"%5!<%P$K$O<!$N$3$H$,I,MW$G$9!#(B
+
+ <ul>
+ <li>$BL\E*$N%"%I%l%9$H%]!<%H$r(B <tt>Listen</tt> $B$9$k$h$&$K;X<($5$l$F$$$k(B</li>
+
+ <li>$B;XDj$5$l$?%]!<%H$H%"%I%l%9$KBP$7$F!"(B
+ $B%P!<%A%c%k%[%9%H$N?6$kIq$$$r@_Dj$9$k$?$a$K(B
+ &lt;VirtualHost&gt; $B%;%/%7%g%s$,:n$i$l$F$$$k(B</li>
+ </ul>
+
+ $B%5!<%P$G(B listen $B$7$F$$$J$$%"%I%l%9$*$h$S%]!<%H$r(B &lt;VirtualHost&gt;
+ $B$G;XDj$7$?>l9g!"%"%/%;%9$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B
+
+ <h2>$B4XO"9`L\(B</h2>
+ <a href="vhosts/">$B%P!<%A%c%k%[%9%H(B</a>$B!"(B<a
+ href="mod/core.html#bindaddress">BindAddress
+ $B%G%#%l%/%F%#%V(B</a>$B!"(B<a href="mod/core.html#port">Port
+ $B%G%#%l%/%F%#%V(B</a>$B!"(B<a href="dns-caveats.html">DNS
+ $B$NLdBj(B</a>$B!"$*$h$S(B<a href="mod/core.html#virtualhost">&lt;VirtualHost&gt;
+ $B%;%/%7%g%s(B</a>$B$NJ8=q$b;2>H$7$F$/$@$5$$!#(B
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/cgi_path.html.ja.jis b/usr.sbin/httpd/htdocs/manual/cgi_path.html.ja.jis
index 76a423a2513..b52425c92ff 100644
--- a/usr.sbin/httpd/htdocs/manual/cgi_path.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/cgi_path.html.ja.jis
@@ -106,3 +106,111 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+
+ <title>CGI $B4D6-$N(B PATH_INFO $B$NJQ99(B</title>
+ <!-- English revision: 1.8 -->
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center">CGI $B4D6-$N(B PATH_INFO $B$NJQ99(B</h1>
+ <hr />
+
+
+ <h2><a id="over" name="over">$B35MW(B</a></h2>
+
+ <p>Apache 1.1.1 $B$*$h$S$=$l0JA0$N%P!<%8%g%s$G<BAu$5$l$F$$$?(B
+ CGI $B4D6-$G(B PATH_INFO $B$r:n@.$9$kJ}K!$OD>4QE*$G$J$/!"(B
+ $B>l9g$K$h$C$F$O%/%i%C%7%e$9$k$3$H$b$"$j$^$7$?!#(B
+ Apache 1.2 $B5Z$S$=$l0J9_$K$*$$$F!"$3$NF0:n$,JQ99$5$l$^$7$?!#(B
+ $B$3$N$3$H$K$h$jFCDj$N8E$$(B CGI $B%"%W%j%1!<%7%g%s$K$*$$$F$$$/$D$+(B
+ $B8_49@-$NLdBj$,@8$8$k$3$H$,$"$j$^$9$,!"$=$l$G$b(B Apache 1.2 $B$NF0:n$O(B
+ CGI/1.1 $B;EMM$H8_49$,$"$j!"(BCGI $B%9%/%j%W%H$OMF0W$K=$@5$G$-$^$9(B(<a
+ href="#compat">$B0J2<;2>H(B</a>)$B!#(B</p>
+
+ <h2><a id="prob" name="prob">$BLdBj(B</a></h2>
+
+ <p>Apache 1.1.1 $B$*$h$S$=$l0JA0$G$O!"(BURL $B$G$O$J$/%U%!%$%kL>$r;2>H$7$F(B
+ PATH_INFO $B$H(B SCRIPT_NAME $B4D6-JQ?t$r@_Dj$7$F$$$^$7$?!#(B
+ $BB?$/$N>l9g$O$3$l$,@5$7$$7k2L$rJV$7$^$9$,!"%Q%9>pJs$r4^$`$h$&$K(B
+ filesystem $B%Q%9$,%*!<%P!<%m!<%I$5$l$?>l9g$O!"(B
+ $B8m$C$?7k2L$rJV$9>l9g$,$"$j$^$7$?!#(B
+ $B$?$H$($P!"@_Dj%U%!%$%k$K0J2<$,$"$k>l9g(B</p>
+<pre>
+ Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph
+</pre>
+
+ <p>$B$3$N>l9g!"(B<code>user.cgi</code> $B$O(B CGI $B%9%/%j%W%H$G$"$j!"(B
+ &quot;/ralph&quot; $B$O!"(BCGI $B$KEO$5$l$k>pJs$G$9!#$b$7>e$N@_Dj$,$J$5$l$F$$$F!"(B
+ &quot;<code>/cgi-ralph/script/</code>&quot; $B$X$N%j%/%(%9%H$,Mh$l$P!"(B
+ PATH_INFO $B$K$O(B &quot;<code>/ralph/script/</code>&quot; $B$,!"(B
+ SCRIPT_NAME $B$K$O(B &quot;<code>/cgi-</code>&quot; $B$,@_Dj$5$l$^$9!#(B
+ $BL@$i$+$K!"8e<T$O4V0c$C$F$$$^$9!#FCDj$N>l9g$K$O!"$3$l$K$h$j(B
+ $B%5!<%P$,%/%i%C%7%e$9$k$3$H$5$($"$j$^$7$?!#(B</p>
+
+ <h2><a id="solution" name="solution">$B2r7h(B</a></h2>
+
+ <p>Apache 1.2 $B0J9_$G$O(B SCRIPT_NAME $B$H(B PATH_INFO $B$N7hDj$K$O(B URL
+ $B$rD>@\;2>H$7$F!"(BURL
+ $B$N$I$l$@$1$NItJ,$,%/%i%$%"%s%H$,JQ992DG=$J$N$+$r3NDj$5$;$?>e$G(B
+ PATH_INFO $B$r@_Dj$9$k$h$&$K$J$j$^$7$?!#>e$NNc$G$O!"(BPATH_INFO $B$K$O(B
+ &quot;<code>/script</code>&quot; $B$,!"(BSCRIPT_NAME $B$K$O(B
+ &quot;<code>/cgi-ralph</code>&quot; $B$,@_Dj$5$l$^$9!#(B
+ $B$3$l$O@5$7$/!"$5$i$K!"%5!<%P$NF0:n$KLdBj$r5/$3$9$3$H$b$"$j$^$;$s!#$^$?!"(B
+ &quot;<code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>&quot;
+ $B$,!">o$K:G?7$N%9%/%j%W%H$r;X$9!"%"%/%;%92DG=$J(B URL $B$G$"$k$3$H$r(B
+ $BJ]>Z$7$^$9!#$3$l$O!"0JA0$N%P!<%8%g%s$N(B Apache
+ $B$G$OI,$:$7$b$=$&$H$O8B$i$J$+$C$?$3$H$G$9!#(B
+ </p>
+
+ <p>$B$7$+$7(B <code>Alias</code> $B%G%#%l%/%F%#%V$+$i$N(B
+ &quot;<code>/ralph</code>&quot; $B>pJs$O<:$o$l$^$9!#(B
+ $B$3$l$O;DG0$G$9$,!"(Bfilesystem $B$rDL$7$F$3$N<oN`$N>pJs$r(B
+ $BEO$9$N$OA&$a$i$l$?J}K!$G$O$J$/!"(B
+ $B$^$?$=$l$r;H$C$?%9%/%j%W%H$OF0:n$7$J$/$F$bEvA3$@$H9M$($^$9!#(B
+ $B$?$@$7!"(BApache 1.2b3 $B0J9_$G$O(B<a
+ href="#compat">$BBeBX<jCJ(B</a>$B$rMQ0U$7$F$$$^$9!#(B</p>
+
+ <h2><a id="compat" name="compat">$B0JA0$N%5!<%P$H$N8_49@-(B</a></h2>
+
+ <p>$B0JA0$N%P!<%8%g%s$N(B Apache $B$dB>$N%5!<%P8~$1$K@_7W$5$l$?(B
+ $B%9%/%j%W%H$K$O8E$$(B PATH_INFO $BJQ?t$K$h$jDs6!$5$l$k>pJs$,(B
+ $BI,MW$G$"$k$+$b$7$l$^$;$s!#(B
+ $B$3$NL\E*$N$?$a$K!"(B
+ Apache 1.2 (1.2b3 $B0J9_(B) $B$G$ODI2C$NJQ?t!"(BFILEPATH_INFO
+ $B$r@_Dj$7$^$9!#$3$N4D6-JQ?t$K$O!"(BApache 1.1.1 $B$G(B
+ PATH_INFO $B$G$"$C$?$G$"$m$&CM$,@_Dj$5$l$^$9!#(B</p>
+
+ <p>Apache 1.2 $B$*$h$S$=$l0JA0$N%P!<%8%g%s$NN>J}$GF0:n$5$;$?$$%9%/%j%W%H$O!"(B
+ FILEPATH_INFO $B$NB8:_$rC1$KD4$Y$F!"$=$l$,$"$l$P(B
+ $B;H$&!"$H$$$&$3$H$,$G$-$^$9!#$=$&$G$J$1$l$P!"(BPATH_INFO
+ $B$r;H$&$3$H$,$G$-$^$9!#$?$H$($P!"(BPerl $B$G$O<!$N$b$N$r;H$&$3$H$,$G$-$^$9(B</p>
+<pre>
+ $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};
+</pre>
+
+ <p>$B$3$l$K$h$j!"%9%/%j%W%H$O$9$Y$F$N%P!<%8%g%s$N(B Apache $B$r4^$`!"(B
+ CGI/1.1 $B$r%5%]!<%H$9$k$9$Y$F$N%5!<%P$GF0:n$9$k$3$H$,$G$-$^$9!#(B
+ </p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/cygwin.html b/usr.sbin/httpd/htdocs/manual/cygwin.html
index 4d315f50aa9..3943a90efbf 100644
--- a/usr.sbin/httpd/htdocs/manual/cygwin.html
+++ b/usr.sbin/httpd/htdocs/manual/cygwin.html
@@ -84,6 +84,9 @@
<li><a href="#inst">Configuring and Installing Apache for
Cygwin</a></li>
+ <li><a href="#winsock">Using Win32 native socket implementation
+ instead</a></li>
+
<li><a href="#run">Running Apache for Cygwin</a></li>
<li><a href="#serv">Running Apache for Cygwin as a
@@ -178,7 +181,7 @@
DocumentRoot "/usr/local/apache/htdocs"
</pre>
- <p><strong>What about performance?</strong><br />
+ <p><strong>What about performance?</strong><br/>
Apache for Cygwin is not as high-performance as Apache for
Windows on the same hardware.</p>
@@ -197,15 +200,16 @@
networking must be installed.</p>
<p>Cygwin 1.x is required to compile and run this version.
- Cygwin 1.1.8 and 1.3.2 have been tested and approved on both
- supported OSes.</p>
+ Cygwin 1.3.9 and 1.3.10 have been tested and approved on both
+ supported OSes. We suggest to use Cygwin 1.3.9-2 and higher.</p>
<p><strong>Note:</strong>If you want to compile shared DLL
modules using <a
- href="programs/apxs.html"><code>apxs</code></a> you will need a
- patched version of <code>ld.exe</code> with
- <code>--auto-import</code> support, which can be found at <a
- href="http://sourceforge.net/projects/kde-cygwin/">http://sourceforge.net/projects/kde-cygwin/</a>.</p>
+ href="programs/apxs.html"><code>apxs</code></a> you will need
+ Cygwin 1.3.9-2 or higher version, which includes a version of
+ <code>ld.exe</code> with <code>--auto-import</code> support.
+ </p>
+
<h2><a id="down" name="down">Downloading Apache for
Cygwin</a></h2>
@@ -218,11 +222,19 @@
The site lists the current release, any more recent development
versions, and information on any mirror sites.</p>
+ <p><strong>What about Cygwin Net Distribution binaries?</strong><br/>
+ Apache for Cygwin is also available as pre-compiled binary
+ package for the Cygwin Net Distribution available at
+ <href="http://www.cygwin.com">http://www.cygwin.com</a> and it's
+ <a href="http://www.cygwin.com/setup.exe"><code>setup.exe</code></a>
+ installation process.</p>
+
+
<h2><a id="inst" name="inst">Configuring and Installing Apache
for Cygwin</a></h2>
<p>Apache on Cygwin is configured and compiled the same way as
- on Unix systems. Refer to the general <a
+ on most Unix systems. Refer to the general <a
href="configuring.html">configuration</a> and <a
href="install.html">installation</a> documents for details.</p>
@@ -266,34 +278,36 @@
files which hold all static linked code. Then
<code>dllwrap</code> and <code>dlltool</code> will export
all of those (including any additional module code) to the
- shared <code>libhttpd.dll</code> and create the
+ shared <code>cyghttpd.dll</code> and create the
<code>libhttpd.a</code> import library which is required
for linking <code>httpd.exe</code>.</p>
<p><strong>Note:</strong> After <code>make install</code>
is performed you will find the resulting core DLL module
- <code>libhttpd.dll</code> within
+ <code>cyghttpd.dll</code> within
<code>/usr/local/apache/libexec</code>. This is due to the
installation process. Please move the file to Apache's
<code>bin</code> directory, i.e.</p>
<pre>
- $ mv /usr/local/apache/libexec/libhttpd.dll /usr/local/apache/bin
+ $ mv /usr/local/apache/libexec/cyghttpd.dll /usr/local/apache/bin
</pre>
- The core DLL module <code>libhttpd.dll</code> is the
+ <p>or to an other place inside your <code>$PATH</code>, i.e.
+ <code>/usr/bin</code> is used in the Cygwin Net Distribution
+ layout. The core DLL module <code>cyghttpd.dll</code> is the
<i>only</i> file that should reside in
<code>/usr/local/apache/bin</code> directory. All other
shared DLL modules <code>mod_foo.dll</code> should be
- located in <code>/usr/local/apache/libexec</code>.
+ located in <code>/usr/local/apache/libexec</code>.</p>
</li>
<li>
<strong>Shared DLL modules linked version</strong>
- <p>This method is currently <strong>ONLY</strong> supported
- using a patched version of <code>ld.exe</code> which
- support the <code>--auto-import</code> option. Please see
- the <a href="#req">requirements</a> section for where to
- get that version.</p>
+ <p>This method is <strong>ONLY</strong> supported using a
+ version of <code>ld.exe</code> which supports the
+ <code>--auto-import</code> option. Please see the
+ <a href="#req">requirements</a> section for more
+ information.</p>
<p>To build a dynamic loadable DLL version of
<code>httpd</code> which can load DLL modules on the fly
@@ -312,13 +326,13 @@
<p>You will notice that there is a warning message
shown which lets you know that the shared core DLL
- library <code>src/libhttpd.dll</code> is missing while
+ library <code>src/cyghttpd.dll</code> is missing while
trying to link the shared DLL modules
<code>mod_foo.dll</code>.</p>
<p>Unfortunatly while Apache's build process the shared
modules are linked before the shared core import
- library <code>src/libhttpd.dll</code> has been made.
+ library <code>src/cyghttpd.dll</code> has been made.
The shared modules depend on this import library, so
they can not link for the first time you run
<code>make</code>.</p>
@@ -335,13 +349,14 @@
<p>All shared modules are placed into
<code>libexec</code>, including the shared core DLL
- <code>libhttpd.dll</code>. When Apache's
+ <code>cyghttpd.dll</code>. When Apache's
<code>/bin/httpd</code> is started it has to dynamicly
- link <code>libhttpd.dll</code> while runtime. That is
+ link <code>cyghttpd.dll</code> while runtime. That is
why you have to place the shared core DLL
- <code>libhttpd.dll</code> to the same direcotry where
+ <code>cyghttpd.dll</code> to the same direcotry where
<code>httpd.exe</code> resides, i.e.
- <code>/usr/local/apache/bin</code>.</p>
+ <code>/usr/local/apache/bin</code> or an other place
+ in your <code>$PATH</code>.</p>
</li>
<li>
@@ -360,7 +375,7 @@
</li>
<li>
- <strong>Using apxs to create shared DLL modules</strong>
+ <strong>Using <code>apxs</code> to create shared DLL modules</strong>
<p>To make the extending <code>httpd</code> with shared DLL
modules easier, you can use <a
@@ -369,7 +384,7 @@
<p>Make sure you have configured
<code>$CFG_LDFLAGS_SHLIB</code> within <code>apxs</code> to
include the <code>--shared</code> directive and the path to
- the shared code DLL <code>libhttpd.dll</code>.</p>
+ the shared code DLL <code>cyghttpd.dll</code>.</p>
<p>After performing <code>make install</code> you will
probably have the following lines within your
@@ -389,7 +404,7 @@
[...]
my $CFG_LD_SHLIB = q(gcc); # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-g --shared); # substituted via Makefile.tmpl
- my $CFG_LIBS_SHLIB = q(<i>/path/to/libhttpd.dll</i>); # substituted via Makefile.tmpl
+ my $CFG_LIBS_SHLIB = q(<i>/path/to/cyghttpd.dll</i>); # substituted via Makefile.tmpl
[...]
</pre>
@@ -404,12 +419,32 @@
it at runtime.
</li>
</ul>
+
+
+ <h2><a id="inst" name="inst">Using Win32 native socket
+ implementation instead</a></h2>
+
+ <p>Apache for Cygwin supports an option to use the Win32 native
+ socket calls instead of Cygwin's POSIX wrappers internally. To
+ use the Win32 native socket calls configure Apache for Cygwin
+ with the <code>CYGWIN_WINSOCK</code> configuration rule flag
+ as follows:</p>
+<pre>
+ $ cd apache_1.3.x
+ $ ./configure --enable-rule=CYGWIN_WINSOCK [...]
+ $ make
+</pre>
+ <p>Using Win32 native socket calls is intended for performance
+ reasons and as a hybrid way to interact with the underlying
+ native socket implementation.</p>
+
+
<h2><a id="run" name="run">Running Apache for Cygwin</a></h2>
<p>Apache on Cygwin can be started and stopped in the same
manner as on Unix systems. You may also use the <a
- href="programs/apachctl.html"><code>apachectl</code></a> tool
+ href="programs/apachectl.html"><code>apachectl</code></a> tool
for starting and stopping Apache.</p>
<ul>
@@ -530,7 +565,8 @@
<p>Any additional contributions to this document and the Cygwin
support for Apache are highly welcome. Please send them to
Stipe Tolj <a
- href="mailto:tolj@wapme-systems.de">&lt;tolj@wapme-systems.de&gt;</a>.</p>
+ href="mailto:tolj&#64;wapme-systems.de">&lt;tolj&#64;wapme-systems.de&gt;</a>.</p>
+
<hr />
<h3 align="CENTER">Apache HTTP Server</h3>
diff --git a/usr.sbin/httpd/htdocs/manual/dso.html b/usr.sbin/httpd/htdocs/manual/dso.html
index a88bca20f31..9245d498e93 100644
--- a/usr.sbin/httpd/htdocs/manual/dso.html
+++ b/usr.sbin/httpd/htdocs/manual/dso.html
@@ -160,7 +160,7 @@
be statically compiled into the Apache core. It is the only
module besides <code>http_core.c</code> which cannot be put
into a DSO itself (bootstrapping!). Practically all other
- distributed Apache modules then can then be placed into a DSO
+ distributed Apache modules can then be placed into a DSO
by individually enabling the DSO build for them via
<code>configure</code>'s <code>--enable-shared</code> option
(see top-level <code>INSTALL</code> file) or by changing the
diff --git a/usr.sbin/httpd/htdocs/manual/env.html.ja.jis b/usr.sbin/httpd/htdocs/manual/env.html.ja.jis
index 8a04319c257..961bbb0ae2c 100644
--- a/usr.sbin/httpd/htdocs/manual/env.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/env.html.ja.jis
@@ -8,7 +8,7 @@
<title>Apache $B$N4D6-JQ?t(B</title>
</head>
- <!-- English revision: 1.16 -->
+ <!-- English revision: 1.18 -->
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
vlink="#000080" alink="#ff0000">
@@ -22,13 +22,22 @@
<h1 align="center">Apache $B$K$*$1$k4D6-JQ?t(B</h1>
- <p>$BB?$/$N%*%Z%l!<%F%#%s%0%7%9%F%`$O!"(B<em>$B4D6-JQ?t(B</em>$B$H8F$P$l$k!"(B
- $B>pJs$NJ]B8!"EAC#$N$?$a$N5!G=$rDs6!$7$F$$$^$9!#F0:nJ}K!$r@)8f$7$?$j!"(B
- CGI $B%9%/%j%W%H$N$h$&$JB>$N%W%m%0%i%`$HDL?.$7$?$j$9$k$?$a$K!"(BApache
- $B$OB?$/$NJ}K!$G4D6-JQ?t$r;H$$$^$9!#$3$NJ8=q$G$O!"(BApache
- $B$K$*$1$k4D6-JQ?t$N;HMQK!$r$$$/$D$+@bL@$7$^$9!#(B
- </p>
-
+ <p>Apache HTTP $B%5!<%P$O(B<em>$B4D6-JQ?t(B</em>$B$H8F$P$l$k!"L>A0$N$D$$$?(B
+ $BJQ?t$K>pJs$r5-21$9$k;EAH$_$rDs6!$7$F$$$^$9!#$3$N>pJs$O%m%0<}=8$d(B
+ $B%"%/%;%9@)8f$J$I$N$$$m$$$m$JA`:n$r@)8f$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#(B
+ $B$3$l$i$NJQ?t$O(B CGI $B%9%/%j%W%H$J$I$N30It%W%m%0%i%`$HDL?.$9$k$?$a$K$b(B
+ $B;H$o$l$^$9!#$3$NJ8=q$O$=$l$i$NJQ?t$NA`:nJ}K!$H;HMQJ}K!$r$$$/$D$+(B
+ $B>R2p$7$^$9!#(B</p>
+
+
+ <p>$B$3$l$i$NJQ?t$O(B<em>$B4D6-JQ?t(B</em>$B$H8F$P$l$F$$$^$9$,!"%*%Z%l!<%F%#%s%0(B
+ $B%7%9%F%`$K$h$C$F@)8f$5$l$F$$$k4D6-JQ?t$HF1$8$G$O$"$j$^$;$s!#(B
+ $B<B:]$O!"$3$l$i$NJQ?t$O(B Apache $B$NFbIt9=B$$NCf$K5-21$5$l!"A`:n$5$l$F$$$^$9!#(B
+ $B$=$l$i$O!"(BCGI $B$d(B SSI $B%9%/%j%W%H$KEO$5$l$?$H$-$@$1!"<B:]$N(B
+ $B%*%Z%l!<%F%#%s%0%7%9%F%`$N4D6-JQ?t$K$J$j$^$9!#%5!<%P<+?H$,(B
+ $B<B9T$5$l$F$$$k%*%Z%l!<%F%#%s%0%7%9%F%`$N4D6-$rA`:n$7$?$$>l9g$O!"(B
+ $B%*%Z%l!<%F%#%s%0%7%9%F%`$N%7%'%k$,Ds6!$7$F$$$kI8=`$N4D6-JQ?t$N(B
+ $BA`:nJ}K!$r;H$o$J$1$l$P$J$j$^$;$s!#(B</p>
<ul>
<li><a href="#setting">$B4D6-JQ?t$N@_Dj(B</a></li>
diff --git a/usr.sbin/httpd/htdocs/manual/howto/auth.html b/usr.sbin/httpd/htdocs/manual/howto/auth.html
index cf8b77a6fef..4ff92033543 100644
--- a/usr.sbin/httpd/htdocs/manual/howto/auth.html
+++ b/usr.sbin/httpd/htdocs/manual/howto/auth.html
@@ -260,7 +260,7 @@ Control</h1>
<p>To create the file, type:</p>
<pre>
-htpasswd -c /usr/local/apache/passwd/password username
+htpasswd -c /usr/local/apache/passwd/passwords username
</pre>
<p><tt>htpasswd</tt> will ask you for the password, and then
diff --git a/usr.sbin/httpd/htdocs/manual/howto/ssi.html.en b/usr.sbin/httpd/htdocs/manual/howto/ssi.html.en
index d71c40d7f7c..b737b85204b 100644
--- a/usr.sbin/httpd/htdocs/manual/howto/ssi.html.en
+++ b/usr.sbin/httpd/htdocs/manual/howto/ssi.html.en
@@ -323,7 +323,7 @@
</pre>
<p>For more details on the <code>timefmt</code> format, go to
- your favorite search site and look for <code>ctime</code>. The
+ your favorite search site and look for <code>strftime()</code>. The
syntax is the same.</p>
<hr />
diff --git a/usr.sbin/httpd/htdocs/manual/howto/ssi.html.html b/usr.sbin/httpd/htdocs/manual/howto/ssi.html.html
index 424cf02801b..d19836831a0 100644
--- a/usr.sbin/httpd/htdocs/manual/howto/ssi.html.html
+++ b/usr.sbin/httpd/htdocs/manual/howto/ssi.html.html
@@ -325,7 +325,7 @@
</pre>
<p>For more details on the <code>timefmt</code> format, go to
- your favorite search site and look for <code>ctime</code>. The
+ your favorite search site and look for <code>strftime()</code>. The
syntax is the same.</p>
<hr />
diff --git a/usr.sbin/httpd/htdocs/manual/index.html.ja.jis b/usr.sbin/httpd/htdocs/manual/index.html.ja.jis
index 9c69f1245d3..b718d844e8e 100644
--- a/usr.sbin/httpd/htdocs/manual/index.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/index.html.ja.jis
@@ -7,7 +7,7 @@
<title>Apache HTTP $B%5!<%P(B $B%P!<%8%g%s(B 1.3 $B%I%-%e%a%s%H(B</title>
</head>
- <!-- English revision: 1.54 -->
+ <!-- English revision: 1.55 -->
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
vlink="#000080" alink="#ff0000">
<div align="center">
@@ -25,7 +25,7 @@
width="100%">
<tr>
<td align="center" bgcolor="#bebebe"><a
- href="misc/faq.html"><strong>FAQ</strong></a> </td>
+ href="misc/FAQ.html"><strong>FAQ</strong></a> </td>
<td align="center" bgcolor="#bebebe"><a
href="sitemap.html"><strong>$B%5%$%H%^%C%W(B</strong></a></td>
@@ -96,7 +96,7 @@
</tr>
<tr>
- <td><a href="license">Apache $B$N%i%$%;%s%9(B</a> </td>
+ <td><a href="LICENSE">Apache $B$N%i%$%;%s%9(B</a> </td>
</tr>
</table>
diff --git a/usr.sbin/httpd/htdocs/manual/install-tpf.html b/usr.sbin/httpd/htdocs/manual/install-tpf.html
index a5ab5197c50..144bff8c04d 100644
--- a/usr.sbin/httpd/htdocs/manual/install-tpf.html
+++ b/usr.sbin/httpd/htdocs/manual/install-tpf.html
@@ -2,16 +2,18 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+
+
<head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Installing Apache on TPF</title>
</head>
<body>
<center>
- <h1><a id="top" name="top"></a>Installing the Apache 1.3 HTTP
- Server on TPF</h1>
+ <h2><a id="top" name="top"></a>Installing the Apache 1.3 HTTP
+ Server on TPF</h2>
</center>
<hr />
@@ -81,9 +83,8 @@
</li>
<li>FTP the tarball to your OS/390 UNIX machine using binary
- mode:&nbsp;</li>
+ mode:&nbsp;
- <li style="list-style: none">
<ul>
<li>activate FTP in an MSDOS window:
<b><tt>ftp&nbsp;<i>your.os390.unix.machine.com</i></tt></b>&nbsp;</li>
@@ -108,22 +109,18 @@
</li>
<li>Decompress and extract the archived files necessary for compiling
- Apache:
+ Apache:<br />
<b><tt>pax&nbsp;-rvzkf&nbsp;<i>os390_unix_filename</i>.tar.Z&nbsp;-o&nbsp;from=ISO8859-1,to=IBM-1047&nbsp;"*/src"</tt></b><br />
&nbsp;</li>
- <li>
+ <li><a id="delete-expat" name="delete-expat"></a>
Remove unnecessary subdirectories:
-
<ul>
- <li>
- <b><tt>cd&nbsp;apache_1.3.<em>xx</em>/src/os</tt></b></li>
-
- <li>
- <b><tt>rm&nbsp;-r&nbsp;bs2000&nbsp;cygwin&nbsp;mpeix&nbsp;netware&nbsp;os2&nbsp;os390&nbsp;win32</tt></b></li>
-
- <li style="list-style: none"><b><tt><br />
- </tt></b></li>
+ <li><b><tt>cd&nbsp;apache_1.3.<em>xx</em>/src/lib</tt></b></li>
+ <li><b><tt>rm&nbsp;-r&nbsp;expat-lite&nbsp;sdbm</tt></b></li>
+ <li><b><tt>cd&nbsp;../os</tt></b></li>
+ <li><b><tt>rm&nbsp;-r&nbsp;bs2000&nbsp;cygwin&nbsp;mpeix&nbsp;netware&nbsp;os2&nbsp;os390&nbsp;win32</tt></b></li>
+ <li><b><tt>cd&nbsp;..</tt></b></li>
</ul>
&nbsp;
</li>
@@ -174,26 +171,27 @@
<li>Edit src/Configuration. It contains the list and settings
of various "Rules" and an additional section at the bottom
that determines which modules to compile:<br />
- &nbsp;</li>
+ &nbsp;
- <li style="list-style: none">
<ul>
- <li>Adjust the Rules and
- <tt>EXTRA_CFLAGS|LIBS|LDFLAGS|INCLUDES</tt> if you feel
- so inclined.<br />
- &nbsp;</li>
-
- <li>Comment out (by preceding the line with a "#") lines
+ <li>comment out (by preceding the line with a "#") lines
corresponding to those modules you DO NOT wish to
- include.<br />
+ include
&nbsp;</li>
- <li>Uncomment (by removing the initial "#", if present)
+ <li>uncomment (by removing the initial "#", if present)
lines corresponding to those modules you wish to include
or add new lines corresponding to any custom modules you
- have written. The <a
- href="readme-tpf.html">readme-tpf.html</a> document lists
- the modules that have been tested on TPF.&nbsp;</li>
+ have written (the <a href="readme-tpf.html">readme-tpf.html</a> document lists
+ the modules that have been tested on TPF)&nbsp;</li>
+
+ <li>if you did not delete the src/lib/expat-lite directory
+ as noted in the <a href="#delete-expat">download instructions</a>,
+ add "<tt>Rule&nbsp;EXPAT=no</tt>" to the src/Configuration file</li>
+
+ <li>adjust the other rules, <tt>EXTRA_CFLAGS</tt>, <tt>EXTRA_LIBS</tt>, <tt>EXTRA_LDFLAGS</tt>,
+ and <tt>EXTRA_INCLUDES</tt> settings if you feel so inclined</li>
+
</ul>
<p>The modules placed in the Apache distribution are the
@@ -230,8 +228,6 @@
<tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
</ul>
<br />
- <br />
-
<p>Otherwise:<br />
</p>
@@ -245,8 +241,6 @@
<tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
</ul>
<br />
- <br />
-
<p>Without <tt>non_socket_select</tt> CGI output is
buffered and only sent to the browser when the CGI program
@@ -276,8 +270,6 @@
<tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
</ul>
<br />
- <br />
-
<p>Otherwise:<br />
</p>
@@ -290,17 +282,37 @@
<tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
</ul>
<br />
- <br />
-
<p>The use of <tt>tpf_sawnc</tt> allows for a cleaner
shutdown of Apache.</p>
</li>
- <li style="list-style: none"><a id="export"
- name="export"></a></li>
+ <li>
+ Indicate if you would like to use the TCP/IP network services database.
+ (This only applies if you are using TCP/IP native stack.)
- <li>Set the TPF environment variables:
+ <p>If you are on a PUT16 or higher system, or have PJ28195 installed,
+ you can use the TCP/IP network services database.
+ To do so, you must do <em>one</em> of the following:<br />
+ </p>
+
+ <ul>
+ <li>add "<tt>#define&nbsp;TPF_HAVE_NSD</tt>" to
+ <tt>src/os/tpf/os.h</tt>&nbsp;&nbsp;&nbsp;<em>or</em></li>
+
+ <li>add "<tt>-DTPF_HAVE_NSD</tt>" to the
+ <tt>_C89_OPTIONS</tt> export in src/os/tpf/TPFExport</li>
+
+ </ul>
+ <br />
+
+ <p>See <em>TPF Transmission Control Protocol/Internet Protocol</em> for more information
+ about the TCP/IP network services database:
+ <a href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.</p>
+ </li>
+
+ <li><a id="export" name="export"></a>
+ Set the TPF environment variables:
<b><tt>.&nbsp;os/tpf/TPFExport</tt></b>&nbsp;<br />
<br />
<font color="#FF0000"><font size="+1">TIP:</font></font> The
@@ -319,7 +331,7 @@
TPF.&nbsp;<br />
&nbsp;</li>
- <li>
+ <li><a id="run-configure" name="run-configure"></a>
Run the "Configure" script:
<b><tt>Configure</tt></b>&nbsp;<br />
@@ -340,7 +352,6 @@
Creating Makefile in os/tpf
Creating Makefile in ap
Creating Makefile in main
- Creating Makefile in lib/expat-lite
Creating Makefile in modules/standard
$ _
@@ -370,14 +381,12 @@
</b> or find a line with a "\": <b>/\\</b>
</pre>
- <div style="margin-left: 2em">
The end of line should display as "<tt>\$</tt>". If it is
displayed as "<tt>\&nbsp;$</tt>" (with a blank between \
and $) then you should revert to the distributed version
of the file and make the site-specific changes again
using a UNIX compatible editor such as vi or emacs. Then
try the Configure command again.&nbsp;
- </div>
<pre>
close the file: <b>:q</b> (or <b>:quit!</b>)
</pre>
@@ -427,11 +436,10 @@
<br />
- <div style="margin-left: 2em">
util_uri.c:&nbsp;&nbsp;&nbsp;<tt>Function argument
assignment between types "unsigned char*" and "const
unsigned char*" is not allowed.</tt>
- </div>
+ <br />
<br />
</li>
@@ -463,7 +471,6 @@
has been included as src/os/tpf/samples/linkhttp.jcl. You
will need to modify this JCL:<br />
&nbsp;
-
<ul>
<li>Change the IDs, data set names, and libraries for
your particular site.&nbsp;</li>
@@ -476,8 +483,18 @@
<font color="#FF0000"><font size="+1">TIP:</font></font>
Do NOT include gen_test_char.o or gen_uri_delims.o in the
link JCL since these files are only used during the
- <tt>make</tt> step.&nbsp;<br />
+ <tt>make</tt> step.&nbsp;<br /><br />
+
+
+ If you receive an "Unresolved references" error for "<tt>XML_ErrorString</tt>"
+ you probably need to <a href="#delete-expat">remove the expat-lite directory</a>
+ and start back at the "<a href="#run-configure">Run the Configure script" step</a><br /><br />
+
+
+ If you receive an "unable to open" error for <tt>lib/expat-lite/hashtable.o</tt>"
+ you probably need to remove all of the expat-lite .o's from your link JCL<br />
&nbsp;
+
</li>
<li>Create a loadset. Sample loadset JCL has been included as
@@ -494,10 +511,10 @@
<li>Ensure that the program name you are using for Apache has
<tt>RESTRICT</tt> and <tt>KEY0</tt> authorization.
- <b><tt>zdpat&nbsp;<i>chta</i>&nbsp;</tt> &nbsp;(</b>c-c) will
+ <b><tt>zdpat&nbsp;<i>chta</i>&nbsp;</tt>&nbsp;(</b>c-c) will
display allocation information. You can use
<b><tt>zapat&nbsp;<i>chta</i>&nbsp;restrict&nbsp;key0&nbsp;</tt></b>
- &nbsp;<tt>(<b>c-c</b>)</tt> to alter the authorization. Note
+ <tt>(<b>c-c</b>)</tt> to alter the authorization. Note
that if the program name is unallocated, you must have the
loadset for it activated or you will receive <tt>INVALID
PROGRAM NAME</tt> from the <tt>zdpat/zapat</tt>
@@ -518,23 +535,20 @@
example "<tt>/usr/local/apache</tt>")</p>
</li>
- <li style="list-style: none">
+ <li>
<p>General documentation for Apache is located at <a
href="http://httpd.apache.org/docs/">http://httpd.apache.org/docs/</a>
and in the HTML pages included with the distribution
- (tarball) under the /htdocs/manual directory.&nbsp;
+ (tarball) under the <tt>/htdocs/manual</tt> directory.&nbsp;
&nbsp;</p>
</li>
<li>
- On TPF activate ZCLAW
+ On TPF activate your TCP/IP Offload (ZCLAW) or Native Stack communications device.
- <p>Refer to the TCP/IP Offload Support section of the
- <em>TPF TCP/IP</em> publication for more information: <a
+ <p>Refer to the <em>TPF TCP/IP</em> publication for more information: <a
href="http://www.ibm.com/tpf/pubs/tpfpubs.htm">http://www.ibm.com/tpf/pubs/tpfpubs.htm</a>.</p>
- <p>Note: Apache does not currently work with Native
- Stack.</p>
</li>
<li>
@@ -556,8 +570,6 @@
<tt>fopen</tt> error while running Apache:<br />
<br />
-
- <div style="margin-left: 2em">
If you're running a PUT10 or higher version of TPF make
the directory using the <b><tt>zfile
mkdir&nbsp;/usr/local/apache/logs</tt></b> command.<br />
@@ -565,7 +577,7 @@
If you're running TPF version PUT09 TFTP an empty file
into the logs subdirectory to create it.&nbsp;<br />
<br />
- </div>
+
Make sure Apache can write into the logs subdirectory by
doing a <tt>zfile&nbsp;chmod</tt> on it with the
appropriate permission settings.
@@ -583,10 +595,10 @@
<ul>
<li>For PUT11 and later use the DAEMON model for
- Apache:<tt><b>ZINET&nbsp;ADD&nbsp;S-APACHE&nbsp;PGM-<em>chta</em>&nbsp;MODEL-DAEMON&nbsp;USER-root</b></tt></li>
+ Apache: <tt><b>ZINET&nbsp;ADD&nbsp;S-APACHE&nbsp;PGM-<em>chta</em>&nbsp;MODEL-DAEMON&nbsp;USER-root</b></tt></li>
<li>On pre-PUT11 systems use the NOLISTEN model
- instead:<tt><b>ZINET&nbsp;ADD&nbsp;S-APACHE&nbsp;PGM-<em>chta</em>&nbsp;MODEL-NOLISTEN</b></tt></li>
+ instead: <tt><b>ZINET&nbsp;ADD&nbsp;S-APACHE&nbsp;PGM-<em>chta</em>&nbsp;MODEL-NOLISTEN</b></tt></li>
</ul>
<br />
<font color="red" size="4">TIP:</font> Logic changes
@@ -630,23 +642,22 @@
<ul>
<li><i>"DEFINE - Define preprocessor macro name(s)"</i> must
include <b><tt>TPF, CHARSET_EBCDIC, _POSIX_SOURCE,</tt></b>
- and <b><tt>USE_HSREGEX</tt></b><br />
+ and <b><tt>USE_HSREGEX</tt></b>
&nbsp;</li>
<li><i>"LSEARCH - Path for user include files"</i> must
include <b><tt>../src/include</tt></b> and
- <b><tt>../src/os/tpf</tt></b><br />
+ <b><tt>../src/os/tpf</tt></b>
&nbsp;</li>
- <li><i>"DLL - Generate DLL code"</i> must be checked<br />
+ <li><i>"DLL - Generate DLL code"</i> must be checked
&nbsp;</li>
- <li><i>"LONGNAME - Support long names"</i> must be
- checked<br />
+ <li><i>"LONGNAME - Support long names"</i> must be checked
&nbsp;</li>
</ul>
- <hr />
+ <hr />
<center>
[ <a href="#top">top</a>&nbsp; | <a
href="#download">Download</a>&nbsp; | <a
diff --git a/usr.sbin/httpd/htdocs/manual/logs.html b/usr.sbin/httpd/htdocs/manual/logs.html
index f84d81e60a5..5e092afcdf5 100644
--- a/usr.sbin/httpd/htdocs/manual/logs.html
+++ b/usr.sbin/httpd/htdocs/manual/logs.html
@@ -52,7 +52,7 @@
<li><a href="#piped">Piped Logs</a></li>
- <li><a href="#virtualhosts">VirtualHosts</a></li>
+ <li><a href="#virtualhosts">Virtual Hosts</a></li>
<li>
<a href="#other">Other Log Files</a>
@@ -109,7 +109,7 @@
<code>error_log</code> on unix systems and
<code>error.log</code> on Windows and OS/2). On unix systems it
is also possible to have the server send errors to
- <code>syslog</code> or <a href="#pipe">pipe them to a
+ <code>syslog</code> or <a href="#piped">pipe them to a
program</a>.</p>
<p>The format of the error log is relatively free-form and
@@ -346,7 +346,7 @@
error caused by the client (codes beginning in 4), or an
error in the server (codes beginning in 5). The full list of
possible status codes can be found in the <a
- href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">HTTP
+ href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP
specification</a> (RFC2616 section 10).</dd>
<dt><code>2326</code> (<code>%b</code>)</dt>
@@ -552,8 +552,7 @@
</blockquote>
<p>A similar, but much more flexible log rotation program
- called <a
- href="http://www.ford-mason.co.uk/resources/cronolog/">cronolog</a>
+ called <a href="http://www.cronolog.org/">cronolog</a>
is available at an external site.</p>
<p>As with conditional logging, piped logs are a very powerful
diff --git a/usr.sbin/httpd/htdocs/manual/misc/FAQ.html b/usr.sbin/httpd/htdocs/manual/misc/FAQ.html
index 82ce928ba2f..8d731d68613 100644
--- a/usr.sbin/httpd/htdocs/manual/misc/FAQ.html
+++ b/usr.sbin/httpd/htdocs/manual/misc/FAQ.html
@@ -315,6 +315,11 @@
<li><a href="#codered">Why do I have weird entries in my
logs asking for <code>default.ida</code> and
<code>cmd.exe</code>?</a></li>
+
+ <li><a href="#restart">Why am I getting server restart
+ messages periodically, when I did not restart the
+ server?</a></li>
+
</ol>
</li>
@@ -534,6 +539,10 @@
<li><a href="#prompted-twice">Why does Apache ask for my
password twice before serving a file?</a></li>
+
+ <li><a href="#image-theft">How can I prevent people from
+ "stealing" the images from my web site?</a></li>
+
</ol>
</li>
@@ -1267,10 +1276,9 @@
with Perl. We implement a simple subset of Perl's regex
support, but it's still a good way to learn what they mean.
You can start by going to the <a
- href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlre.html#Regular_Expressions">
- CPAN page on regular expressions</a>, and branching out
- from there.</p>
- <hr />
+ href="http://www.perl.com/doc/manual/html/pod/perlre.html">CPAN
+ page on regular expressions</a>, and branching out from
+ there.</p> <hr />
</li>
<li>
@@ -1886,6 +1894,23 @@
with more information.</p>
</li>
+ <li<a id="restart" name="restart"><b>Why am I getting server restart
+ messages periodically, when I did not restart the server?</b></a>
+
+ <p>Problem: You are noticing restart messages in your error log,
+ periodically, when you know you did not restart the server
+ yourself:</p>
+
+<pre>
+[Thu Jun 6 04:02:01 2002] [notice] SIGHUP received. Attempting to restart
+[Thu Jun 6 04:02:02 2002] [notice] Apache configured -- resuming normal operations
+</pre>
+
+ <p>Check your cron jobs to see when/if your server logs are being
+ rotated. Compare the time of rotation to the error menage time.
+ If they are the same, you can somewhat safely assume that the
+ restart is due to your server logs being rotated.</p>
+
</ol>
@@ -2989,6 +3014,10 @@ Options Includes ExecCGI<br />
</dl>
</li>
</ol>
+ <p>If you are using suexec, the first technique will not work
+ because CGI scripts must be stored under the <code>public_html</code>
+ directory.</p>
+
<hr />
</li>
</ol>
@@ -3307,6 +3336,44 @@ Options Includes ExecCGI<br />
</ol>
<hr />
</li>
+
+ <li>
+ <a id="image-theft" name="image-theft"><strong>How can I prevent
+ people from "stealing" the images from my web site?</strong></a>
+
+ <p>The goal here is to prevent people from inlining your images
+ directly from their web site, but accessing them only if they
+ appear inline in your pages.<p>
+
+ <p>This can be accomplished with a combination of SetEnvIf and
+ the Deny and Allow directives. However, it is important to
+ understand that any access restriction based on the REFERER
+ header is intrinsically problematic due to the fact that
+ browsers can send an incorrect REFERER, either because they
+ want to circumvent your restriction or simply because they don't
+ send the right thing (or anything at all).</p>
+
+ <p>The following configuration will produce the desired effect
+ if the browser passes correct REFERER headers.</p>
+
+<pre>
+SetEnvIf REFERER "www\.mydomain\.com" linked_from_here
+SetEnvIf REFERER "^$" linked_from_here
+
+&lt;Directory /www/images&gt;
+ Order deny,allow
+ Deny from all
+ Allow from env=linked_from_here
+&lt;/Directory&gt;
+</pre>
+
+<p>Further examples can be found in the <a
+href="../env.html#examples">Environment Variables</a> documentation.</p>
+
+ <hr />
+ </li>
+
+
</ol>
@@ -3631,7 +3698,7 @@ Options Includes ExecCGI<br />
A more sophisticated solution of a logfile rotation
utility is available under the name <code>cronolog</code>
from Andrew Ford's site at <a
- href="http://www.ford-mason.co.uk/resources/cronolog/">http://www.ford-mason.co.uk/resources/cronolog/</a>.
+ href="http://www.cronolog.org/">http://www.cronolog.org/</a>.
It can automatically create logfile subdirectories based on
time and date, and can have a constant symlink point to the
rotating logfiles. (As of version 1.6.1, cronolog is
diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html.en b/usr.sbin/httpd/htdocs/manual/mod/core.html.en
index 6459369ed05..7c1a58750da 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/core.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/core.html.en
@@ -774,7 +774,7 @@
<em>MIME-type</em><br />
<a href="directive-dict.html#Default"
rel="Help"><strong>Default:</strong></a> <code>DefaultType
- text/html</code><br />
+ text/plain</code><br />
<a href="directive-dict.html#Context"
rel="Help"><strong>Context:</strong></a> server config, virtual
host, directory, .htaccess<br />
@@ -1258,7 +1258,10 @@
document.</strong></p>
<p>See Also: <a href="../custom-error.html">documentation of
- customizable responses.</a></p>
+ customizable responses.</a> See the <a
+ href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP
+ specification</a> for a complete list of the status codes and their
+ meanings.</p>
<hr />
<h2><a id="errorlog" name="errorlog">ErrorLog
@@ -1904,6 +1907,15 @@ Syntax OK
control both standard and nonstandard/unrecognized methods. See
the documentation for <a href="#limit">&lt;Limit&gt;</a> for
more details.</p>
+
+ <p>For example:</p>
+
+ <pre>
+ &lt;LimitExcept POST GET&gt;
+ Require valid-user
+ &lt;/LimitExcept&gt;
+ </pre>
+
<hr />
<h2><a id="limitrequestbody"
@@ -1947,6 +1959,13 @@ Syntax OK
control over abnormal client request behavior, which may be
useful for avoiding some forms of denial-of-service
attacks.</p>
+
+ <p>If, for example, you are permitting file upload to a particular
+ location, and wich to limit the size of the uploaded file to 100K,
+ you might use the following directive:</p>
+
+ <pre>LimitRequestBody 102400</pre>
+
<hr />
<h2><a id="limitrequestfields"
@@ -1989,6 +2008,11 @@ Syntax OK
The value should be increased if normal clients see an error
response from the server that indicates too many fields were
sent in the request.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestFields 50</pre>
+
<hr />
<h2><a id="limitrequestfieldsize"
@@ -2028,8 +2052,13 @@ Syntax OK
<p>This directive gives the server administrator greater
control over abnormal client request behavior, which may be
- useful for avoiding some forms of denial-of-service attacks.
- Under normal conditions, the value should not be changed from
+ useful for avoiding some forms of denial-of-service attacks.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestFieldSize 16380</pre>
+
+ <p>Under normal conditions, the value should not be changed from
the default.</p>
<hr />
@@ -2068,8 +2097,13 @@ Syntax OK
<p>This directive gives the server administrator greater
control over abnormal client request behavior, which may be
- useful for avoiding some forms of denial-of-service attacks.
- Under normal conditions, the value should not be changed from
+ useful for avoiding some forms of denial-of-service attacks.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestLine 16380</pre>
+
+ <p>Under normal conditions, the value should not be changed from
the default.</p>
<hr />
@@ -2337,12 +2371,6 @@ Syntax OK
<th align="LEFT"><strong>Level</strong> </th>
<th align="LEFT"><strong>Description</strong> </th>
- </tr>
-
- <tr>
- <th>
- </th>
-
<th align="LEFT"><strong>Example</strong> </th>
</tr>
@@ -2350,12 +2378,6 @@ Syntax OK
<td><code>emerg</code> </td>
<td>Emergencies - system is unusable.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Child cannot open lock file. Exiting"</td>
</tr>
@@ -2363,12 +2385,6 @@ Syntax OK
<td><code>alert</code> </td>
<td>Action must be taken immediately.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"getpwuid: couldn't determine user name from uid"</td>
</tr>
@@ -2376,25 +2392,13 @@ Syntax OK
<td><code>crit</code> </td>
<td>Critical Conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
- <td>"socket: Failed to get a socket, exiting child"</td>
+ <td>"socket: Failed to get a socket, exiting child"</td>
</tr>
<tr>
<td><code>error</code> </td>
<td>Error conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Premature end of script headers"</td>
</tr>
@@ -2402,12 +2406,6 @@ Syntax OK
<td><code>warn</code> </td>
<td>Warning conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"child process 1234 did not exit, sending another
SIGHUP"</td>
</tr>
@@ -2416,12 +2414,6 @@ Syntax OK
<td><code>notice</code> </td>
<td>Normal but significant condition.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"httpd: caught SIGBUS, attempting to dump core in
..."</td>
</tr>
@@ -2430,12 +2422,6 @@ Syntax OK
<td><code>info</code> </td>
<td>Informational.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Server seems busy, (you may need to increase
StartServers, or Min/MaxSpareServers)..."</td>
</tr>
@@ -2444,12 +2430,6 @@ Syntax OK
<td><code>debug</code> </td>
<td>Debug-level messages</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Opening config file ..."</td>
</tr>
</table>
@@ -2462,6 +2442,11 @@ Syntax OK
<p>Using a level of at least <code>crit</code> is
recommended.</p>
+
+ <p>For example:</p>
+
+ <pre>LogLevel notice</pre>
+
<hr />
<h2><a id="maxclients" name="maxclients">MaxClients
@@ -2515,6 +2500,11 @@ Syntax OK
recommend that this setting be kept to a high value for maximum
server performance. In Apache 1.1, this is controlled through
an option to the KeepAlive directive.</p>
+
+ <p>For example</p>
+
+ <pre>MaxKeepAliveRequests 500</pre>
+
<hr />
<h2><a id="maxrequestsperchild"
diff --git a/usr.sbin/httpd/htdocs/manual/mod/core.html.html b/usr.sbin/httpd/htdocs/manual/mod/core.html.html
index 51b76400b5d..b00e22245c7 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/core.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/core.html.html
@@ -776,7 +776,7 @@
<em>MIME-type</em><br />
<a href="directive-dict.html#Default"
rel="Help"><strong>Default:</strong></a> <code>DefaultType
- text/html</code><br />
+ text/plain</code><br />
<a href="directive-dict.html#Context"
rel="Help"><strong>Context:</strong></a> server config, virtual
host, directory, .htaccess<br />
@@ -1260,7 +1260,10 @@
document.</strong></p>
<p>See Also: <a href="../custom-error.html">documentation of
- customizable responses.</a></p>
+ customizable responses.</a> See the <a
+ href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">HTTP
+ specification</a> for a complete list of the status codes and their
+ meanings.</p>
<hr />
<h2><a id="errorlog" name="errorlog">ErrorLog
@@ -1906,6 +1909,15 @@ Syntax OK
control both standard and nonstandard/unrecognized methods. See
the documentation for <a href="#limit">&lt;Limit&gt;</a> for
more details.</p>
+
+ <p>For example:</p>
+
+ <pre>
+ &lt;LimitExcept POST GET&gt;
+ Require valid-user
+ &lt;/LimitExcept&gt;
+ </pre>
+
<hr />
<h2><a id="limitrequestbody"
@@ -1949,6 +1961,13 @@ Syntax OK
control over abnormal client request behavior, which may be
useful for avoiding some forms of denial-of-service
attacks.</p>
+
+ <p>If, for example, you are permitting file upload to a particular
+ location, and wich to limit the size of the uploaded file to 100K,
+ you might use the following directive:</p>
+
+ <pre>LimitRequestBody 102400</pre>
+
<hr />
<h2><a id="limitrequestfields"
@@ -1991,6 +2010,11 @@ Syntax OK
The value should be increased if normal clients see an error
response from the server that indicates too many fields were
sent in the request.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestFields 50</pre>
+
<hr />
<h2><a id="limitrequestfieldsize"
@@ -2030,8 +2054,13 @@ Syntax OK
<p>This directive gives the server administrator greater
control over abnormal client request behavior, which may be
- useful for avoiding some forms of denial-of-service attacks.
- Under normal conditions, the value should not be changed from
+ useful for avoiding some forms of denial-of-service attacks.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestFieldSize 16380</pre>
+
+ <p>Under normal conditions, the value should not be changed from
the default.</p>
<hr />
@@ -2070,8 +2099,13 @@ Syntax OK
<p>This directive gives the server administrator greater
control over abnormal client request behavior, which may be
- useful for avoiding some forms of denial-of-service attacks.
- Under normal conditions, the value should not be changed from
+ useful for avoiding some forms of denial-of-service attacks.</p>
+
+ <p>For example:</p>
+
+ <pre>LimitRequestLine 16380</pre>
+
+ <p>Under normal conditions, the value should not be changed from
the default.</p>
<hr />
@@ -2339,12 +2373,6 @@ Syntax OK
<th align="LEFT"><strong>Level</strong> </th>
<th align="LEFT"><strong>Description</strong> </th>
- </tr>
-
- <tr>
- <th>
- </th>
-
<th align="LEFT"><strong>Example</strong> </th>
</tr>
@@ -2352,12 +2380,6 @@ Syntax OK
<td><code>emerg</code> </td>
<td>Emergencies - system is unusable.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Child cannot open lock file. Exiting"</td>
</tr>
@@ -2365,12 +2387,6 @@ Syntax OK
<td><code>alert</code> </td>
<td>Action must be taken immediately.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"getpwuid: couldn't determine user name from uid"</td>
</tr>
@@ -2378,25 +2394,13 @@ Syntax OK
<td><code>crit</code> </td>
<td>Critical Conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
- <td>"socket: Failed to get a socket, exiting child"</td>
+ <td>"socket: Failed to get a socket, exiting child"</td>
</tr>
<tr>
<td><code>error</code> </td>
<td>Error conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Premature end of script headers"</td>
</tr>
@@ -2404,12 +2408,6 @@ Syntax OK
<td><code>warn</code> </td>
<td>Warning conditions.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"child process 1234 did not exit, sending another
SIGHUP"</td>
</tr>
@@ -2418,12 +2416,6 @@ Syntax OK
<td><code>notice</code> </td>
<td>Normal but significant condition.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"httpd: caught SIGBUS, attempting to dump core in
..."</td>
</tr>
@@ -2432,12 +2424,6 @@ Syntax OK
<td><code>info</code> </td>
<td>Informational.</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Server seems busy, (you may need to increase
StartServers, or Min/MaxSpareServers)..."</td>
</tr>
@@ -2446,12 +2432,6 @@ Syntax OK
<td><code>debug</code> </td>
<td>Debug-level messages</td>
- </tr>
-
- <tr>
- <td>
- </td>
-
<td>"Opening config file ..."</td>
</tr>
</table>
@@ -2464,6 +2444,11 @@ Syntax OK
<p>Using a level of at least <code>crit</code> is
recommended.</p>
+
+ <p>For example:</p>
+
+ <pre>LogLevel notice</pre>
+
<hr />
<h2><a id="maxclients" name="maxclients">MaxClients
@@ -2517,6 +2502,11 @@ Syntax OK
recommend that this setting be kept to a high value for maximum
server performance. In Apache 1.1, this is controlled through
an option to the KeepAlive directive.</p>
+
+ <p>For example</p>
+
+ <pre>MaxKeepAliveRequests 500</pre>
+
<hr />
<h2><a id="maxrequestsperchild"
diff --git a/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.ja.jis
index fc7628b5b54..6529458d7ad 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/directive-dict.html.ja.jis
@@ -1,275 +1,310 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
- <head>
- <title>Apache $B$N%G%#%l%/%F%#%V$N2r@b$K;H$o$l$kMQ8l(B
- </title>
- </head>
-<!-- English revision: 1.4 -->
-
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Apache $B$N%G%#%l%/%F%#%V$N2r@b$K;H$o$l$kMQ8l(B</title>
+</head>
+<!-- English revision: 1.7 -->
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
- >
+<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080"
+alink="#FF0000">
<div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
- <h1 align="CENTER">Apache $B$N%G%#%l%/%F%#%V$N2r@b$K;H$o$l$kMQ8l(B</h1>
-
- <p>
- $B$=$l$>$l$N(B Apache $B%G%#%l%/%F%#%V$O!"<!$N$h$&$J6&DL$N=q<0$K$h$C$F5-=R$5$l$^$9(B:
- </p>
- <dl>
- <dd><a
- href="#Syntax"
- rel="Help"
- ><strong>$B9=J8(B:</strong></a> <em>directive-name</em> <em>some args</em>
- <br>
- <a
- href="#Default"
- rel="Help"
- ><strong>$B%G%U%)%k%H(B:</strong></a>
- <samp><em>directive-name default-value</em></samp>
- <br>
- <a
- href="#Context"
- rel="Help"
- ><strong>$B%3%s%F%-%9%H(B:</strong></a> <em>context-list</em>
- <br>
- <a
- href="#Override"
- rel="Help"
- ><strong>$B>e=q$-(B:</strong></a> <em>override</em>
- <br>
- <a
- href="#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> <em>status</em>
- <br>
- <a
- href="#Module"
- rel="Help"
- ><strong>$B%b%8%e!<%k(B:</strong></a> <em>module-name</em>
- <br>
- <a
- href="#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> <em>compatibility notes</em>
- </dd>
- </dl>
- <p>
- $B$3$N%I%-%e%a%s%H$G$O%G%#%l%/%F%#%V$N$=$l$>$l$NB0@-$,@bL@$5$l(B
- $B$F$$$^$9!#2DG=$J>l9g$O%G%#%l%/%F%#%V$,<h$jF@$k$9$Y$F$NCM$b=q$+$l$F$$$^$9!#(B
- </p>
-
- <h2>$B%G%#%l%/%F%#%V$NMQ8l(B</h2>
- <ul>
- <li><a href="#Syntax">$B9=J8(B</a>
- </li>
- <li><a href="#Default">$B%G%U%)%k%H(B</a>
- </li>
- <li><a href="#Context">$B%3%s%F%-%9%H(B</a>
- </li>
- <li><a href="#Override">$B>e=q$-(B</a>
- </li>
- <li><a href="#Status">$B%9%F!<%?%9(B</a>
- </li>
- <li><a href="#Module">$B%b%8%e!<%k(B</a>
- </li>
- <li><a href="#Compatibility">$B8_49@-(B</a>
- </li>
- </ul>
-
- <hr>
- <h2><a name="Syntax">$B9=J8(B</a></h2>
- <p>
- $B@_Dj%U%!%$%kCf$N%G%#%l%/%F%#%V$N=q<0$r<($7$^$9!#(B
- $B$3$N9=J8$O%G%#%l%/%F%#%VFCM-$J$N$G!">\:Y$O%G%#%l%/%F%#%V$N@bL@$r(B
- $B;2>H$7$F$/$@$5$$!#0lHLE*$K!"%G%#%l%/%F%#%VL>$N8e$K$O$$$/$D$+$N(B
- $B0z?t$,B3$-$^$9!#%*%W%7%g%J%k$J0z?t$O3g8L(B ($BLuCm(B: []) $B$G0O$^$l$F$$$^$9!#(B
- $B0z?t$,J#?t$NCM$r<h$jF@$k>l9g$O!"$=$l$i$NCM$O?bD>$NK@$GJ,3d$5$l$F$$$^$9!#(B
- $BJQ99$5$l$J$$%F%-%9%H$O%G%U%)%k%H$N%U%)%s%H$GI=<($5$l!"CV49$NI,MW$J(B
- $B0z?t$O6/D4$5$l$FI=<($5$l$^$9!#0z?t$N?t$,JQ$o$k%G%#%l%/%F%#%V$O:G8e$N(B
- $B0z?t$,7+$jJV$5$l$k$3$H$r<($9$?$a$K(B "..." $B$G=*$o$j$^$9!#(B
- </p>
-
- <hr>
- <h2><a name="Default">$B%G%U%)%k%H(B</a></h2>
- <p>
- $B%G%#%l%/%F%#%V$K%G%U%)%k%HCM(B (<em>$B$9$J$o$A(B</em>$B!"@_Dj%U%!%$%k$+$i(B
- $B>JN,$5$l$F$$$F$b!"(BApache $B%&%'%V%5!<%P$OFCDj$NCM$K@_Dj$5$l$F$$$k$+$N$h$&$K(B
- $BF0:n$7$^$9(B) $B$,$"$k>l9g$O$3$3$K5-=R$5$l$^$9!#(B
- $B%G%U%)%k%HCM$NL5$$>l9g!"$3$3$O(B &quot;<em>None</em>&quot; $B$H(B
- $B=q$+$l$^$9!#(B
- </p>
-
- <hr>
- <h2><a name="Context">$B%3%s%F%-%9%H(B</a></h2>
- <p>
- $B$3$l$O!"%5!<%P$N@_Dj%U%!%$%kCf$N$I$3$G%G%#%l%/%F%#%V$,M-8z$J$N$+$r<($7$^$9!#(B
- $B<!$K<($9CM$,0l$D0J>e%+%s%^6h@Z$j$GNs5s$5$l$F$$$^$9!#(B
- </p>
- <dl>
- <dt><strong>$B%5!<%P@_Dj%U%!%$%k(B</strong>
- </dt>
- <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k(B
- (<em>$BNc$($P(B</em>$B!"(B<samp>httpd.conf</samp>,
- <samp>srm.conf</samp>, <samp>access.conf</samp>)
- $BFb$G$O;HMQ$G$-$^$9$,!"(B
- <samp>&lt;VirtualHost&gt;</samp>$B$d(B <samp>&lt;Directory&gt;</samp> $B$NCf$G$O(B
- <strong>$B;HMQ$G$-$J$$(B</strong>$B$3$H$r<($7$^$9!#(B
- <samp>.htaccess</samp>$B%U%!%$%k$G$N;HMQ$O5v2D$5$l$F$$$^$;$s!#(B
- <p>
- </p>
- </dd>
- <dt><strong>$B%P!<%A%c%k%[%9%H(B</strong>
- </dt>
- <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B <samp>&lt;VirtualHost&gt;</samp>
- $B$NCf$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>$B%G%#%l%/%H%j(B</strong>
- </dt>
- <dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B <samp>&lt;Directory&gt;</samp>$B!"(B
- <samp>&lt;Location&gt;</samp>$B!"(B<samp>&lt;Files&gt;</samp>
- $B$NCf$G!"(B
- <a href="../sections.html"
- >Directory$B!"(BLocation$B!"(BFiles $B%;%/%7%g%s$N5!G=(B</a>
- $B$G@bL@$5$l$F$$$k@)8B$N2<$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>.htaccess</strong>
- </dt>
- <dd>$B$3$l$O!"%G%#%l%/%H%j(B<em>$BKh(B</em>$B$N(B <samp>.htaccess</samp> $B%U%!%$%kFb$G(B
- $B;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B
- $B$?$@!"(B<a
- href="#Override"
- rel="Help"
- >$B>e=q$-(B</a> $B$N@_Dj$K$h$C$F$O!"=hM}$5$l$J$$$+$b$7$l$^$;$s!#(B
- <p>
- </p>
- </dd>
- </dl>
- <p>
- $B%G%#%l%/%F%#%V$O;X<($5$l$?%3%s%F%-%9%H$G(B<em>$B$N$_(B</em>$B5v2D$5$l$^$9!#(B
- $BB>$N>l=j$G;H$*$&$H$9$k$H!"%5!<%P$,$=$N%3%s%F%-%9%H$r@5$7$/07$($J$/(B
- $B$J$k$h$&$J@_Dj%(%i!<$,H/@8$9$k$+!"%5!<%P$,$^$C$?$/F0:n$7$J$/$J$k!"(B
- <em>$B$9$J$o$A(B</em>$B!"%5!<%P$,5/F0$7$J$/$J$k$H$$$&$3$H$K$J$j$^$9!#(B
- </p>
- <p>
- $B%G%#%l%/%F%#%V$NM-8z$J0LCV$O!"<B:]$O5s$2$i$l$F$$$k%3%s%F%-%9%H$N(B
- $BO@M}OB(B ($BLuCm(B: Boolen OR) $B$K$J$j$^$9!#8@$$49$($k$H!"(B
- &quot;<samp>$B%5!<%P@_Dj%U%!%$%k!"(B.htaccess</samp>&quot; $B$GM-8z$@$H(B
- $B5-$5$l$F$$$k%G%#%l%/%F%#%V$O(B <samp>httpd.conf</samp> $B%U%!%$%k$H(B
- <samp>.htaccess</samp> $B%U%!%$%k$H$GM-8z$G$9$,!"(B
- <samp>&lt;Directory&gt;</samp> $B$d(B <samp>&lt;VirtualHost&gt;</samp>
- $B$NCf$G$O;HMQ$G$-$^$;$s!#(B
- </p>
-
- <hr>
- <h2><a name="Override">$B>e=q$-(B</a></h2>
- <p>
- $B$3$N%G%#%l%/%F%#%V$NB0@-$O!"(B<samp>.htaccess</samp> $B%U%!%$%kCf$K(B
- $B%G%#%l%/%F%#%V$,8=$l$?$H$-$K!"$=$l$N=hM}$rM-8z$K$9$k$?$a$K(B
- $B$I$N@_Dj$N>e=q$-$,I,MW$+$r<($7$^$9!#(B
- $B%G%#%l%/%F%#%V$N(B <a
- href="#Context"
- rel="Help"
- >$B%3%s%F%-%9%H(B</a>
- $B$,!"(B<samp>.htaccess</samp> $B%U%!%$%kCf$G$O5v2D$7$F$$$J$$>l9g$O!"(B
- $B$3$NB0@-$O(B &quot;<em>$BE,MQIT2D(B</em>&quot; $B$H=q$+$l$^$9!#(B
- </p>
- <p>
- $B>e=q$-$O!"(B<a
- href="core.html#allowoverride"
- rel="Help"
- ><samp>AllowOverride</samp></a>
- $B%G%#%l%/%F%#%V$K$h$C$FM-8z$K$5$l!"(B
- $BFCDj$N%9%3!<%W(B($B%G%#%l%/%H%j$J$I(B)$B$H!"(B
- $B$5$i$K2<0L$N%l%Y%k$N(B <samp>AllowOverride</samp> $B$G=$@5$5$l$J$$8B$j!"(B
- $B$=$NG[2<$KBP$7$FE,MQ$5$l$^$9!#(B
- $B%G%#%l%/%F%#%V$N%I%-%e%a%s%H$O<h$jF@$k>e=q$-$NL>A0$b5s$2$^$9!#(B
- </p>
-
- <hr>
- <h2><a name="Status">$B%9%F!<%?%9(B</a></h2>
- <p>
- $B$3$l$O%G%#%l%/%F%#%V$,(B Apache $B%&%'%V%5!<%P$K$I$l$/$i$$$-$D$/AH$_9~$^$l$F$$$k$+$r(B
- $B<($7$^$9!#8@$$49$($l$P!"%G%#%l%/%F%#%V$H$=$N5!G=$rMxMQ$9$k$?$a$K!"(B
- $B%b%8%e!<%k$N?t$rA}$d$7$F!"%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$(B
- $B$H$$$&$3$H$r<($7$^$9!#(B
- $B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:
- </p>
- <dl>
- <dt><strong>Core</strong>
- </dt>
- <dd>&quot;Core&quot; $B$N%G%#%l%/%F%#%V$O(B
- Apache $B%&%'%V%5!<%P$N4pK\$H$J$k$Y$-$b$N$G$"$j!"(B
- $B>o$K;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>Base</strong>
- </DT>
- <DD>&quot;Base&quot; $B$N%G%#%l%/%F%#%V$O(B
- $B%G%U%)%k%H$G%5!<%P$KAH$_9~$^$l$F$$$kI8=`%b%8%e!<%k$NCf$N0l$D$G%5(B
- $B%]!<%H$5$l$F$$$F!"$o$6$o$6@_Dj$+$i%b%8%e!<%k$r:o=|$7$?$H$-$r=|$$$F!"(B
- $BDL>o$G$O;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>Extension</strong>
- </dt>
- <dd>&quot;Extension&quot; $B$N%G%#%l%/%F%#%V$O!"(B
- Apache $B%5!<%P$NG[I[J*$KF1:-$5$l$F$$$k%b%8%e!<%k$N0l$D$GDs6!$5$l$F$$$k$b$N$N!"(B
- $BDL>o$G$O%5!<%P$KAH$_9~$^$l$F$$$J$$$3$H$r<($7$^$9!#(B
- $B%G%#%l%/%F%#%V$H$=$N5!G=$rM-8z$K$9$k$K$O!"%5!<%P%S%k%IMQ$N@_Dj%U%!%$%k$r(B
- $BJQ99$7$F(B Apache $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>Experimental</strong>
- </dt>
- <dd>&quot;Experimental&quot; $B$N%G%#%l%/%F%#%V$O!"(BApache $BG[I[J*$K(B
- $BF1:-$5$l$F$$$k$b$N$N!";n$7$?$$>l9g$O<+8J@UG$$G9T$J$&(B
- $BI,MW$,$"$k$H$$$&$3$H$r<($7$^$9!#%G%#%l%/%F%#%V$O!"$9$Y$F$N%I%-%e%a%s%H$r(B
- $B40A4$K$=$m$o$;$k$?$a$K2r@b$5$l$F$$$^$9$,!"%5%]!<%H$5$l$F$$$k$H$O8B$j$^$;$s!#(B
- $B%G%#%l%/%F%#%V$rDs6!$9$k%b%8%e!<%k$O%G%U%)%k%H$GAH$_9~$^$l$F$$$k$+$b(B
- $B$7$l$^$;$s$7!"$=$&$G$J$$$+$b$7$l$^$;$s!#;HMQ2DG=$+$I$&$+$O!"(B
- $B%G%#%l%/%F%#%V$H%b%8%e!<%k$N@bL@$r$7$F$$$k%Z!<%8$N@hF,$rD4$Y$F$/$@$5$$!#(B
- <p>
- </p>
- </dd>
- </dl>
-
- <hr>
- <h2><a name="Module">$B%b%8%e!<%k(B</a></h2>
- <p>
- $B$3$l$OC1=c$K%G%#%l%/%F%#%V$,Dj5A$5$l$F$$$k%b%8%e!<%k$NL>A0$r5-:\$7$^$9!#(B
- </p>
-
- <hr>
- <h2><a name="Compatibility">$B8_49@-(B</a></h2>
- <p>
- $B%G%#%l%/%F%#%V$,(B Apache 1 $B$NG[I[$KAH$_9~$^$l$F$$$J$+$C$?>l9g!"(B
- $B%G%#%l%/%F%#%V$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B
- $B%G%#%l%/%F%#%V$,(B NCSA HTTPd $B%5!<%P$N$b$N$HF1$8L>A0$G$"$k>l9g!"(B
- $B0[$J$k5sF0$,$"$k$H$3$3$K=q$+$l$^$9!#(B
- $B5sF0$,F1$8>l9g$O!"(B&quot;<em>$B8_49@-$NLdBjL5$7(B</em>&quot; $B$H=q$+$l$F$$$^$9!#(B
- </p>
+<h1 align="center">Apache
+$B$N%G%#%l%/%F%#%V$N2r@b$K;H$o$l$kMQ8l(B</h1>
+
+<p>$B$=$l$>$l$N(B Apache
+$B%G%#%l%/%F%#%V$O!"<!$N$h$&$J6&DL$N=q<0$K$h$C$F5-=R$5$l$^$9(B:</p>
+
+<dl>
+<dd><a href="#Syntax" rel="Help"><strong>$B9=J8(B:</strong></a>
+<em>directive-name</em> <em>some args</em><br />
+ <a href="#Default" rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a>
+<samp><em>directive-name default-value</em></samp><br />
+ <a href="#Context" rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+<em>context-list</em><br />
+ <a href="#Override" rel="Help"><strong>$B>e=q$-(B:</strong></a>
+<em>override</em><br />
+ <a href="#Status" rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a>
+<em>status</em><br />
+ <a href="#Module" rel="Help"><strong>$B%b%8%e!<%k(B:</strong></a>
+<em>module-name</em><br />
+ <a href="#Compatibility" rel="Help"><strong>$B8_49@-(B:</strong></a>
+<em>compatibility notes</em></dd>
+</dl>
+
+<p>$B$3$N%I%-%e%a%s%H$G$O%G%#%l%/%F%#%V$N$=$l$>$l$NB0@-$,@bL@$5$l(B
+$B$F$$$^$9!#2DG=$J>l9g$O%G%#%l%/%F%#%V$,<h$jF@$k$9$Y$F$NCM$b=q$+$l$F$$$^$9!#(B</p>
+
+<h2>$B%G%#%l%/%F%#%V$NMQ8l(B</h2>
+
+<ul>
+<li><a href="#Syntax">$B9=J8(B</a></li>
+
+<li><a href="#Default">$B%G%U%)%k%H(B</a></li>
+
+<li><a href="#Context">$B%3%s%F%-%9%H(B</a></li>
+
+<li><a href="#Override">$B>e=q$-(B</a></li>
+
+<li><a href="#Status">$B%9%F!<%?%9(B</a></li>
+
+<li><a href="#Module">$B%b%8%e!<%k(B</a></li>
+
+<li><a href="#Compatibility">$B8_49@-(B</a></li>
+</ul>
+
+<hr />
+<h2><a id="Syntax" name="Syntax">$B9=J8(B</a></h2>
+
+<p>$B@_Dj%U%!%$%kCf$N%G%#%l%/%F%#%V$N=q<0$r<($7$^$9!#(B
+$B$3$N9=J8$O%G%#%l%/%F%#%VFCM-$J$N$G!">\:Y$O%G%#%l%/%F%#%V$N@bL@$r(B
+$B;2>H$7$F$/$@$5$$!#0lHLE*$K!"%G%#%l%/%F%#%VL>$N8e$K$O(B
+$B6uGr$K$h$jJ,3d$5$l$?$$$/$D$+$N0z?t$,B3$-$^$9!#(B
+$B0z?t$,6uGr$r4^$`$H$-$OFs=E0zMQId(B ($BLuCm(B: ")
+$B$G0O$^$l$F$$$^$9!#(B $B%*%W%7%g%J%k$J0z?t$O3g8L(B ($BLuCm(B:
+[]) $B$G0O$^$l$F$$$^$9!#(B
+$B0z?t$,J#?t$NCM$r<h$jF@$k>l9g$O!"$=$l$i$NCM$O?bD>$NK@(B "|" $B$G(B
+$BJ,3d$5$l$F$$$^$9!#(B
+$BJQ99$5$l$J$$%F%-%9%H$O%G%U%)%k%H$N%U%)%s%H$GI=<($5$l!"CV49$NI,MW$J(B
+$B0z?t$O(B<em>$B6/D4$5$l$F(B</em>$BI=<($5$l$^$9!#(B
+$B0z?t$N?t$,JQ$o$k%G%#%l%/%F%#%V$O:G8e$N(B
+$B0z?t$,7+$jJV$5$l$k$3$H$r<($9$?$a$K(B "..." $B$G=*$o$j$^$9!#(B</p>
+
+<p>$B%G%#%l%/%F%#%V$OB?$/$N0c$&7?$N0z?t$r$H$j$^$9!#$$$/$D$+!"NI$/(B
+$B;H$o$l$k$b$N$r0J2<$GDj5A$7$^$9!#(B</p>
+
+<dl>
+<dt><em>URL</em></dt>
+
+<dd><code>http://www.example.com/path/to/file.html</code>
+$B$N$h$&$K!"(B
+$B%9%-!<%`!"%[%9%HL>!"%Q%9L>(B($B>JN,2DG=(B)$B$r4^$s$G$$$k40A4$J(B
+Uniform Resource Locator$B!#(B</dd>
+
+<dt><em>URL-path</em></dt>
+
+<dd><code>/path/to/file.html</code> $B$N$h$&$K!"%9%-!<%`$H(B
+$B%[%9%HL>$N8e$KB3$/(B <em>url</em> $B$N0lIt!#(B<em>url-path</em>
+$B$O(B $B%U%!%$%k%7%9%F%`$+$i$N;kE@$G$O$J$/!"(B
+$B%&%'%V$+$i$N;kE@$G%j%=!<%9$rI=8=$7$^$9!#(B</dd>
+
+<dt><em>file-path</em></dt>
+
+<dd><code>/usr/local/apache/htdocs/path/to/file.html</code>
+$B$N$h$&$K!"(B
+$B%k!<%H%G%#%l%/%H%j$+$i;O$^$k%m!<%+%k$N%U%!%$%k%7%9%F%`>e$N%U%!%$%k$X$N%Q%9!#(B
+$BDL>o!"%9%i%C%7%e$G;O$^$i$J$$(B <em>file-path</em> $B$O(B <a
+href="core.html#serverroot">ServerRoot</a> $B$+$i$NAjBP%Q%9$H$7$F(B
+$B07$o$l$^$9!#(B</dd>
+
+<dt><em>directory-path</em></dt>
+
+<dd><code>/usr/local/apache/htdocs/path/to/</code> $B$N$h$&$K!"(B
+$B%k!<%H%G%#%l%/%H%j$+$i;O$^$k%m!<%+%k$N%U%!%$%k%7%9%F%`$N%G%#%l%/%H%j$X$N(B
+$B%Q%9!#(B</dd>
+
+<dt><em>filename</em></dt>
+
+<dd><code>file.html</code> $B$N$h$&$K!"%Q%9>pJs$NIU$$$F$$$J$$(B
+$B%U%!%$%kL>!#(B</dd>
+
+<dt><em>regex</em></dt>
+
+<dd><a href="../misc/FAQ.html#regex">$B@55,I=8=(B</a>$B!#$3$l$O!"(B
+$B%F%-%9%H$N%^%C%A$N%Q%?!<%s$rI=$7$^$9!#%G%#%l%/%F%#%V$NDj5A$,(B
+<em>regex</em> $B$,2?$KBP$7$F%^%C%A$r9T$J$&$N$+$r;XDj$7$^$9!#(B</dd>
+
+<dt><em>extension</em></dt>
+
+<dd>$B0lHLE*$K$O(B <em>filename</em>
+$B$N:G8e$N%I%C%H$N8e$NItJ,$G$9!#(B $B$7$+$7!"(BApache
+$B$OJ#?t$N%U%!%$%k$N3HD%;R$rG'<1$7$^$9$N$G!"(B<em>filename</em>
+$B$KJ#?t$N%I%C%H$,$"$k$H!":G=i$N%I%C%H$N8e$N!"$=$l$>$l$N%I%C%H$GJ,N%$5$l$?ItJ,$,(B
+<em>extension</em> ($BLuCm(B: $B3HD%;R(B)
+$B$K$J$j$^$9!#Nc$($P!"(B<em>filename</em> <code>file.html.en</code>
+$B$K$OFs$D$N3HD%;R$,$"$j$^$9!#(B<code>.html</code> $B$H(B
+<code>.en</code> $B$G$9!#(BApache
+$B$N%G%#%l%/%F%#%V$G$O!"(B<em>extension</em>
+$B$O%I%C%HIU$-$G$bL5$7$G$b;XDj$G$-$^$9!#$5$i$K!"(B<em>extension</em>
+$B$O(B $BBgJ8;z>.J8;z$r6hJL$7$^$;$s!#(B</dd>
+
+<dt><em>MIME-type</em></dt>
+
+<dd><code>text/html</code> $B$N$h$&$K!"%9%i%C%7%e$GJ,N%$5$l$?(B
+$B<g%U%)!<%^%C%H$HI{%U%)!<%^%C%H$K$h$C$F%U%!%$%k$N7A<0$r(B
+$BI=$9J}K!$G$9!#(B</dd>
+
+<dt><em>env-variable</em></dt>
+
+<dd>Apache $B$N@_Dj$K$h$jDj5A$5$l$k(B <a
+href="../env.html">$B4D6-JQ?t(B</a>$B$NL>A0$G$9!#$3$l$O%*%Z%l!<%F%#%s%0%7%9%F%`$N(B
+$B4D6-JQ?t$HF1$8$H$O8B$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#>\:Y$O(B <a
+href="../env.html">$B4D6-JQ?t$N@bL@(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</dd>
+</dl>
+
+<hr />
+<h2><a id="Default" name="Default">$B%G%U%)%k%H(B</a></h2>
+
+<p>$B%G%#%l%/%F%#%V$K%G%U%)%k%HCM(B
+(<em>$B$9$J$o$A(B</em>$B!"@_Dj%U%!%$%k$+$i(B
+$B>JN,$5$l$F$$$F$b!"(BApache
+$B%&%'%V%5!<%P$OFCDj$NCM$K@_Dj$5$l$F$$$k$+$N$h$&$K(B
+$BF0:n$7$^$9(B) $B$,$"$k>l9g$O$3$3$K5-=R$5$l$^$9!#(B
+$B%G%U%)%k%HCM$NL5$$>l9g!"$3$3$O(B "<em>None</em>" $B$H(B
+$B=q$+$l$^$9!#$3$3$G=q$+$l$F$$$k%G%U%)%k%H$O%5!<%P$H6&$KG[I[$5$l$F$$$k(B
+$B%G%U%)%k%H$N(B httpd.conf
+$BFb$K=q$+$l$F$$$k%G%#%l%/%F%#%V$NCM$H(B
+$B0c$&2DG=@-$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
+
+<hr />
+<h2><a id="Context" name="Context">$B%3%s%F%-%9%H(B</a></h2>
+
+<p>
+$B$3$l$O!"%5!<%P$N@_Dj%U%!%$%kCf$N$I$3$G%G%#%l%/%F%#%V$,M-8z$J$N$+$r<($7$^$9!#(B
+$B<!$K<($9CM$,0l$D0J>e%+%s%^6h@Z$j$GNs5s$5$l$F$$$^$9!#(B</p>
+
+<dl>
+<dt><strong>$B%5!<%P@_Dj%U%!%$%k(B</strong></dt>
+
+<dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k(B
+(<em>$BNc$($P(B</em>$B!"(B<samp>httpd.conf</samp>,
+<samp>srm.conf</samp>, <samp>access.conf</samp>)
+$BFb$G$O;HMQ$G$-$^$9$,!"(B <samp>&lt;VirtualHost&gt;</samp>$B$d(B
+<samp>&lt;Directory&gt;</samp> $B$NCf$G$O(B
+<strong>$B;HMQ$G$-$J$$(B</strong>$B$3$H$r<($7$^$9!#(B
+<samp>.htaccess</samp>$B%U%!%$%k$G$N;HMQ$O5v2D$5$l$F$$$^$;$s!#(B</dd>
+
+<dt><strong>$B%P!<%A%c%k%[%9%H(B</strong></dt>
+
+<dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B <samp>&lt;VirtualHost&gt;</samp>
+$B$NCf$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B</dd>
+
+<dt><strong>$B%G%#%l%/%H%j(B</strong></dt>
+
+<dd>$B$3$l$O!"%5!<%P@_Dj%U%!%$%k$N(B
+<samp>&lt;Directory&gt;</samp>$B!"(B
+<samp>&lt;Location&gt;</samp>$B!"(B<samp>&lt;Files&gt;</samp>
+$B$NCf$G!"(B <a
+href="../sections.html">Directory$B!"(BLocation$B!"(BFiles
+$B%;%/%7%g%s$N5!G=(B</a>
+$B$G@bL@$5$l$F$$$k@)8B$N2<$G;HMQ$G$-$k$3$H$r<($7$^$9!#(B</dd>
+
+<dt><strong>.htaccess</strong></dt>
+
+<dd>$B$3$l$O!"%G%#%l%/%H%j(B<em>$BKh(B</em>$B$N(B
+<samp>.htaccess</samp> $B%U%!%$%kFb$G(B
+$B;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B $B$?$@!"(B<a href="#Override"
+rel="Help">$B>e=q$-(B</a>
+$B$N@_Dj$K$h$C$F$O!"=hM}$5$l$J$$$+$b$7$l$^$;$s!#(B</dd>
+</dl>
+
+<p>
+$B%G%#%l%/%F%#%V$O;X<($5$l$?%3%s%F%-%9%H$G(B<em>$B$N$_(B</em>$B5v2D$5$l$^$9!#(B
+$BB>$N>l=j$G;H$*$&$H$9$k$H!"%5!<%P$,$=$N%3%s%F%-%9%H$r@5$7$/07$($J$/(B
+$B$J$k$h$&$J@_Dj%(%i!<$,H/@8$9$k$+!"%5!<%P$,$^$C$?$/F0:n$7$J$/$J$k!"(B
+<em>$B$9$J$o$A(B</em>$B!"%5!<%P$,5/F0$7$J$/$J$k$H$$$&$3$H$K$J$j$^$9!#(B</p>
+
+<p>
+$B%G%#%l%/%F%#%V$NM-8z$J0LCV$O!"<B:]$O5s$2$i$l$F$$$k%3%s%F%-%9%H$N(B
+$BO@M}OB(B ($BLuCm(B: Boolen OR) $B$K$J$j$^$9!#8@$$49$($k$H!"(B
+"<samp>$B%5!<%P@_Dj%U%!%$%k!"(B.htaccess</samp>" $B$GM-8z$@$H(B
+$B5-$5$l$F$$$k%G%#%l%/%F%#%V$O(B <samp>httpd.conf</samp>
+$B%U%!%$%k$H(B <samp>.htaccess</samp> $B%U%!%$%k$H$GM-8z$G$9$,!"(B
+<samp>&lt;Directory&gt;</samp> $B$d(B
+<samp>&lt;VirtualHost&gt;</samp> $B$NCf$G$O;HMQ$G$-$^$;$s!#(B</p>
+
+<hr />
+<h2><a id="Override" name="Override">$B>e=q$-(B</a></h2>
+
+<p>$B$3$N%G%#%l%/%F%#%V$NB0@-$O!"(B<samp>.htaccess</samp>
+$B%U%!%$%kCf$K(B
+$B%G%#%l%/%F%#%V$,8=$l$?$H$-$K!"$=$l$N=hM}$rM-8z$K$9$k$?$a$K(B
+$B$I$N@_Dj$N>e=q$-$,I,MW$+$r<($7$^$9!#(B $B%G%#%l%/%F%#%V$N(B <a
+href="#Context" rel="Help">$B%3%s%F%-%9%H(B</a>
+$B$,!"(B<samp>.htaccess</samp>
+$B%U%!%$%kCf$G$O5v2D$7$F$$$J$$>l9g$O!"(B $B$3$NB0@-$O(B
+"<em>$BE,MQIT2D(B</em>" $B$H=q$+$l$^$9!#(B</p>
+
+<p>$B>e=q$-$O!"(B<a href="core.html#allowoverride"
+rel="Help"><samp>AllowOverride</samp></a>
+$B%G%#%l%/%F%#%V$K$h$C$FM-8z$K$5$l!"(B
+$BFCDj$N%9%3!<%W(B($B%G%#%l%/%H%j$J$I(B)$B$H!"(B
+$B$5$i$K2<0L$N%l%Y%k$N(B <samp>AllowOverride</samp>
+$B$G=$@5$5$l$J$$8B$j!"(B $B$=$NG[2<$KBP$7$FE,MQ$5$l$^$9!#(B
+$B%G%#%l%/%F%#%V$N%I%-%e%a%s%H$O<h$jF@$k>e=q$-$NL>A0$b5s$2$^$9!#(B</p>
+
+<hr />
+<h2><a id="Status" name="Status">$B%9%F!<%?%9(B</a></h2>
+
+<p>$B$3$l$O%G%#%l%/%F%#%V$,(B Apache
+$B%&%'%V%5!<%P$K$I$l$/$i$$$-$D$/AH$_9~$^$l$F$$$k$+$r(B
+$B<($7$^$9!#8@$$49$($l$P!"%G%#%l%/%F%#%V$H$=$N5!G=$rMxMQ$9$k$?$a$K!"(B
+$B%b%8%e!<%k$N?t$rA}$d$7$F!"%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$(B
+$B$H$$$&$3$H$r<($7$^$9!#(B
+$B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:</p>
+
+<dl>
+<dt><strong>Core</strong></dt>
+
+<dd>"Core" $B$N%G%#%l%/%F%#%V$O(B Apache
+$B%&%'%V%5!<%P$N4pK\$H$J$k$Y$-$b$N$G$"$j!"(B
+$B>o$K;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B</dd>
+
+<dt><strong>Base</strong></dt>
+
+<dd>"Base" $B$N%G%#%l%/%F%#%V$O(B
+$B%G%U%)%k%H$G%5!<%P$KAH$_9~$^$l$F$$$kI8=`%b%8%e!<%k$NCf$N0l$D$G%5(B
+$B%]!<%H$5$l$F$$$F!"$o$6$o$6@_Dj$+$i%b%8%e!<%k$r:o=|$7$?$H$-$r=|$$$F!"(B
+$BDL>o$G$O;HMQ2DG=$G$"$k$3$H$r<($7$^$9!#(B</dd>
+
+<dt><strong>Extension</strong></dt>
+
+<dd>"Extension" $B$N%G%#%l%/%F%#%V$O!"(B Apache
+$B%5!<%P$NG[I[J*$KF1:-$5$l$F$$$k%b%8%e!<%k$N0l$D$GDs6!$5$l$F$$$k$b$N$N!"(B
+$BDL>o$G$O%5!<%P$KAH$_9~$^$l$F$$$J$$$3$H$r<($7$^$9!#(B
+$B%G%#%l%/%F%#%V$H$=$N5!G=$rM-8z$K$9$k$K$O!"%5!<%P%S%k%IMQ$N@_Dj%U%!%$%k$r(B
+$BJQ99$7$F(B Apache $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B</dd>
+
+<dt><strong>Experimental</strong></dt>
+
+<dd>"Experimental" $B$N%G%#%l%/%F%#%V$O!"(BApache $BG[I[J*$K(B
+$BF1:-$5$l$F$$$k$b$N$N!";n$7$?$$>l9g$O<+8J@UG$$G9T$J$&(B
+$BI,MW$,$"$k$H$$$&$3$H$r<($7$^$9!#%G%#%l%/%F%#%V$O!"$9$Y$F$N%I%-%e%a%s%H$r(B
+$B40A4$K$=$m$o$;$k$?$a$K2r@b$5$l$F$$$^$9$,!"%5%]!<%H$5$l$F$$$k$H$O8B$j$^$;$s!#(B
+$B%G%#%l%/%F%#%V$rDs6!$9$k%b%8%e!<%k$O%G%U%)%k%H$GAH$_9~$^$l$F$$$k$+$b(B
+$B$7$l$^$;$s$7!"$=$&$G$J$$$+$b$7$l$^$;$s!#;HMQ2DG=$+$I$&$+$O!"(B
+$B%G%#%l%/%F%#%V$H%b%8%e!<%k$N@bL@$r$7$F$$$k%Z!<%8$N@hF,$rD4$Y$F$/$@$5$$!#(B</dd>
+</dl>
+
+<hr />
+<h2><a id="Module" name="Module">$B%b%8%e!<%k(B</a></h2>
+
+<p>
+$B$3$l$OC1=c$K%G%#%l%/%F%#%V$,Dj5A$5$l$F$$$k%b%8%e!<%k$NL>A0$r5-:\$7$^$9!#(B</p>
+
+<hr />
+<h2><a id="Compatibility" name="Compatibility">$B8_49@-(B</a></h2>
+
+<p>$B%G%#%l%/%F%#%V$,(B Apache 1
+$B$NG[I[$KAH$_9~$^$l$F$$$J$+$C$?>l9g!"(B
+$B%G%#%l%/%F%#%V$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B
+$B%G%#%l%/%F%#%V$,(B NCSA HTTPd
+$B%5!<%P$N$b$N$HF1$8L>A0$G$"$k>l9g!"(B
+$B0[$J$k5sF0$,$"$k$H$3$3$K=q$+$l$^$9!#(B
+$B5sF0$,F1$8>l9g$O!"(B"<em>$B8_49@-$NLdBjL5$7(B</em>"
+$B$H=q$+$l$F$$$^$9!#(B</p>
+
<hr />
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
- </body>
+</body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis
index 33140b1b3d7..dcf484d8d85 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/directives.html.ja.jis
@@ -7,7 +7,7 @@
<title>Apache $B%G%#%l%/%F%#%V(B</title>
</head>
- <!-- English revision: 1.71 -->
+ <!-- English revision: 1.74 -->
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
vlink="#000080" alink="#ff0000">
@@ -188,6 +188,8 @@
<li><a href="core.html#contentdigest">ContentDigest</a></li>
+ <li><a href="mod_usertrack.html#cookiedomain">CookieDomain</a></li>
+
<li><a href="mod_usertrack.html#cookieexpires"
>CookieExpires</a></li>
@@ -197,6 +199,8 @@
<li><a href="mod_log_config.html#cookielog">CookieLog</a>
(mod_log_config)</li>
+ <li><a href="mod_usertrack.html#cookiestyle">CookieStyle</a></li>
+
<li><a href="mod_usertrack.html#cookietracking"
>CookieTracking</a></li>
@@ -254,6 +258,8 @@
<li><a href="mod_autoindex.html#fancyindexing"
>FancyIndexing</a></li>
+ <li><a href="core.html#fileetag">FileETag</a></li>
+
<li><a href="core.html#files">&lt;Files&gt;</a></li>
<li><a href="core.html#filesmatch"
@@ -269,7 +275,7 @@
>HeaderName</a></li>
<li><a href="core.html#hostnamelookups"
- >HostNameLookups</a></li>
+ >HostnameLookups</a></li>
<li><a href="core.html#identitycheck">IdentityCheck</a></li>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.ja.jis
index e35ead611b3..dbc6ec20bd1 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/index-bytype.html.ja.jis
@@ -265,3 +265,270 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+
+ <title>Apache $B%b%8%e!<%k(B</title>
+ </head>
+ <!-- English revision: 1.12 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Apache $B%b%8%e!<%k(B</h1>
+
+ <p>Apache $B$NG[I[$K4^$^$l$F$$$k%b%8%e!<%k$O!"0J2<$NDL$j$G$9!#(B
+ <a href="./">$B%"%k%U%!%Y%C%H=g(B</a> $B$d(B <a href="directives.html">Apache $B$NA4%G%#%l%/%F%#%V(B</a>
+ $B$N%"%k%U%!%Y%C%H=g%j%9%H$b;2>H$7$F$/$@$5$$!#(B
+ Apache $B$NG[I[$K4^$^$l$J$$(B Apache $B%b%8%e!<%k$K$D$$$F$O(B <a
+ href="http://modules.apache.org/">http://modules.apache.org</a> $B$r;2>H$7$F$/$@$5$$!#(B</p>
+
+ <h2>$B%3%"(B</h2>
+
+ <dl>
+ <dt><a href="core.html">Core</a></dt>
+
+ <dd>Apache $B$N%3%"(B</dd>
+ </dl>
+
+ <h2>$B4D6-JQ?t$NA`:n(B</h2>
+
+ <dl>
+ <dt><a href="mod_env.html">mod_env</a></dt>
+
+ <dd>CGI $B%9%/%j%W%H$KBP$7$F$5$^$6$^$J4D6-JQ?t$rEO$9(B</dd>
+
+ <dt><a href="mod_setenvif.html">mod_setenvif</a> Apache 1.3 $B0J9_(B</dt>
+
+ <dd>$B%/%i%$%"%s%H$N>pJs$r85$K4D6-JQ?t$r@_Dj$9$k(B</dd>
+
+ <dt><a href="mod_unique_id.html">mod_unique_id</a> Apache 1.3
+ and up</dt>
+
+ <dd>$B%j%/%(%9%HKh$K!"0l0U$J%j%/%(%9%H(B ID $B$r@8@.$9$k(B</dd>
+ </dl>
+
+ <h2>$B%3%s%F%s%D$N<oN`$r7hDj$9$k(B</h2>
+
+ <dl>
+ <dt><a href="mod_mime.html">mod_mime</a></dt>
+
+ <dd>$B%U%!%$%k$N3HD%;R$rMxMQ$7$F%I%-%e%a%s%H%?%$%W$NH=Dj$r9T$J$&(B</dd>
+
+ <dt><a href="mod_mime_magic.html">mod_mime_magic</a></dt>
+
+ <dd>"$B%^%8%C%/%J%s%P!<(B" $B$rMxMQ$7$F%I%-%e%a%s%H%?%$%W$NH=Dj$r9T$J$&(B</dd>
+
+ <dt><a href="mod_negotiation.html">mod_negotiation</a></dt>
+
+ <dd>$B%3%s%F%s%H%M%4%7%(!<%7%g%s5!G=$rDs6!$9$k(B</dd>
+ </dl>
+
+ <h2>URL $B$N%^%C%T%s%0$r9T$&(B</h2>
+
+ <dl>
+ <dt><a href="mod_alias.html">mod_alias</a></dt>
+
+ <dd>$B%[%9%H%U%!%$%k%7%9%F%`$N%I%-%e%a%s%H%D%j!<$X$N%^%C%T%s%05Z$S(B URL $B$N%j%@%$%l%/%7%g%s$r9T$J$&(B</dd>
+
+ <dt><a href="mod_rewrite.html">mod_rewrite</a> Apache 1.2 $B0J9_(B</dt>
+
+ <dd>$B@55,I=8=$rMxMQ$7$?!"(BURI $B$+$i%U%!%$%kL>$X$N6/NO$J%^%C%T%s%05!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_userdir.html">mod_userdir</a></dt>
+
+ <dd>$B%f!<%6$N%[!<%`%G%#%l%/%H%j$K%"%/%;%9$9$k5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_speling.html">mod_speling</a> Apache 1.3 $B0J9_(B</dt>
+
+ <dd>URL $B$N>.$5$J5-=R%_%9$r<+F0E*$K=$@5$9$k(B</dd>
+
+ <dt><a href="mod_vhost_alias.html">mod_vhost_alias</a> Apache 1.3.7 $B0J9_(B</dt>
+
+ <dd>$B$?$/$5$s$N%P!<%A%c%k%[%9%H@_Dj$rF0E*$K9=@.$9$k(B</dd>
+ </dl>
+
+ <h2>$B%G%#%l%/%H%j$r<h$j07$&(B</h2>
+
+ <dl>
+ <dt><a href="mod_dir.html">mod_dir</a></dt>
+
+ <dd>$B%G%#%l%/%H%j$N<h$j07$$$K$D$$$F$N!"4pK\E*$J5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_autoindex.html">mod_autoindex</a></dt>
+
+ <dd>$B<+F0E*$K%G%#%l%/%H%j0lMw$r:n@.$9$k(B</dd>
+ </dl>
+
+ <h2>$B%"%/%;%9@)8f(B</h2>
+
+ <dl>
+ <dt><a href="mod_access.html">mod_access</a></dt>
+
+ <dd>$B%/%i%$%"%s%H$N%[%9%HL>$d(B IP $B%"%I%l%9$K$h$C$F%"%/%;%9@)8f$r9T$J$&(B</dd>
+
+ <dt><a href="mod_auth.html">mod_auth</a></dt>
+
+ <dd>$B%F%-%9%H%U%!%$%k7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?(B $B%f!<%6G'>Z5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_auth_dbm.html">mod_auth_dbm</a></dt>
+
+ <dd>DBM $B7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?%f!<%6G'>Z5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_auth_db.html">mod_auth_db</a></dt>
+
+ <dd>Berkeley DB $B7A<0$NG'>Z%U%!%$%k$r;HMQ$7$?%f!<%6G'>Z5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_auth_anon.html">mod_auth_anon</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>$BG'>Z$,I,MW$H$J$k%(%j%"$X$NF?L>(B (anonymous) $B$G$N%"%/%;%95!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_auth_digest.html">mod_auth_digest</a> Apache 1.3.8 $B0J9_(B</dt>
+
+ <dd>MD5 $B$r;HMQ$7$?G'>Z5!G=(B ($BLuCm(B: Digest $BG'>Z(B) $B$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_digest.html">mod_digest</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>MD5 $BG'>Z(B ($BLuCm(B: Digest $BG'>Z(B) $B5!G=$rDs6!$9$k(B
+ (mod_auth_digest $B$K$h$j!"(Bmod_digest $B$OHs?d>)$K$J$C$F$$$k(B)</dd>
+ </dl>
+
+ <h2>HTTP $B%l%9%]%s%9(B</h2>
+
+ <dl>
+ <dt><a href="mod_headers.html">mod_headers</a> Apache 1.2 $B0J9_(B</dt>
+
+ <dd>$B%j%=!<%9$KG$0U$N(B HTTP $B%X%C%@$r2C$($k(B</dd>
+
+ <dt><a href="mod_cern_meta.html">mod_cern_meta</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>HTTP $B%X%C%@%a%?%U%!%$%k$r%5%]!<%H$9$k(B</dd>
+
+ <dt><a href="mod_expires.html">mod_expires</a> Apache 1.2 $B0J9_(B</dt>
+
+ <dd>$B%j%=!<%9$K(B Expires: $B%X%C%@$rE,MQ$9$k(B</dd>
+
+ <dt><a href="mod_asis.html">mod_asis</a></dt>
+
+ <dd>HTTP $B%X%C%@$r4^$`%U%!%$%k$rAw?.$9$k(B</dd>
+ </dl>
+
+ <h2>$BF0E*%3%s%F%s%D(B</h2>
+
+ <dl>
+ <dt><a href="mod_include.html">mod_include</a></dt>
+
+ <dd>SSI $B%I%-%e%a%s%H$rM-8z$K$9$k(B</dd>
+
+ <dt><a href="mod_cgi.html">mod_cgi</a></dt>
+
+ <dd>CGI $B%9%/%j%W%H$r<B9T$9$k(B</dd>
+
+ <dt><a href="mod_actions.html">mod_actions</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>$B%a%G%#%"%?%$%W$d%j%/%(%9%H%a%=%C%I$K$h$C$F(B CGI $B%9%/%j%W%H$r<B9T$9$k(B</dd>
+
+ <dt><a href="mod_isapi.html">mod_isapi</a> WIN32 $B$N$_(B</dt>
+
+ <dd>Windows ISAPI $B%(%/%9%F%s%7%g%s$r%5%]!<%H$9$k(B</dd>
+ </dl>
+
+ <h2>$BFbIt%3%s%F%s%D%O%s%I%i(B-</h2>
+
+ <dl>
+ <dt><a href="mod_status.html">mod_status</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>$B%5!<%P$N2TF0>u67$rI=<($9$k(B</dd>
+
+ <dt><a href="mod_info.html">mod_info</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>$B%5!<%P$N@_Dj>pJs$r1\Mw$9$k(B</dd>
+ </dl>
+
+ <h2>$B%m%.%s%0(B</h2>
+
+ <dl>
+ <dt><a href="mod_log_config.html">mod_log_config</a></dt>
+
+ <dd>mod_log_common $B$NBe$o$j$H$J$k$b$N$G!"%f!<%6$,=q<0$r@_Dj$G$-$k(B</dd>
+
+ <dt><a href="mod_log_agent.html">mod_log_agent</a></dt>
+
+ <dd>User Agent $B$N%m%0$r5-O?$9$k(B</dd>
+
+ <dt><a href="mod_log_referer.html">mod_log_referer</a></dt>
+
+ <dd>$B%I%-%e%a%s%H$N;2>H85(B (REFERER) $B$N%m%0$r5-O?$9$k(B</dd>
+
+ <dt><a href="mod_usertrack.html">mod_usertrack</a> Apache 1.2 $B0J9_(B</dt>
+
+ <dd>cookie $B$K$h$j%f!<%6$NDI@W$r9T$J$&(B (mod_cookies.c $B$rCV$-49$($?$b$N(B)</dd>
+ </dl>
+
+ <h2>$B$=$NB>(B</h2>
+
+ <dl>
+ <dt><a href="mod_imap.html">mod_imap</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>$B%$%a!<%8%^%C%W%U%!%$%k$r<h$j07$&5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_proxy.html">mod_proxy</a> Apache 1.1 $B0J9_(B</dt>
+
+ <dd>proxy $B%-%c%C%7%e5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_so.html">mod_so</a> Apache 1.3 $B0J9_(B</dt>
+
+ <dd>$B<B9T;~$K%b%8%e!<%k(B (UNIX$B$G$O(B .so$B!"(BWin32 $B$G$O(B .dll) $B$rF0E*FI$_9~$_$9$k5!G=$rDs6!$9$k(B</dd>
+
+ <dt><a href="mod_mmap_static.html">mod_mmap_static</a> Apache $B0J9_(B</dt>
+
+ <dd>$B%U%!%$%k$N%-%c%C%7%s%0$r9T$J$&<B83E*$J%b%8%e!<%k$G!"(B
+ $B%U%!%$%k$r%a%b%jFb$K%^%C%T%s%0$9$k$3$H$K$h$j(B $B%Q%U%)!<%^%s%9$r8~>e$5$;$k(B</dd>
+ </dl>
+
+ <h2>$B3+H/MQ(B</h2>
+
+ <dl>
+ <dt><a href="mod_example.html">mod_example</a> Apache 1.2 $B0J9_(B</dt>
+
+ <dd>Apache API $B$N%G%b%s%9%H%l!<%7%g%sMQ(B</dd>
+ </dl>
+
+ <h2>$B8=:_$G$OMxMQ$5$l$F$$$J$$%b%8%e!<%k(B</h2>
+
+ <dl>
+ <dt><a href="mod_browser.html">mod_browser</a> Apache 1.2.* $B$N$_(B</dt>
+
+ <dd>User-Agent $BJ8;zNs$r85$K4D6-JQ?t$r@_Dj$9$k!#(B Apache 1.3 $B0J9_$K$*$$$F!"(Bmod_setenvif $B$GCV$-49$($i$l$?(B</dd>
+
+ <dt><a href="mod_cookies.html">mod_cookies</a> Apache 1.1.1 $B0J9_(B</dt>
+
+ <dd>Netscape $B$N$h$&$J(B cookie $B$r%5%]!<%H$9$k!#(B Apache 1.2 $B$K$*$$$F!"(Bmod_usertrack $B$KCV$-49$($i$l$?(B</dd>
+
+ <dt><a href="mod_dld.html">mod_dld</a> Apache 1.2.* $B0JA0(B</dt>
+
+ <dd>GNU libdld $B$rMQ$$$F5/F0;~$K%b%8%e!<%k$N%j%s%/$r9T$J$&!#(B Apache 1.3 $B$K$*$$$F!"(Bmod_so $B$KCV$-49$($i$l$?(B</dd>
+
+ <dt><a href="mod_log_common.html">mod_log_common</a> Apache 1.1.1 $B0J9_(B</dt>
+
+ <dd>Common Logfile Format $B$G$NI8=`E*$J=q<0$K$h$j%m%0$r5-O?$9$k!#(B Apache 1.2 $B0J9_$K$*$$$F!"(Bmod_log_config $B%b%8%e!<%k$KCV$-49$($i$l$?(B</dd>
+ </dl>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html
index a55cd16f226..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html
@@ -1,346 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_access</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_access</h1>
-
- <p>This module provides access control based on client
- hostname, IP address, or other characteristics of the client
- request.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> mod_access.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- access_module</p>
-
- <h2>Summary</h2>
-
- <p>The directives provided by mod_access are used in <code><a
- href="core.html#directory">&lt;Directory&gt;</a>, <a
- href="core.html#files">&lt;Files&gt;</a>,</code> and <code><a
- href="core.html#location">&lt;Location&gt;</a></code> sections
- as well as <code><a
- href="core.html#accessfilename">.htaccess</a></code> files to
- control access to particular parts of the server. Access can be
- controlled based on the client hostname, IP address, or other
- characteristics of the client request, as captured in <a
- href="../env.html">environment variables</a>. The
- <code>Allow</code> and <code>Deny</code> directives are used to
- specify which clients are or are not allowed access to the
- server, while the <code>Order</code> directive sets the default
- access state, and configures how the <code>Allow</code> and
- <code>Deny</code> directives interact with each other.</p>
-
- <p>Both host-based access restrictions and password-based
- authentication may be implemented simultaneously. In that case,
- the <a href="core.html#satsify">Satisfy</a> directive is used
- to determine how the two sets of restrictions interact.</p>
-
- <p>In general, access restriction directives apply to all
- access methods (<code>GET</code>, <code>PUT</code>,
- <code>POST</code>, etc). This is the desired behavior in most
- cases. However, it is possible to restrict some methods, while
- leaving other methods unrestricted, by enclosing the directives
- in a <a href="core.html#limit">&lt;Limit&gt;</a> section.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#allow">Allow</a></li>
-
- <li><a href="#deny">Deny</a></li>
-
- <li><a href="#order">Order</a></li>
- </ul>
-
- <p>See also <a href="core.html#satisfy">Satisfy</a> and <a
- href="core.html#require">Require</a>.</p>
- <hr />
-
- <h2><a id="allow" name="allow">Allow</a> <a id="allowfromenv"
- name="allowfromenv">directive</a></h2>
-
- <p>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> Allow from
- all|<em>host</em>|env=<em>env-variable</em>
- [<em>host</em>|env=<em>env-variable</em>] ...<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> directory,
- .htaccess<br />
- <a href="directive-dict.html#Override"
- rel="Help"><strong>Override:</strong></a> Limit<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_access</p>
-
- <p>The <code>Allow</code> directive affects which hosts can
- access an area of the server. Access can be controlled by
- hostname, IP Address, IP Address range, or by other
- characteristics of the client request captured in environment
- variables.</p>
-
- <p>The first argument to this directive is always
- <code>from</code>. The subsequent arguments can take three
- different forms. If <code>Allow from all</code> is specified,
- then all hosts are allowed access, subject to the configuration
- of the <code>Deny</code> and <code>Order</code> directives as
- discussed below. To allow only particular hosts or groups of
- hosts to access the server, the <em>host</em> can be specified
- in any of the following formats:</p>
-
- <dl>
- <dt>A (partial) domain-name</dt>
-
- <dd>Example: <code>Allow from apache.org</code><br />
- Hosts whose names match, or end in, this string are allowed
- access. Only complete components are matched, so the above
- example will match <code>foo.apache.org</code> but it will
- not match <code>fooapache.org</code>. This configuration will
- cause the server to perform a reverse DNS lookup on the
- client IP address, regardless of the setting of the <a
- href="core.html#hostnamelookups">HostnameLookups</a>
- directive.</dd>
-
- <dt>A full IP address</dt>
-
- <dd>Example: <code>Allow from 10.1.2.3</code><br />
- An IP address of a host allowed access</dd>
-
- <dt>A partial IP address</dt>
-
- <dd>Example: <code>Allow from 10.1</code><br />
- The first 1 to 3 bytes of an IP address, for subnet
- restriction.</dd>
-
- <dt>A network/netmask pair</dt>
-
- <dd>Example: <code>Allow from
- 10.1.0.0/255.255.0.0</code><br />
- A network a.b.c.d, and a netmask w.x.y.z. For more
- fine-grained subnet restriction. (Apache 1.3 and later)</dd>
-
- <dt>A network/nnn CIDR specification</dt>
-
- <dd>Example: <code>Allow from 10.1.0.0/16</code><br />
- Similar to the previous case, except the netmask consists of
- nnn high-order 1 bits. (Apache 1.3 and later)</dd>
- </dl>
-
- <p>Note that the last three examples above match exactly the
- same set of hosts.</p>
-
- <p>The third format of the arguments to the <code>Allow</code>
- directive allows access to the server to be controlled based on
- the existence of an <a href="../env.html">environment
- variable</a>. When <code>Allow from
- env=</code><em>env-variable</em> is specified, then the request
- is allowed access if the environment variable
- <em>env-variable</em> exists. The server provides the ability
- to set environment variables in a flexible way based on
- characteristics of the client request using the directives
- provided by <a href="mod_setenvif.html">mod_setenvif</a>.
- Therefore, this directive can be used to allow access based on
- such factors as the clients <code>User-Agent</code> (browser
- type), <code>Referer</code>, or other HTTP request header
- fields.</p>
-
- <p>Example:</p>
-
- <blockquote>
-<pre>
-SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
-&lt;Directory /docroot&gt;
- Order Deny,Allow
- Deny from all
- Allow from env=let_me_in
-&lt;/Directory&gt;
-</pre>
- </blockquote>
-
- <p>In this case, browsers with a user-agent string beginning
- with <tt>KnockKnock/2.0</tt> will be allowed access, and all
- others will be denied.</p>
-
- <p>See also <a href="#deny">Deny</a>, <a
- href="#order">Order</a> and <a
- href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
- <hr />
-
- <h2><a id="deny" name="deny">Deny</a> <a id="denyfromenv"
- name="denyfromenv">directive</a></h2>
-
- <p>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> Deny from
- all|<em>host</em>|env=<em>env-variable</em>
- [<em>host</em>|env=<em>env-variable</em>] ...<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> directory,
- .htaccess<br />
- <a href="directive-dict.html#Override"
- rel="Help"><strong>Override:</strong></a> Limit<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_access</p>
-
- <p>This directive allows access to the server to be restricted
- based on hostname, IP address, or environment variables. The
- arguments for the <code>Deny</code> directive are identical to
- the arguments for the <a href="#allow">Allow</a> directive.</p>
-
- <p>See also <a href="#allow">Allow</a>, <a
- href="#order">Order</a> and <a
- href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
- <hr />
-
- <h2><a id="order" name="order">Order directive</a></h2>
-
- <p>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> Order
- <em>ordering</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>Order
- Deny,Allow</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> directory,
- .htaccess<br />
- <a href="directive-dict.html#Override"
- rel="Help"><strong>Override:</strong></a> Limit<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_access</p>
-
- <p>The <code>Order</code> directive controls the default access
- state and the order in which <a href="#allow">Allow</a> and <a
- href="#deny">Deny</a> directives are evaluated.
- <em>Ordering</em> is one of</p>
-
- <dl>
- <dt>Deny,Allow</dt>
-
- <dd>The <code>Deny</code> directives are evaluated before the
- <code>Allow</code> directives. Access is allowed by default.
- Any client which does not match a <code>Deny</code> directive
- or does match an <code>Allow</code> directive will be allowed
- access to the server.</dd>
-
- <dt>Allow,Deny</dt>
-
- <dd>The <code>Allow</code> directives are evaluated before
- the <code>Deny</code> directives. Access is denied by
- default. Any client which does not match an
- <code>Allow</code> directive or does match a
- <code>Deny</code> directive will be denied access to the
- server.</dd>
-
- <dt>Mutual-failure</dt>
-
- <dd>Only those hosts which appear on the <code>Allow</code>
- list and do not appear on the <code>Deny</code> list are
- granted access. This ordering has the same effect as
- <code>Order Allow,Deny</code> and is deprecated in favor of
- that configuration.</dd>
- </dl>
-
- <p>Keywords may only be separated by a comma; no whitespace is
- allowed between them. Note that in all cases every
- <code>Allow</code> and <code>Deny</code> statement is
- evaluated.</p>
-
- <p>In the following example, all hosts in the apache.org domain
- are allowed access; all other hosts are denied access.</p>
-
- <blockquote>
- <code>Order Deny,Allow<br />
- Deny from all<br />
- Allow from apache.org<br />
- </code>
- </blockquote>
-
- <p>In the next example, all hosts in the apache.org domain are
- allowed access, except for the hosts which are in the
- foo.apache.org subdomain, who are denied access. All hosts not
- in the apache.org domain are denied access because the default
- state is to deny access to the server.</p>
-
- <blockquote>
- <code>Order Allow,Deny<br />
- Allow from apache.org<br />
- Deny from foo.apache.org<br />
- </code>
- </blockquote>
-
- <p>On the other hand, if the <code>Order</code> in the last
- example is changed to <code>Deny,Allow</code>, all hosts will
- be allowed access. This happens because, regardless of the
- actual ordering of the directives in the configuration file,
- the <code>Allow from apache.org</code> will be evaluated last
- and will override the <code>Deny from foo.apache.org</code>.
- All hosts not in the <code>apache.org</code> domain will also
- be allowed access because the default state will change to
- <em>allow</em>.</p>
-
- <p>The presence of an <code>Order</code> directive can affect
- access to a part of the server even in the absence of
- accompanying <code>Allow</code> and <code>Deny</code>
- directives because of its effect on the default access state.
- For example,</p>
-
- <blockquote>
- <code>&lt;Directory /www&gt;<br />
- &nbsp;&nbsp;Order Allow,Deny<br />
- &lt;/Directory&gt;</code>
- </blockquote>
-
- <p>will deny all access to the <code>/www</code> directory
- because the default access state will be set to
- <em>deny</em>.</p>
-
- <p>The <code>Order</code> directive controls the order of
- access directive processing only within each phase of the
- server's configuration processing. This implies, for example,
- that an <code>Allow</code> or <code>Deny</code> directive
- occurring in a &lt;Location&gt; section will always be
- evaluated after an <code>Allow</code> or <code>Deny</code>
- directive occurring in a &lt;Directory&gt; section or
- <code>.htaccess</code> file, regardless of the setting of the
- <code>Order</code> directive. For details on the merging of
- configuration sections, see the documentation on <a
- href="../sections.html">How Directory, Location and Files
- sections work</a>.</p>
-
- <p>See also: <a href="#deny">Deny</a> and <a
- href="#allow">Allow</a>. <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </p>
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.en
index a55cd16f226..08b36a8bf09 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.en
@@ -344,3 +344,349 @@ SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_access</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_access</h1>
+
+ <p>This module provides access control based on client
+ hostname, IP address, or other characteristics of the client
+ request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_access.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ access_module</p>
+
+ <h2>Summary</h2>
+
+ <p>The directives provided by mod_access are used in <code><a
+ href="core.html#directory">&lt;Directory&gt;</a>, <a
+ href="core.html#files">&lt;Files&gt;</a>,</code> and <code><a
+ href="core.html#location">&lt;Location&gt;</a></code> sections
+ as well as <code><a
+ href="core.html#accessfilename">.htaccess</a></code> files to
+ control access to particular parts of the server. Access can be
+ controlled based on the client hostname, IP address, or other
+ characteristics of the client request, as captured in <a
+ href="../env.html">environment variables</a>. The
+ <code>Allow</code> and <code>Deny</code> directives are used to
+ specify which clients are or are not allowed access to the
+ server, while the <code>Order</code> directive sets the default
+ access state, and configures how the <code>Allow</code> and
+ <code>Deny</code> directives interact with each other.</p>
+
+ <p>Both host-based access restrictions and password-based
+ authentication may be implemented simultaneously. In that case,
+ the <a href="core.html#satsify">Satisfy</a> directive is used
+ to determine how the two sets of restrictions interact.</p>
+
+ <p>In general, access restriction directives apply to all
+ access methods (<code>GET</code>, <code>PUT</code>,
+ <code>POST</code>, etc). This is the desired behavior in most
+ cases. However, it is possible to restrict some methods, while
+ leaving other methods unrestricted, by enclosing the directives
+ in a <a href="core.html#limit">&lt;Limit&gt;</a> section.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#allow">Allow</a></li>
+
+ <li><a href="#deny">Deny</a></li>
+
+ <li><a href="#order">Order</a></li>
+ </ul>
+
+ <p>See also <a href="core.html#satisfy">Satisfy</a> and <a
+ href="core.html#require">Require</a>.</p>
+ <hr />
+
+ <h2><a id="allow" name="allow">Allow</a> <a id="allowfromenv"
+ name="allowfromenv">directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Allow from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Allow</code> directive affects which hosts can
+ access an area of the server. Access can be controlled by
+ hostname, IP Address, IP Address range, or by other
+ characteristics of the client request captured in environment
+ variables.</p>
+
+ <p>The first argument to this directive is always
+ <code>from</code>. The subsequent arguments can take three
+ different forms. If <code>Allow from all</code> is specified,
+ then all hosts are allowed access, subject to the configuration
+ of the <code>Deny</code> and <code>Order</code> directives as
+ discussed below. To allow only particular hosts or groups of
+ hosts to access the server, the <em>host</em> can be specified
+ in any of the following formats:</p>
+
+ <dl>
+ <dt>A (partial) domain-name</dt>
+
+ <dd>Example: <code>Allow from apache.org</code><br />
+ Hosts whose names match, or end in, this string are allowed
+ access. Only complete components are matched, so the above
+ example will match <code>foo.apache.org</code> but it will
+ not match <code>fooapache.org</code>. This configuration will
+ cause the server to perform a reverse DNS lookup on the
+ client IP address, regardless of the setting of the <a
+ href="core.html#hostnamelookups">HostnameLookups</a>
+ directive.</dd>
+
+ <dt>A full IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1.2.3</code><br />
+ An IP address of a host allowed access</dd>
+
+ <dt>A partial IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1</code><br />
+ The first 1 to 3 bytes of an IP address, for subnet
+ restriction.</dd>
+
+ <dt>A network/netmask pair</dt>
+
+ <dd>Example: <code>Allow from
+ 10.1.0.0/255.255.0.0</code><br />
+ A network a.b.c.d, and a netmask w.x.y.z. For more
+ fine-grained subnet restriction. (Apache 1.3 and later)</dd>
+
+ <dt>A network/nnn CIDR specification</dt>
+
+ <dd>Example: <code>Allow from 10.1.0.0/16</code><br />
+ Similar to the previous case, except the netmask consists of
+ nnn high-order 1 bits. (Apache 1.3 and later)</dd>
+ </dl>
+
+ <p>Note that the last three examples above match exactly the
+ same set of hosts.</p>
+
+ <p>The third format of the arguments to the <code>Allow</code>
+ directive allows access to the server to be controlled based on
+ the existence of an <a href="../env.html">environment
+ variable</a>. When <code>Allow from
+ env=</code><em>env-variable</em> is specified, then the request
+ is allowed access if the environment variable
+ <em>env-variable</em> exists. The server provides the ability
+ to set environment variables in a flexible way based on
+ characteristics of the client request using the directives
+ provided by <a href="mod_setenvif.html">mod_setenvif</a>.
+ Therefore, this directive can be used to allow access based on
+ such factors as the clients <code>User-Agent</code> (browser
+ type), <code>Referer</code>, or other HTTP request header
+ fields.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+<pre>
+SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
+&lt;Directory /docroot&gt;
+ Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+&lt;/Directory&gt;
+</pre>
+ </blockquote>
+
+ <p>In this case, browsers with a user-agent string beginning
+ with <tt>KnockKnock/2.0</tt> will be allowed access, and all
+ others will be denied.</p>
+
+ <p>See also <a href="#deny">Deny</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="deny" name="deny">Deny</a> <a id="denyfromenv"
+ name="denyfromenv">directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Deny from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>This directive allows access to the server to be restricted
+ based on hostname, IP address, or environment variables. The
+ arguments for the <code>Deny</code> directive are identical to
+ the arguments for the <a href="#allow">Allow</a> directive.</p>
+
+ <p>See also <a href="#allow">Allow</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="order" name="order">Order directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Order
+ <em>ordering</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>Order
+ Deny,Allow</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Order</code> directive controls the default access
+ state and the order in which <a href="#allow">Allow</a> and <a
+ href="#deny">Deny</a> directives are evaluated.
+ <em>Ordering</em> is one of</p>
+
+ <dl>
+ <dt>Deny,Allow</dt>
+
+ <dd>The <code>Deny</code> directives are evaluated before the
+ <code>Allow</code> directives. Access is allowed by default.
+ Any client which does not match a <code>Deny</code> directive
+ or does match an <code>Allow</code> directive will be allowed
+ access to the server.</dd>
+
+ <dt>Allow,Deny</dt>
+
+ <dd>The <code>Allow</code> directives are evaluated before
+ the <code>Deny</code> directives. Access is denied by
+ default. Any client which does not match an
+ <code>Allow</code> directive or does match a
+ <code>Deny</code> directive will be denied access to the
+ server.</dd>
+
+ <dt>Mutual-failure</dt>
+
+ <dd>Only those hosts which appear on the <code>Allow</code>
+ list and do not appear on the <code>Deny</code> list are
+ granted access. This ordering has the same effect as
+ <code>Order Allow,Deny</code> and is deprecated in favor of
+ that configuration.</dd>
+ </dl>
+
+ <p>Keywords may only be separated by a comma; no whitespace is
+ allowed between them. Note that in all cases every
+ <code>Allow</code> and <code>Deny</code> statement is
+ evaluated.</p>
+
+ <p>In the following example, all hosts in the apache.org domain
+ are allowed access; all other hosts are denied access.</p>
+
+ <blockquote>
+ <code>Order Deny,Allow<br />
+ Deny from all<br />
+ Allow from apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>In the next example, all hosts in the apache.org domain are
+ allowed access, except for the hosts which are in the
+ foo.apache.org subdomain, who are denied access. All hosts not
+ in the apache.org domain are denied access because the default
+ state is to deny access to the server.</p>
+
+ <blockquote>
+ <code>Order Allow,Deny<br />
+ Allow from apache.org<br />
+ Deny from foo.apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>On the other hand, if the <code>Order</code> in the last
+ example is changed to <code>Deny,Allow</code>, all hosts will
+ be allowed access. This happens because, regardless of the
+ actual ordering of the directives in the configuration file,
+ the <code>Allow from apache.org</code> will be evaluated last
+ and will override the <code>Deny from foo.apache.org</code>.
+ All hosts not in the <code>apache.org</code> domain will also
+ be allowed access because the default state will change to
+ <em>allow</em>.</p>
+
+ <p>The presence of an <code>Order</code> directive can affect
+ access to a part of the server even in the absence of
+ accompanying <code>Allow</code> and <code>Deny</code>
+ directives because of its effect on the default access state.
+ For example,</p>
+
+ <blockquote>
+ <code>&lt;Directory /www&gt;<br />
+ &nbsp;&nbsp;Order Allow,Deny<br />
+ &lt;/Directory&gt;</code>
+ </blockquote>
+
+ <p>will deny all access to the <code>/www</code> directory
+ because the default access state will be set to
+ <em>deny</em>.</p>
+
+ <p>The <code>Order</code> directive controls the order of
+ access directive processing only within each phase of the
+ server's configuration processing. This implies, for example,
+ that an <code>Allow</code> or <code>Deny</code> directive
+ occurring in a &lt;Location&gt; section will always be
+ evaluated after an <code>Allow</code> or <code>Deny</code>
+ directive occurring in a &lt;Directory&gt; section or
+ <code>.htaccess</code> file, regardless of the setting of the
+ <code>Order</code> directive. For details on the merging of
+ configuration sections, see the documentation on <a
+ href="../sections.html">How Directory, Location and Files
+ sections work</a>.</p>
+
+ <p>See also: <a href="#deny">Deny</a> and <a
+ href="#allow">Allow</a>. <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.html
index af0b80cc74c..ba3a1df852d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_access.html.html
@@ -348,3 +348,353 @@ SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_access</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_access</h1>
+
+ <p>This module provides access control based on client
+ hostname, IP address, or other characteristics of the client
+ request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_access.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ access_module</p>
+
+ <h2>Summary</h2>
+
+ <p>The directives provided by mod_access are used in <code><a
+ href="core.html#directory">&lt;Directory&gt;</a>, <a
+ href="core.html#files">&lt;Files&gt;</a>,</code> and <code><a
+ href="core.html#location">&lt;Location&gt;</a></code> sections
+ as well as <code><a
+ href="core.html#accessfilename">.htaccess</a></code> files to
+ control access to particular parts of the server. Access can be
+ controlled based on the client hostname, IP address, or other
+ characteristics of the client request, as captured in <a
+ href="../env.html">environment variables</a>. The
+ <code>Allow</code> and <code>Deny</code> directives are used to
+ specify which clients are or are not allowed access to the
+ server, while the <code>Order</code> directive sets the default
+ access state, and configures how the <code>Allow</code> and
+ <code>Deny</code> directives interact with each other.</p>
+
+ <p>Both host-based access restrictions and password-based
+ authentication may be implemented simultaneously. In that case,
+ the <a href="core.html#satsify">Satisfy</a> directive is used
+ to determine how the two sets of restrictions interact.</p>
+
+ <p>In general, access restriction directives apply to all
+ access methods (<code>GET</code>, <code>PUT</code>,
+ <code>POST</code>, etc). This is the desired behavior in most
+ cases. However, it is possible to restrict some methods, while
+ leaving other methods unrestricted, by enclosing the directives
+ in a <a href="core.html#limit">&lt;Limit&gt;</a> section.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#allow">Allow</a></li>
+
+ <li><a href="#deny">Deny</a></li>
+
+ <li><a href="#order">Order</a></li>
+ </ul>
+
+ <p>See also <a href="core.html#satisfy">Satisfy</a> and <a
+ href="core.html#require">Require</a>.</p>
+ <hr />
+
+ <h2><a id="allow" name="allow">Allow</a> <a id="allowfromenv"
+ name="allowfromenv">directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Allow from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Allow</code> directive affects which hosts can
+ access an area of the server. Access can be controlled by
+ hostname, IP Address, IP Address range, or by other
+ characteristics of the client request captured in environment
+ variables.</p>
+
+ <p>The first argument to this directive is always
+ <code>from</code>. The subsequent arguments can take three
+ different forms. If <code>Allow from all</code> is specified,
+ then all hosts are allowed access, subject to the configuration
+ of the <code>Deny</code> and <code>Order</code> directives as
+ discussed below. To allow only particular hosts or groups of
+ hosts to access the server, the <em>host</em> can be specified
+ in any of the following formats:</p>
+
+ <dl>
+ <dt>A (partial) domain-name</dt>
+
+ <dd>Example: <code>Allow from apache.org</code><br />
+ Hosts whose names match, or end in, this string are allowed
+ access. Only complete components are matched, so the above
+ example will match <code>foo.apache.org</code> but it will
+ not match <code>fooapache.org</code>. This configuration will
+ cause the server to perform a reverse DNS lookup on the
+ client IP address, regardless of the setting of the <a
+ href="core.html#hostnamelookups">HostnameLookups</a>
+ directive.</dd>
+
+ <dt>A full IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1.2.3</code><br />
+ An IP address of a host allowed access</dd>
+
+ <dt>A partial IP address</dt>
+
+ <dd>Example: <code>Allow from 10.1</code><br />
+ The first 1 to 3 bytes of an IP address, for subnet
+ restriction.</dd>
+
+ <dt>A network/netmask pair</dt>
+
+ <dd>Example: <code>Allow from
+ 10.1.0.0/255.255.0.0</code><br />
+ A network a.b.c.d, and a netmask w.x.y.z. For more
+ fine-grained subnet restriction. (Apache 1.3 and later)</dd>
+
+ <dt>A network/nnn CIDR specification</dt>
+
+ <dd>Example: <code>Allow from 10.1.0.0/16</code><br />
+ Similar to the previous case, except the netmask consists of
+ nnn high-order 1 bits. (Apache 1.3 and later)</dd>
+ </dl>
+
+ <p>Note that the last three examples above match exactly the
+ same set of hosts.</p>
+
+ <p>The third format of the arguments to the <code>Allow</code>
+ directive allows access to the server to be controlled based on
+ the existence of an <a href="../env.html">environment
+ variable</a>. When <code>Allow from
+ env=</code><em>env-variable</em> is specified, then the request
+ is allowed access if the environment variable
+ <em>env-variable</em> exists. The server provides the ability
+ to set environment variables in a flexible way based on
+ characteristics of the client request using the directives
+ provided by <a href="mod_setenvif.html">mod_setenvif</a>.
+ Therefore, this directive can be used to allow access based on
+ such factors as the clients <code>User-Agent</code> (browser
+ type), <code>Referer</code>, or other HTTP request header
+ fields.</p>
+
+ <p>Example:</p>
+
+ <blockquote>
+<pre>
+SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
+&lt;Directory /docroot&gt;
+ Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+&lt;/Directory&gt;
+</pre>
+ </blockquote>
+
+ <p>In this case, browsers with a user-agent string beginning
+ with <tt>KnockKnock/2.0</tt> will be allowed access, and all
+ others will be denied.</p>
+
+ <p>See also <a href="#deny">Deny</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="deny" name="deny">Deny</a> <a id="denyfromenv"
+ name="denyfromenv">directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Deny from
+ all|<em>host</em>|env=<em>env-variable</em>
+ [<em>host</em>|env=<em>env-variable</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>This directive allows access to the server to be restricted
+ based on hostname, IP address, or environment variables. The
+ arguments for the <code>Deny</code> directive are identical to
+ the arguments for the <a href="#allow">Allow</a> directive.</p>
+
+ <p>See also <a href="#allow">Allow</a>, <a
+ href="#order">Order</a> and <a
+ href="mod_setenvif.html#SetEnvIf">SetEnvIf</a>.</p>
+ <hr />
+
+ <h2><a id="order" name="order">Order directive</a></h2>
+
+ <p>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Order
+ <em>ordering</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>Order
+ Deny,Allow</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> directory,
+ .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Limit<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_access</p>
+
+ <p>The <code>Order</code> directive controls the default access
+ state and the order in which <a href="#allow">Allow</a> and <a
+ href="#deny">Deny</a> directives are evaluated.
+ <em>Ordering</em> is one of</p>
+
+ <dl>
+ <dt>Deny,Allow</dt>
+
+ <dd>The <code>Deny</code> directives are evaluated before the
+ <code>Allow</code> directives. Access is allowed by default.
+ Any client which does not match a <code>Deny</code> directive
+ or does match an <code>Allow</code> directive will be allowed
+ access to the server.</dd>
+
+ <dt>Allow,Deny</dt>
+
+ <dd>The <code>Allow</code> directives are evaluated before
+ the <code>Deny</code> directives. Access is denied by
+ default. Any client which does not match an
+ <code>Allow</code> directive or does match a
+ <code>Deny</code> directive will be denied access to the
+ server.</dd>
+
+ <dt>Mutual-failure</dt>
+
+ <dd>Only those hosts which appear on the <code>Allow</code>
+ list and do not appear on the <code>Deny</code> list are
+ granted access. This ordering has the same effect as
+ <code>Order Allow,Deny</code> and is deprecated in favor of
+ that configuration.</dd>
+ </dl>
+
+ <p>Keywords may only be separated by a comma; no whitespace is
+ allowed between them. Note that in all cases every
+ <code>Allow</code> and <code>Deny</code> statement is
+ evaluated.</p>
+
+ <p>In the following example, all hosts in the apache.org domain
+ are allowed access; all other hosts are denied access.</p>
+
+ <blockquote>
+ <code>Order Deny,Allow<br />
+ Deny from all<br />
+ Allow from apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>In the next example, all hosts in the apache.org domain are
+ allowed access, except for the hosts which are in the
+ foo.apache.org subdomain, who are denied access. All hosts not
+ in the apache.org domain are denied access because the default
+ state is to deny access to the server.</p>
+
+ <blockquote>
+ <code>Order Allow,Deny<br />
+ Allow from apache.org<br />
+ Deny from foo.apache.org<br />
+ </code>
+ </blockquote>
+
+ <p>On the other hand, if the <code>Order</code> in the last
+ example is changed to <code>Deny,Allow</code>, all hosts will
+ be allowed access. This happens because, regardless of the
+ actual ordering of the directives in the configuration file,
+ the <code>Allow from apache.org</code> will be evaluated last
+ and will override the <code>Deny from foo.apache.org</code>.
+ All hosts not in the <code>apache.org</code> domain will also
+ be allowed access because the default state will change to
+ <em>allow</em>.</p>
+
+ <p>The presence of an <code>Order</code> directive can affect
+ access to a part of the server even in the absence of
+ accompanying <code>Allow</code> and <code>Deny</code>
+ directives because of its effect on the default access state.
+ For example,</p>
+
+ <blockquote>
+ <code>&lt;Directory /www&gt;<br />
+ &nbsp;&nbsp;Order Allow,Deny<br />
+ &lt;/Directory&gt;</code>
+ </blockquote>
+
+ <p>will deny all access to the <code>/www</code> directory
+ because the default access state will be set to
+ <em>deny</em>.</p>
+
+ <p>The <code>Order</code> directive controls the order of
+ access directive processing only within each phase of the
+ server's configuration processing. This implies, for example,
+ that an <code>Allow</code> or <code>Deny</code> directive
+ occurring in a &lt;Location&gt; section will always be
+ evaluated after an <code>Allow</code> or <code>Deny</code>
+ directive occurring in a &lt;Directory&gt; section or
+ <code>.htaccess</code> file, regardless of the setting of the
+ <code>Order</code> directive. For details on the merging of
+ configuration sections, see the documentation on <a
+ href="../sections.html">How Directory, Location and Files
+ sections work</a>.</p>
+
+ <p>See also: <a href="#deny">Deny</a> and <a
+ href="#allow">Allow</a>. <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html
index 6d7283a85f6..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html
@@ -1,159 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Module mod_actions</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_actions</h1>
-
- <p>This module provides for executing CGI scripts based on
- media type or request method.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a>
- mod_actions.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- actions_module<br />
- <a href="module-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Available in
- Apache 1.1 and later.</p>
-
- <h2>Summary</h2>
-
- <p>This module has two directives. The Action directive lets
- you run CGI scripts whenever a file of a certain type is
- requested. The Script directive lets you run CGI scripts
- whenever a particular method is used in a request. This makes
- it much easier to execute scripts that process files.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#action">Action</a></li>
-
- <li><a href="#script">Script</a></li>
- </ul>
- <hr />
-
- <h2><a id="action" name="action">Action directive</a></h2>
-
- <p><a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> Action <em>action-type
- cgi-script</em><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config, virtual
- host, directory, .htaccess<br />
- <a href="directive-dict.html#Override"
- rel="Help"><strong>Override:</strong></a> FileInfo<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_actions<br />
- <a href="directive-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Action is only
- available in Apache 1.1 and later</p>
-
- <p>This directive adds an action, which will activate
- <em>cgi-script</em> when <em>action-type</em> is triggered by
- the request. The <em>action-type</em> can be either a <a
- href="../handler.html">handler</a> or a MIME content type. It
- sends the URL and file path of the requested document using the
- standard CGI PATH_INFO and PATH_TRANSLATED environment
- variables.</p>
-
- <p>Examples:</p>
- <pre>
- # Requests for files of a particular type:
- Action image/gif /cgi-bin/images.cgi
-
- # Files of a particular file extension
- AddHandler my-file-type .xyz
- Action my-file-type /cgi-bin/program.cgi
- </pre>
-
- <p>In the first example, requests for files with a MIME content
- type of <code>image/gif</code> will instead be handled by the
- specified cgi script <code>/cgi-bin/images.cgi</code>.</p>
-
- <p>In the second example, requests for files with a file extension of
- <code>.xyz</code> are handled instead by the specified cgi script
- <code>/cgi-bin/program.cgi</code>.</p>
-
- <p><strong>See also</strong>: <a
- href="mod_mime.html#addhandler">AddHandler</a></p>
-
- <hr />
-
- <h2><a id="script" name="script">Script directive</a></h2>
-
- <p><a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> Script <em>method
- cgi-script</em><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config, virtual
- host, directory<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_actions<br />
- <a href="directive-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Script is only
- available in Apache 1.1 and later; arbitrary method use is only
- available with 1.3.10 and later</p>
-
- <p>This directive adds an action, which will activate
- <i>cgi-script</i> when a file is requested using the method of
- <i>method</i>. It sends the URL and file path of the requested
- document using the standard CGI PATH_INFO and PATH_TRANSLATED
- environment variables.</p>
-
- <blockquote>
- Prior to Apache 1.3.10, <i>method</i> can only be one of
- <code>GET</code>, <code>POST</code>, <code>PUT</code>, or
- <code>DELETE</code>. As of 1.3.10, any arbitrary method name
- may be used. <b>Method names are case-sensitive</b>, so
- <code>Script&nbsp;PUT</code> and <code>Script&nbsp;put</code>
- have two entirely different effects.
- </blockquote>
-
- <p>Note that the Script command defines default actions only.
- If a CGI script is called, or some other resource that is
- capable of handling the requested method internally, it will do
- so. Also note that Script with a method of <code>GET</code>
- will only be called if there are query arguments present
- (<em>e.g.</em>, foo.html?hi). Otherwise, the request will
- proceed normally.</p>
-
- <p>Examples:</p>
-<pre>
- # For &lt;ISINDEX&gt;-style searching
- Script GET /cgi-bin/search
- # A CGI PUT handler
- Script PUT /~bob/put.cgi
-</pre>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.en
index d35fd74ca1e..d32d1d2d5f4 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.en
@@ -161,3 +161,166 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Module mod_actions</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_actions</h1>
+
+ <p>This module provides for executing CGI scripts based on
+ media type or request method.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_actions.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ actions_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module has two directives. The Action directive lets
+ you run CGI scripts whenever a file of a certain type is
+ requested. The Script directive lets you run CGI scripts
+ whenever a particular method is used in a request. This makes
+ it much easier to execute scripts that process files.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#action">Action</a></li>
+
+ <li><a href="#script">Script</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="action" name="action">Action directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Action <em>action-type
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Action is only
+ available in Apache 1.1 and later</p>
+
+ <p>This directive adds an action, which will activate
+ <em>cgi-script</em> when <em>action-type</em> is triggered by the
+ request. The <i>cgi-script</i> is the URL-path to a resource that
+ has been configured as a CGI script using <code>ScriptAlias</code>
+ or <code>AddHandler</code>. The <em>action-type</em> can be either
+ a <a href="../handler.html">handler</a> or a MIME content type. It
+ sends the URL and file path of the requested document using the
+ standard CGI PATH_INFO and PATH_TRANSLATED environment
+ variables.</p>
+
+ <p>Examples:</p>
+ <pre>
+ # Requests for files of a particular type:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Files of a particular file extension
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+ </pre>
+
+ <p>In the first example, requests for files with a MIME content
+ type of <code>image/gif</code> will instead be handled by the
+ specified cgi script <code>/cgi-bin/images.cgi</code>.</p>
+
+ <p>In the second example, requests for files with a file extension of
+ <code>.xyz</code> are handled instead by the specified cgi script
+ <code>/cgi-bin/program.cgi</code>.</p>
+
+ <p><strong>See also</strong>: <a
+ href="mod_mime.html#addhandler">AddHandler</a></p>
+
+ <hr />
+
+ <h2><a id="script" name="script">Script directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Script <em>method
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Script is only
+ available in Apache 1.1 and later; arbitrary method use is only
+ available with 1.3.10 and later</p>
+
+ <p>This directive adds an action, which will activate
+ <i>cgi-script</i> when a file is requested using the method of
+ <i>method</i>. The <i>cgi-script</i> is the URL-path to a resource
+ that has been configured as a CGI script using
+ <code>ScriptAlias</code> or <code>AddHandler</code>. The URL and
+ file path of the requested document is sent using the standard CGI
+ PATH_INFO and PATH_TRANSLATED environment variables.</p>
+
+ <blockquote>
+ Prior to Apache 1.3.10, <i>method</i> can only be one of
+ <code>GET</code>, <code>POST</code>, <code>PUT</code>, or
+ <code>DELETE</code>. As of 1.3.10, any arbitrary method name
+ may be used. <b>Method names are case-sensitive</b>, so
+ <code>Script&nbsp;PUT</code> and <code>Script&nbsp;put</code>
+ have two entirely different effects.
+ </blockquote>
+
+ <p>Note that the Script command defines default actions only.
+ If a CGI script is called, or some other resource that is
+ capable of handling the requested method internally, it will do
+ so. Also note that Script with a method of <code>GET</code>
+ will only be called if there are query arguments present
+ (<em>e.g.</em>, foo.html?hi). Otherwise, the request will
+ proceed normally.</p>
+
+ <p>Examples:</p>
+<pre>
+ # For &lt;ISINDEX&gt;-style searching
+ Script GET /cgi-bin/search
+ # A CGI PUT handler
+ Script PUT /~bob/put.cgi
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.html
index d605c880dfb..08f3a92b78d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.html
@@ -165,3 +165,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Module mod_actions</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_actions</h1>
+
+ <p>This module provides for executing CGI scripts based on
+ media type or request method.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_actions.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ actions_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module has two directives. The Action directive lets
+ you run CGI scripts whenever a file of a certain type is
+ requested. The Script directive lets you run CGI scripts
+ whenever a particular method is used in a request. This makes
+ it much easier to execute scripts that process files.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#action">Action</a></li>
+
+ <li><a href="#script">Script</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="action" name="action">Action directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Action <em>action-type
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Action is only
+ available in Apache 1.1 and later</p>
+
+ <p>This directive adds an action, which will activate
+ <em>cgi-script</em> when <em>action-type</em> is triggered by the
+ request. The <i>cgi-script</i> is the URL-path to a resource that
+ has been configured as a CGI script using <code>ScriptAlias</code>
+ or <code>AddHandler</code>. The <em>action-type</em> can be either
+ a <a href="../handler.html">handler</a> or a MIME content type. It
+ sends the URL and file path of the requested document using the
+ standard CGI PATH_INFO and PATH_TRANSLATED environment
+ variables.</p>
+
+ <p>Examples:</p>
+ <pre>
+ # Requests for files of a particular type:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Files of a particular file extension
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+ </pre>
+
+ <p>In the first example, requests for files with a MIME content
+ type of <code>image/gif</code> will instead be handled by the
+ specified cgi script <code>/cgi-bin/images.cgi</code>.</p>
+
+ <p>In the second example, requests for files with a file extension of
+ <code>.xyz</code> are handled instead by the specified cgi script
+ <code>/cgi-bin/program.cgi</code>.</p>
+
+ <p><strong>See also</strong>: <a
+ href="mod_mime.html#addhandler">AddHandler</a></p>
+
+ <hr />
+
+ <h2><a id="script" name="script">Script directive</a></h2>
+
+ <p><a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> Script <em>method
+ cgi-script</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Script is only
+ available in Apache 1.1 and later; arbitrary method use is only
+ available with 1.3.10 and later</p>
+
+ <p>This directive adds an action, which will activate
+ <i>cgi-script</i> when a file is requested using the method of
+ <i>method</i>. The <i>cgi-script</i> is the URL-path to a resource
+ that has been configured as a CGI script using
+ <code>ScriptAlias</code> or <code>AddHandler</code>. The URL and
+ file path of the requested document is sent using the standard CGI
+ PATH_INFO and PATH_TRANSLATED environment variables.</p>
+
+ <blockquote>
+ Prior to Apache 1.3.10, <i>method</i> can only be one of
+ <code>GET</code>, <code>POST</code>, <code>PUT</code>, or
+ <code>DELETE</code>. As of 1.3.10, any arbitrary method name
+ may be used. <b>Method names are case-sensitive</b>, so
+ <code>Script&nbsp;PUT</code> and <code>Script&nbsp;put</code>
+ have two entirely different effects.
+ </blockquote>
+
+ <p>Note that the Script command defines default actions only.
+ If a CGI script is called, or some other resource that is
+ capable of handling the requested method internally, it will do
+ so. Also note that Script with a method of <code>GET</code>
+ will only be called if there are query arguments present
+ (<em>e.g.</em>, foo.html?hi). Otherwise, the request will
+ proceed normally.</p>
+
+ <p>Examples:</p>
+<pre>
+ # For &lt;ISINDEX&gt;-style searching
+ Script GET /cgi-bin/search
+ # A CGI PUT handler
+ Script PUT /~bob/put.cgi
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.ja.jis
index b76688444ff..9d3d4e565d6 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_actions.html.ja.jis
@@ -162,3 +162,167 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Module mod_actions</title>
+
+ </head>
+ <!-- English revision: 1.18 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_actions $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O%a%G%#%"%?%$%W$d%j%/%(%9%H%a%=%C%I$K1~$8$F(B
+ CGI $B%9%/%j%W%H$r<B9T$9$k5!G=$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_actions.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ actions_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B</p>
+
+ <h2>$B35MW(B</h2>
+
+ <p>$B$3$N%b%8%e!<%k$K$OFs$D$N%G%#%l%/%F%#%V$,$"$j$^$9!#(BAction
+ $B%G%#%l%/%F%#%V$OFCDj$N%?%$%W$N%U%!%$%k$r%j%/%(%9%H$5$l$?>l9g$K(B
+ CGI $B%9%/%j%W%H$,<B9T$5$l$k$h$&$K$7$^$9!#(BScript
+ $B%G%#%l%/%F%#%V$O%j%/%(%9%H$GFCDj$N%a%=%C%I$,;HMQ$5$l$?$H$-$K(B CGI
+ $B%9%/%j%W%H$,<B9T$5$l$k$h$&$K$7$^$9!#(B
+ $B$3$l$O%U%!%$%k$r=hM}$9$k%9%/%j%W%H$N<B9T$r$:$C$H4JC1$K$7$^$9!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#action">Action</a></li>
+ <li><a href="#script">Script</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="action" name="action">Action $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> Action <em>action-type
+ cgi-script</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B</p>
+
+ <p>$B$3$N%G%#%l%/%F%#%V$O(B <em>action-type</em>
+ $B$,%j%/%(%9%H$5$l$?$H$-$K(B <em>cgi-script</em>
+ $B$,<B9T$5$l$k$H$$$&F0:n$rDI2C$7$^$9!#(B<i>cgi-script</i> $B$O(B
+ <code>ScriptAlias</code> $B$d(B <code>AddHandler</code> $B$K$h$C$F(B
+ CGI $B%9%/%j%W%H$K@_Dj$5$l$?%j%=!<%9$X$N(B URL-path $B$G$9!#(B
+ <em>Action-type</em> $B$K$O(B
+ <a href="../handler.html">handler</a> $B$+(B MIME
+ $B%3%s%F%s%H%?%$%W$r;XDj$G$-$^$9!#%j%/%(%9%H$5$l$?%I%-%e%a%s%H$N(B URL
+ $B$H%U%!%$%k$N%Q%9$OI8=`(B CGI $B4D6-JQ?t(B PATH_INFO $B$H(B PATH_TRANSLATED
+ $B$r;H$C$FEA$($i$l$^$9!#(B</p>
+
+ <p>$BNc(B:</p>
+ <pre>
+ # Requests for files of a particular type:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Files of a particular file extension
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+ </pre>
+
+ <p>$B:G=i$NNc$G$O!"(BMIME $B%3%s%F%s%H%?%$%W$,(B <code>image/gif</code>
+ $B$N%U%!%$%k$X$N%j%/%(%9%H$O!"$=$N%U%!%$%k$NBe$o$j$K;XDj$5$l$?%9%/%j%W%H(B
+ <code>/cgi-bin/images.cgi</code> $B$,8F$P$l$^$9!#(B</p>
+
+ <p>2 $BHVL\$NNc$G$O!"3HD%;R$,(B <code>.xyz</code> $B$N%U%!%$%k$X$N%j%/%(%9%H$O!"(B
+ $B$=$N%U%!%$%k$NBe$o$j$K;XDj$5$l$?%9%/%j%W%H(B
+ <code>/cgi-bin/program.cgi</code> $B$,8F$P$l$^$9!#(B</p>
+
+ <p><a href="mod_mime.html#addhandler">AddHandler</a>
+ $B$b(B<strong>$B;2>H(B</strong>$B$7$F$/$@$5$$(B</p>
+
+ <hr />
+
+ <h2><a id="script" name="script">Script $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> Script <em>method
+ cgi-script</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B $B%G%#%l%/%H%j(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_actions<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Script $B$O(B Apache 1.1
+ $B0J9_$G$N$_;HMQ2DG=!#G$0U$N%a%=%C%I$N;HMQ$O(B 1.3.10
+ $B0J9_$G$N$_;HMQ2DG=!#(B</p>
+
+ <p>$B$3$N%G%#%l%/%F%#%V$O(B <i>method</i>
+ $B$H$$$&%a%=%C%I$r;H$C$F%j%/%(%9%H$,9T$J$o$l$?$H$-$K(B
+ <i>cgi-script</i> $B$r<B9T$9$k$H$$$&F0:n$rDI2C$7$^$9!#(B
+ <i>cgi-script</i> $B$O(B
+ <code>ScriptAlias</code> $B$d(B <code>AddHandler</code> $B$K$h$C$F(B
+ CGI $B%9%/%j%W%H$K@_Dj$5$l$?%j%=!<%9$X$N(B URL-path $B$G$9!#(B
+ $B%j%/%(%9%H$5$l$?%I%-%e%a%s%H$N(B URL $B$H%U%!%$%k$N%Q%9$OI8=`(B CGI
+ $B4D6-JQ?t(B PATH_INFO $B$H(B PATH_TRANSLATED $B$r;H$C$FEA$($i$l$^$9!#(B</p>
+
+ <blockquote>
+ Apache 1.3.10 $B$h$jA0$G$O!"(B<i>method</i> $B$O(B <code>GET</code>,
+ <code>POST</code>, <code>PUT</code>, <code>DELETE</code>
+ $B$@$1$,;XDj2DG=$G$7$?!#(B1.3.10
+ $B$G$O!"G$0U$N%a%=%C%IL>$r;HMQ$9$k$3$H$,$G$-$^$9!#(B
+ <b>$B%a%=%C%IL>$OBgJ8;z>.J8;z$r6hJL$7$^$9(B</b>$B!#$G$9$+$i!"(B
+ <code>Script&nbsp;PUT</code> $B$H(B <code>Script&nbsp;put</code>
+ $B$O$^$C$?$/0c$C$?8z2L$K$J$j$^$9!#(B
+ </blockquote>
+
+ <p>Script $B%3%^%s%I$O%G%U%)%k%H$NF0:n$rDI2C$9$k$@$1$G$"$k$3$H$K(B
+ $BCm0U$7$F$/$@$5$$!#$b$7(B CGI $B%9%/%j%W%H$,8F$P$l$?$j!"%j%/%(%9%H$5$l$?(B
+ $B%a%=%C%I$rFbIt$G07$&$3$H$N$G$-$kB>$N%j%=!<%9$,$"$l$P!"$=$l$,9T$J$o$l$^$9!#(B
+ <code>GET</code> $B%a%=%C%I$N(B Script $B$OLd9g$;0z?t$,$"$k>l9g$K$N$_(B
+ (<em>$B$?$H$($P(B</em>$B!"(Bfoo.html?hi) $B8F$P$l$k$H$$$&$3$H$K$bCm0U$7$F$/$@$5$$!#(B
+ $B$=$&$G$J$$>l9g$O!"%j%/%(%9%H$ODL>oDL$j=hM}$5$l$^$9!#(B</p>
+
+ <p>$BNc(B:</p>
+<pre>
+ # For &lt;ISINDEX&gt;-style searching
+ Script GET /cgi-bin/search
+ # A CGI PUT handler
+ Script PUT /~bob/put.cgi
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html b/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html
index 9b0eab44ed0..3a39c6dc001 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_alias.html
@@ -231,6 +231,13 @@
otherwise it must be omitted. Note that the status must be
known to the Apache code (see the function
<code>send_error_response</code> in http_protocol.c).</p>
+
+ <p>Example:</p>
+
+ <pre>
+ Redirect permanent /one http://example.com/two<br />
+ Redirect 303 /two http://example.com/other
+ </pre>
<hr />
<h2><a id="redirectmatch"
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html
index 55ae8e997c9..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html
@@ -1,103 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_asis</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_asis</h1>
-
- <p>This module provides for sending files which contain their
- own HTTP headers.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> mod_asis.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- asis_module</p>
-
- <h2>Summary</h2>
-
- <p>This module provides the handler <code>send-as-is</code>
- which causes Apache to send the document without adding most of
- the usual HTTP headers.</p>
-
- <p>This can be used to send any kind of data from the server,
- including redirects and other special HTTP responses, without
- requiring a cgi-script or an nph script.</p>
-
- <p>For historical reasons, this module will also process any
- file with the mime type <code>httpd/send-as-is</code>.</p>
-
- <h2>Directives</h2>
-
- <p>This module provides no directives.</p>
-
- <h2>Usage</h2>
-
- <p>In the server configuration file, associate files with the
- <code>send-as-is</code> handler <em>e.g.</em></p>
-
- <blockquote>
- <code>AddHandler send-as-is asis</code>
- </blockquote>
- The contents of any file with a <code>.asis</code> extension
- will then be sent by Apache to the client with almost no
- changes. Clients will need HTTP headers to be attached, so do
- not forget them. A Status: header is also required; the data
- should be the 3-digit HTTP response code, followed by a textual
- message.
-
- <p>Here's an example of a file whose contents are sent <em>as
- is</em> so as to tell the client that a file has
- redirected.</p>
-
- <blockquote>
- <code>Status: 301 Now where did I leave that URL<br />
- Location: http://xyz.abc.com/foo/bar.html<br />
- Content-type: text/html<br />
- <br />
- &lt;HTML&gt;<br />
- &lt;HEAD&gt;<br />
- &lt;TITLE&gt;Lame excuses'R'us&lt;/TITLE&gt;<br />
- &lt;/HEAD&gt;<br />
- &lt;BODY&gt;<br />
- &lt;H1&gt;Fred's exceptionally wonderful page has moved
- to<br />
- &lt;A
- HREF="http://xyz.abc.com/foo/bar.html"&gt;Joe's&lt;/A&gt;
- site.<br />
- &lt;/H1&gt;<br />
- &lt;/BODY&gt;<br />
- &lt;/HTML&gt;</code>
- </blockquote>
-
- <p>Notes: the server always adds a Date: and Server: header to
- the data returned to the client, so these should not be
- included in the file. The server does <em>not</em> add a
- Last-Modified header; it probably should.
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </p>
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.en
index 55ae8e997c9..0ad814e786d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.en
@@ -101,3 +101,106 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_asis</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_asis</h1>
+
+ <p>This module provides for sending files which contain their
+ own HTTP headers.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_asis.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ asis_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides the handler <code>send-as-is</code>
+ which causes Apache to send the document without adding most of
+ the usual HTTP headers.</p>
+
+ <p>This can be used to send any kind of data from the server,
+ including redirects and other special HTTP responses, without
+ requiring a cgi-script or an nph script.</p>
+
+ <p>For historical reasons, this module will also process any
+ file with the mime type <code>httpd/send-as-is</code>.</p>
+
+ <h2>Directives</h2>
+
+ <p>This module provides no directives.</p>
+
+ <h2>Usage</h2>
+
+ <p>In the server configuration file, associate files with the
+ <code>send-as-is</code> handler <em>e.g.</em></p>
+
+ <blockquote>
+ <code>AddHandler send-as-is asis</code>
+ </blockquote>
+ The contents of any file with a <code>.asis</code> extension
+ will then be sent by Apache to the client with almost no
+ changes. Clients will need HTTP headers to be attached, so do
+ not forget them. A Status: header is also required; the data
+ should be the 3-digit HTTP response code, followed by a textual
+ message.
+
+ <p>Here's an example of a file whose contents are sent <em>as
+ is</em> so as to tell the client that a file has
+ redirected.</p>
+
+ <blockquote>
+ <code>Status: 301 Now where did I leave that URL<br />
+ Location: http://xyz.abc.com/foo/bar.html<br />
+ Content-type: text/html<br />
+ <br />
+ &lt;HTML&gt;<br />
+ &lt;HEAD&gt;<br />
+ &lt;TITLE&gt;Lame excuses'R'us&lt;/TITLE&gt;<br />
+ &lt;/HEAD&gt;<br />
+ &lt;BODY&gt;<br />
+ &lt;H1&gt;Fred's exceptionally wonderful page has moved
+ to<br />
+ &lt;A
+ HREF="http://xyz.abc.com/foo/bar.html"&gt;Joe's&lt;/A&gt;
+ site.<br />
+ &lt;/H1&gt;<br />
+ &lt;/BODY&gt;<br />
+ &lt;/HTML&gt;</code>
+ </blockquote>
+
+ <p>Notes: the server always adds a Date: and Server: header to
+ the data returned to the client, so these should not be
+ included in the file. The server does <em>not</em> add a
+ Last-Modified header; it probably should.
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.html
index 9d93d39f157..24298f3a020 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.html
@@ -105,3 +105,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_asis</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_asis</h1>
+
+ <p>This module provides for sending files which contain their
+ own HTTP headers.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_asis.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ asis_module</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides the handler <code>send-as-is</code>
+ which causes Apache to send the document without adding most of
+ the usual HTTP headers.</p>
+
+ <p>This can be used to send any kind of data from the server,
+ including redirects and other special HTTP responses, without
+ requiring a cgi-script or an nph script.</p>
+
+ <p>For historical reasons, this module will also process any
+ file with the mime type <code>httpd/send-as-is</code>.</p>
+
+ <h2>Directives</h2>
+
+ <p>This module provides no directives.</p>
+
+ <h2>Usage</h2>
+
+ <p>In the server configuration file, associate files with the
+ <code>send-as-is</code> handler <em>e.g.</em></p>
+
+ <blockquote>
+ <code>AddHandler send-as-is asis</code>
+ </blockquote>
+ The contents of any file with a <code>.asis</code> extension
+ will then be sent by Apache to the client with almost no
+ changes. Clients will need HTTP headers to be attached, so do
+ not forget them. A Status: header is also required; the data
+ should be the 3-digit HTTP response code, followed by a textual
+ message.
+
+ <p>Here's an example of a file whose contents are sent <em>as
+ is</em> so as to tell the client that a file has
+ redirected.</p>
+
+ <blockquote>
+ <code>Status: 301 Now where did I leave that URL<br />
+ Location: http://xyz.abc.com/foo/bar.html<br />
+ Content-type: text/html<br />
+ <br />
+ &lt;HTML&gt;<br />
+ &lt;HEAD&gt;<br />
+ &lt;TITLE&gt;Lame excuses'R'us&lt;/TITLE&gt;<br />
+ &lt;/HEAD&gt;<br />
+ &lt;BODY&gt;<br />
+ &lt;H1&gt;Fred's exceptionally wonderful page has moved
+ to<br />
+ &lt;A
+ HREF="http://xyz.abc.com/foo/bar.html"&gt;Joe's&lt;/A&gt;
+ site.<br />
+ &lt;/H1&gt;<br />
+ &lt;/BODY&gt;<br />
+ &lt;/HTML&gt;</code>
+ </blockquote>
+
+ <p>Notes: the server always adds a Date: and Server: header to
+ the data returned to the client, so these should not be
+ included in the file. The server does <em>not</em> add a
+ Last-Modified header; it probably should.
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.ja.jis
index ce19d13e16f..aafc46075f3 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_asis.html.ja.jis
@@ -100,3 +100,105 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_asis</title>
+
+ </head>
+ <!-- English revision: 1.11-->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_asis $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O<+J,MQ$N(B HTTP
+ $B%X%C%@$,$"$k%U%!%$%k$rAw?.$9$k5!G=$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_asis.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ asis_module</p>
+
+ <h2>$B35MW(B</h2>
+
+ <p>$B$3$N%b%8%e!<%k$O%O%s%I%i(B <code>send-as-is</code>
+ $B$rDs6!$7$^$9!#$3$N%O%s%I%i$ODL>o$N(B HTTP
+ $B%X%C%@$r$[$H$s$IDI2C$9$k$3$H$J$/%I%-%e%a%s%H$rAw?.$7$^$9!#(B</p>
+
+ <p>$B$3$l$O%5!<%P$+$i$I$s$J<oN`$N%G!<%?$rAw$k$H$-$K$b;HMQ$G$-$^$9!#(B
+ Cgi $B%9%/%j%W%H$d(B nph $B%9%/%j%W%H$,L5$/$F$b%j%@%$%l%/%H$dB>$NFCJL$J(B
+ HTTP $B1~Ez$rAw$k$3$H$,$G$-$^$9!#(B</p>
+
+ <p>$BNr;KE*$JM}M3$K$h$j!"$3$N%b%8%e!<%k$O(B mime $B%?%$%W(B
+ <code>httpd/send-as-is</code> $B$N%U%!%$%k$b=hM}$7$^$9!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <p>$B$3$N%b%8%e!<%k$K$O%G%#%l%/%F%#%V$O$"$j$^$;$s!#(B</p>
+
+ <h2>$B;HMQK!(B</h2>
+
+ <p>$B%5!<%P@_Dj%U%!%$%k$G!"%U%!%$%k$H(B <code>send-as-is</code>
+ $B%O%s%I%i$rNc$($P0J2<$N$h$&$K4XO"IU$1$F$/$@$5$$!#(B</p>
+
+ <blockquote>
+ <code>AddHandler send-as-is .asis</code>
+ </blockquote>
+
+ <p>$B3HD%;R$,(B <code>.asis</code> $B$N$9$Y$F$N%U%!%$%k$NFbMF$O(B Apache
+ $B$+$i%/%i%$%"%s%H$X$[$H$s$IJQ99L5$/Aw$i$l$^$9!#%/%i%$%"%s%H$K$O(B
+ HTTP $B%X%C%@$,I,MW$G$9$N$G!"%U%!%$%k$K=q$/$3$H$rK:$l$J$$$G$/$@$5$$!#(B
+ Status: $B%X%C%@$bI,MW$G$9!#%G!<%?$O(B 3 $B7e$N(B HTTP
+ $B1~Ez%3!<%I$H!"$=$N8e$K%F%-%9%H%a%C%;!<%8$,B3$$$?$b$N$G$J$1$l$P$J$j$^$;$s!#(B
+
+ $B$3$l$O%/%i%$%"%s%H$K%U%!%$%k$,0\F0$7$?$3$H$rCN$i$;$k$?$a$K(B
+ <em>as is</em> ($B$=$N$^$^(B) $B$GAw$i$l$k%U%!%$%k$NFbMF$NNc$G$9!#(B
+ </p>
+
+ <blockquote>
+ <code>Status: 301 Now where did I leave that URL<br />
+ Location: http://xyz.abc.com/foo/bar.html<br />
+ Content-type: text/html<br />
+ <br />
+ &lt;HTML&gt;<br />
+ &lt;HEAD&gt;<br />
+ &lt;TITLE&gt;Lame excuses'R'us&lt;/TITLE&gt;<br />
+ &lt;/HEAD&gt;<br />
+ &lt;BODY&gt;<br />
+ &lt;H1&gt;Fred's exceptionally wonderful page has moved
+ to<br />
+ &lt;A
+ HREF="http://xyz.abc.com/foo/bar.html"&gt;Joe's&lt;/A&gt;
+ site.<br />
+ &lt;/H1&gt;<br />
+ &lt;/BODY&gt;<br />
+ &lt;/HTML&gt;</code>
+ </blockquote>
+
+ <p>$BCm0U(B: $B%5!<%P$O%/%i%$%"%s%H$KJV$5$l$k%G!<%?$K>o$K(B Date: $B$H(B Server:
+ $B%X%C%@$rDI2C$7$^$9$N$G!"$=$l$i$,%U%!%$%k$K=q$+$l$F$$$F$O$$$1$^$;$s!#(B
+ $B%5!<%P$O(B Last-Modified $B%X%C%@$rDI2C(B<em>$B$7$^$;$s(B</em>$B!#(B
+ $B$*$=$i$/$O$=$&$9$Y$-$G$7$g$&$1$l$I!#(B
+ </p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html
index ef5f48ef264..6824322f6b9 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_auth_anon.html
@@ -91,7 +91,7 @@
(<code>Anonymous_LogEmail</code>)</li>
</ul>
- <p>Excerpt of access.conf:</p>
+ <p>Excerpt of httpd.conf:</p>
<blockquote>
<pre>
@@ -204,7 +204,16 @@ Require valid-user
<p>When set 'on', the default, the 'password' entered (which
hopefully contains a sensible email address) is logged in the
- error log.</p>
+ error log. The message is logged at a level of <code>info</code>,
+ and so you must have <a href="core.html#loglevel">LogLevel</a> set
+ to at least <code>info</code> in order to see this message.</p>
+
+ <p>Log entries will look like the following example:</p>
+
+ <pre>
+[Fri Apr 26 14:49:50 2002] [info] [client 192.168.1.105] Anonymous: Passwd <user@example.com> Accepted
+</pre>
+
<hr />
<h2><a id="MustGiveEmail"
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html
index 5616f5a5c73..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html
@@ -1,228 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_cgi</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_cgi</h1>
-
- <p>This module provides for execution of CGI scripts.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> mod_cgi.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- cgi_module</p>
-
- <h2>Summary</h2>
- <!-- XXX: Should have references to CGI definition/RFC -->
- Any file that has the mime type
- <code>application/x-httpd-cgi</code> or handler
- <code>cgi-script</code> (Apache 1.1 or later) will be treated
- as a CGI script, and run by the server, with its output being
- returned to the client. Files acquire this type either by
- having a name containing an extension defined by the <a
- href="mod_mime.html#addtype">AddType</a> directive, or by being
- in a <a href="mod_alias.html#scriptalias">ScriptAlias</a>
- directory. Files that are not in a <a
- href="mod_alias.html#scriptalias">ScriptAlias</a> directory,
- but which are of type <code>application/x-httpd-cgi</code> by
- virtue of an <code>AddType</code> directive, will still not be
- executed by the server unless <code>Options ExecCGI</code> is
- enabled. See the <a
- href="core.html#options"><code>Options</code></a> directive for
- more details.
-
- <p>When the server invokes a CGI script, it will add a variable
- called <code>DOCUMENT_ROOT</code> to the environment. This
- variable will contain the value of the <a
- href="core.html#documentroot">DocumentRoot</a> configuration
- variable.</p>
-
- <p>For an introduction to using CGI scripts with Apache, see
- our tutorial on <a href="../howto/cgi.html">Dynamic Content
- with CGI</a>.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#scriptlog">ScriptLog</a></li>
-
- <li><a href="#scriptloglength">ScriptLogLength</a></li>
-
- <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
- </ul>
-
- <p>See also: <a href="core.html#options">Options</a>, <a
- href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
- href="mod_mime.html#addtype">AddType</a> and <a
- href="mod_mime.html#addhandler">AddHandler</a>.</p>
-
- <h2>CGI Environment variables</h2>
- The server will set the CGI environment variables as described
- in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
- specification</a>, with the following provisions:
-
- <dl>
- <dt>REMOTE_HOST</dt>
-
- <dd>This will only be set if <a
- href="core.html#hostnamelookups"><code>HostnameLookups</code></a>
- is set to <code>on</code> (it is off by default), and if a
- reverse DNS lookup of the accessing host's address indeed
- finds a host name.</dd>
-
- <dt>REMOTE_IDENT</dt>
-
- <dd>This will only be set if <a
- href="core.html#identitycheck">IdentityCheck</a> is set to
- <code>on</code> and the accessing host supports the ident
- protocol. Note that the contents of this variable cannot be
- relied upon because it can easily be faked, and if there is a
- proxy between the client and the server, it is usually
- totally useless.</dd>
-
- <dt>REMOTE_USER</dt>
-
- <dd>This will only be set if the CGI script is subject to
- authentication.</dd>
- </dl>
-
- <h2><a id="cgi_debug" name="cgi_debug">CGI Debugging</a></h2>
- Debugging CGI scripts has traditionally been difficult, mainly
- because it has not been possible to study the output (standard
- output and error) for scripts which are failing to run
- properly. These directives, included in Apache 1.2 and later,
- provide more detailed logging of errors when they occur.
-
- <h2>CGI Logfile Format</h2>
- When configured, the CGI error log logs any CGI which does not
- execute properly. Each CGI script which fails to operate causes
- several lines of information to be logged. The first two lines
- are always of the format:
-<pre>
- %% [<em>time</em>] <em>request-line</em>
- %% <em>HTTP-status</em> <em>CGI-script-filename</em>
-</pre>
- If the error is that CGI script cannot be run, the log file
- will contain an extra two lines:
-<pre>
- %%error
- <em>error-message</em>
-</pre>
- Alternatively, if the error is the result of the script
- returning incorrect header information (often due to a bug in
- the script), the following information is logged:
-<pre>
- %request
- <em>All HTTP request headers received</em>
- <em>POST or PUT entity (if any)</em>
- %response
- <em>All headers output by the CGI script</em>
- %stdout
- <em>CGI standard output</em>
- %stderr
- <em>CGI standard error</em>
-</pre>
- (The %stdout and %stderr parts may be missing if the script did
- not output anything on standard output or standard error).
- <hr />
-
- <h3><a id="scriptlog" name="scriptlog">ScriptLog</a>
- directive</h3>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> ScriptLog
- <em>filename</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> none<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> mod_cgi
-
- <p>The <tt>ScriptLog</tt> directive sets the CGI script error
- logfile. If no ScriptLog is given, no error log is created. If
- given, any CGI errors are logged into the filename given as
- argument. If this is a relative file or path it is taken
- relative to the server root.</p>
-
- <p>This log will be opened as the user the child processes run
- as, ie. the user specified in the main <a
- href="core.html#User">User</a> directive. This means that
- either the directory the script log is in needs to be writable
- by that user or the file needs to be manually created and set
- to be writable by that user. If you place the script log in
- your main logs directory, do <strong>NOT</strong> change the
- directory permissions to make it writable by the user the child
- processes run as.</p>
-
- <p>Note that script logging is meant to be a debugging feature
- when writing CGI scripts, and is not meant to be activated
- continuously on running servers. It is not optimized for speed
- or efficiency, and may have security problems if used in a
- manner other than that for which it was designed.</p>
- <hr />
-
- <h3><a id="scriptloglength"
- name="scriptloglength">ScriptLogLength</a> directive</h3>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> ScriptLogLength
- <em>bytes</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> 10385760<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> mod_cgi
-
- <p><tt>ScriptLogLength</tt> can be used to limit the size of
- the CGI script logfile. Since the logfile logs a lot of
- information per CGI error (all request headers, all script
- output) it can grow to be a big file. To prevent problems due
- to unbounded growth, this directive can be used to set an
- maximum file-size for the CGI logfile. If the file exceeds this
- size, no more information will be written to it.</p>
- <hr />
-
- <h3><a id="scriptlogbuffer"
- name="scriptlogbuffer">ScriptLogBuffer</a></h3>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> ScriptLogBuffer
- <em>bytes</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> 1024<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> mod_cgi
-
- <p>The size of any PUT or POST entity body that is logged to
- the file is limited, to prevent the log file growing too big
- too quickly if large bodies are being received. By default, up
- to 1024 bytes are logged, but this can be changed with this
- directive. <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </p>
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.en
index 5616f5a5c73..31ee19e26f8 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.en
@@ -226,3 +226,231 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_cgi</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_cgi</h1>
+
+ <p>This module provides for execution of CGI scripts.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_cgi.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ cgi_module</p>
+
+ <h2>Summary</h2>
+ <!-- XXX: Should have references to CGI definition/RFC -->
+ Any file that has the mime type
+ <code>application/x-httpd-cgi</code> or handler
+ <code>cgi-script</code> (Apache 1.1 or later) will be treated
+ as a CGI script, and run by the server, with its output being
+ returned to the client. Files acquire this type either by
+ having a name containing an extension defined by the <a
+ href="mod_mime.html#addtype">AddType</a> directive, or by being
+ in a <a href="mod_alias.html#scriptalias">ScriptAlias</a>
+ directory. Files that are not in a <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a> directory,
+ but which are of type <code>application/x-httpd-cgi</code> by
+ virtue of an <code>AddType</code> directive, will still not be
+ executed by the server unless <code>Options ExecCGI</code> is
+ enabled. See the <a
+ href="core.html#options"><code>Options</code></a> directive for
+ more details.
+
+ <p>When the server invokes a CGI script, it will add a variable
+ called <code>DOCUMENT_ROOT</code> to the environment. This
+ variable will contain the value of the <a
+ href="core.html#documentroot">DocumentRoot</a> configuration
+ variable.</p>
+
+ <p>For an introduction to using CGI scripts with Apache, see
+ our tutorial on <a href="../howto/cgi.html">Dynamic Content
+ with CGI</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#scriptlog">ScriptLog</a></li>
+
+ <li><a href="#scriptloglength">ScriptLogLength</a></li>
+
+ <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#options">Options</a>, <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
+ href="mod_mime.html#addtype">AddType</a> and <a
+ href="mod_mime.html#addhandler">AddHandler</a>.</p>
+
+ <h2>CGI Environment variables</h2>
+ The server will set the CGI environment variables as described
+ in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
+ specification</a>, with the following provisions:
+
+ <dl>
+ <dt>REMOTE_HOST</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#hostnamelookups"><code>HostnameLookups</code></a>
+ is set to <code>on</code> (it is off by default), and if a
+ reverse DNS lookup of the accessing host's address indeed
+ finds a host name.</dd>
+
+ <dt>REMOTE_IDENT</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#identitycheck">IdentityCheck</a> is set to
+ <code>on</code> and the accessing host supports the ident
+ protocol. Note that the contents of this variable cannot be
+ relied upon because it can easily be faked, and if there is a
+ proxy between the client and the server, it is usually
+ totally useless.</dd>
+
+ <dt>REMOTE_USER</dt>
+
+ <dd>This will only be set if the CGI script is subject to
+ authentication.</dd>
+ </dl>
+
+ <h2><a id="cgi_debug" name="cgi_debug">CGI Debugging</a></h2>
+ Debugging CGI scripts has traditionally been difficult, mainly
+ because it has not been possible to study the output (standard
+ output and error) for scripts which are failing to run
+ properly. These directives, included in Apache 1.2 and later,
+ provide more detailed logging of errors when they occur.
+
+ <h2>CGI Logfile Format</h2>
+ When configured, the CGI error log logs any CGI which does not
+ execute properly. Each CGI script which fails to operate causes
+ several lines of information to be logged. The first two lines
+ are always of the format:
+<pre>
+ %% [<em>time</em>] <em>request-line</em>
+ %% <em>HTTP-status</em> <em>CGI-script-filename</em>
+</pre>
+ If the error is that CGI script cannot be run, the log file
+ will contain an extra two lines:
+<pre>
+ %%error
+ <em>error-message</em>
+</pre>
+ Alternatively, if the error is the result of the script
+ returning incorrect header information (often due to a bug in
+ the script), the following information is logged:
+<pre>
+ %request
+ <em>All HTTP request headers received</em>
+ <em>POST or PUT entity (if any)</em>
+ %response
+ <em>All headers output by the CGI script</em>
+ %stdout
+ <em>CGI standard output</em>
+ %stderr
+ <em>CGI standard error</em>
+</pre>
+ (The %stdout and %stderr parts may be missing if the script did
+ not output anything on standard output or standard error).
+ <hr />
+
+ <h3><a id="scriptlog" name="scriptlog">ScriptLog</a>
+ directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLog
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p>The <tt>ScriptLog</tt> directive sets the CGI script error
+ logfile. If no ScriptLog is given, no error log is created. If
+ given, any CGI errors are logged into the filename given as
+ argument. If this is a relative file or path it is taken
+ relative to the server root.</p>
+
+ <p>This log will be opened as the user the child processes run
+ as, ie. the user specified in the main <a
+ href="core.html#User">User</a> directive. This means that
+ either the directory the script log is in needs to be writable
+ by that user or the file needs to be manually created and set
+ to be writable by that user. If you place the script log in
+ your main logs directory, do <strong>NOT</strong> change the
+ directory permissions to make it writable by the user the child
+ processes run as.</p>
+
+ <p>Note that script logging is meant to be a debugging feature
+ when writing CGI scripts, and is not meant to be activated
+ continuously on running servers. It is not optimized for speed
+ or efficiency, and may have security problems if used in a
+ manner other than that for which it was designed.</p>
+ <hr />
+
+ <h3><a id="scriptloglength"
+ name="scriptloglength">ScriptLogLength</a> directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogLength
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 10385760<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p><tt>ScriptLogLength</tt> can be used to limit the size of
+ the CGI script logfile. Since the logfile logs a lot of
+ information per CGI error (all request headers, all script
+ output) it can grow to be a big file. To prevent problems due
+ to unbounded growth, this directive can be used to set an
+ maximum file-size for the CGI logfile. If the file exceeds this
+ size, no more information will be written to it.</p>
+ <hr />
+
+ <h3><a id="scriptlogbuffer"
+ name="scriptlogbuffer">ScriptLogBuffer</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogBuffer
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 1024<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p>The size of any PUT or POST entity body that is logged to
+ the file is limited, to prevent the log file growing too big
+ too quickly if large bodies are being received. By default, up
+ to 1024 bytes are logged, but this can be changed with this
+ directive. <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.html
index ddd4c01f610..03ae235595e 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.html
@@ -230,3 +230,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_cgi</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_cgi</h1>
+
+ <p>This module provides for execution of CGI scripts.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_cgi.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ cgi_module</p>
+
+ <h2>Summary</h2>
+ <!-- XXX: Should have references to CGI definition/RFC -->
+ Any file that has the mime type
+ <code>application/x-httpd-cgi</code> or handler
+ <code>cgi-script</code> (Apache 1.1 or later) will be treated
+ as a CGI script, and run by the server, with its output being
+ returned to the client. Files acquire this type either by
+ having a name containing an extension defined by the <a
+ href="mod_mime.html#addtype">AddType</a> directive, or by being
+ in a <a href="mod_alias.html#scriptalias">ScriptAlias</a>
+ directory. Files that are not in a <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a> directory,
+ but which are of type <code>application/x-httpd-cgi</code> by
+ virtue of an <code>AddType</code> directive, will still not be
+ executed by the server unless <code>Options ExecCGI</code> is
+ enabled. See the <a
+ href="core.html#options"><code>Options</code></a> directive for
+ more details.
+
+ <p>When the server invokes a CGI script, it will add a variable
+ called <code>DOCUMENT_ROOT</code> to the environment. This
+ variable will contain the value of the <a
+ href="core.html#documentroot">DocumentRoot</a> configuration
+ variable.</p>
+
+ <p>For an introduction to using CGI scripts with Apache, see
+ our tutorial on <a href="../howto/cgi.html">Dynamic Content
+ with CGI</a>.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#scriptlog">ScriptLog</a></li>
+
+ <li><a href="#scriptloglength">ScriptLogLength</a></li>
+
+ <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
+ </ul>
+
+ <p>See also: <a href="core.html#options">Options</a>, <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
+ href="mod_mime.html#addtype">AddType</a> and <a
+ href="mod_mime.html#addhandler">AddHandler</a>.</p>
+
+ <h2>CGI Environment variables</h2>
+ The server will set the CGI environment variables as described
+ in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
+ specification</a>, with the following provisions:
+
+ <dl>
+ <dt>REMOTE_HOST</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#hostnamelookups"><code>HostnameLookups</code></a>
+ is set to <code>on</code> (it is off by default), and if a
+ reverse DNS lookup of the accessing host's address indeed
+ finds a host name.</dd>
+
+ <dt>REMOTE_IDENT</dt>
+
+ <dd>This will only be set if <a
+ href="core.html#identitycheck">IdentityCheck</a> is set to
+ <code>on</code> and the accessing host supports the ident
+ protocol. Note that the contents of this variable cannot be
+ relied upon because it can easily be faked, and if there is a
+ proxy between the client and the server, it is usually
+ totally useless.</dd>
+
+ <dt>REMOTE_USER</dt>
+
+ <dd>This will only be set if the CGI script is subject to
+ authentication.</dd>
+ </dl>
+
+ <h2><a id="cgi_debug" name="cgi_debug">CGI Debugging</a></h2>
+ Debugging CGI scripts has traditionally been difficult, mainly
+ because it has not been possible to study the output (standard
+ output and error) for scripts which are failing to run
+ properly. These directives, included in Apache 1.2 and later,
+ provide more detailed logging of errors when they occur.
+
+ <h2>CGI Logfile Format</h2>
+ When configured, the CGI error log logs any CGI which does not
+ execute properly. Each CGI script which fails to operate causes
+ several lines of information to be logged. The first two lines
+ are always of the format:
+<pre>
+ %% [<em>time</em>] <em>request-line</em>
+ %% <em>HTTP-status</em> <em>CGI-script-filename</em>
+</pre>
+ If the error is that CGI script cannot be run, the log file
+ will contain an extra two lines:
+<pre>
+ %%error
+ <em>error-message</em>
+</pre>
+ Alternatively, if the error is the result of the script
+ returning incorrect header information (often due to a bug in
+ the script), the following information is logged:
+<pre>
+ %request
+ <em>All HTTP request headers received</em>
+ <em>POST or PUT entity (if any)</em>
+ %response
+ <em>All headers output by the CGI script</em>
+ %stdout
+ <em>CGI standard output</em>
+ %stderr
+ <em>CGI standard error</em>
+</pre>
+ (The %stdout and %stderr parts may be missing if the script did
+ not output anything on standard output or standard error).
+ <hr />
+
+ <h3><a id="scriptlog" name="scriptlog">ScriptLog</a>
+ directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLog
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p>The <tt>ScriptLog</tt> directive sets the CGI script error
+ logfile. If no ScriptLog is given, no error log is created. If
+ given, any CGI errors are logged into the filename given as
+ argument. If this is a relative file or path it is taken
+ relative to the server root.</p>
+
+ <p>This log will be opened as the user the child processes run
+ as, ie. the user specified in the main <a
+ href="core.html#User">User</a> directive. This means that
+ either the directory the script log is in needs to be writable
+ by that user or the file needs to be manually created and set
+ to be writable by that user. If you place the script log in
+ your main logs directory, do <strong>NOT</strong> change the
+ directory permissions to make it writable by the user the child
+ processes run as.</p>
+
+ <p>Note that script logging is meant to be a debugging feature
+ when writing CGI scripts, and is not meant to be activated
+ continuously on running servers. It is not optimized for speed
+ or efficiency, and may have security problems if used in a
+ manner other than that for which it was designed.</p>
+ <hr />
+
+ <h3><a id="scriptloglength"
+ name="scriptloglength">ScriptLogLength</a> directive</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogLength
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 10385760<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p><tt>ScriptLogLength</tt> can be used to limit the size of
+ the CGI script logfile. Since the logfile logs a lot of
+ information per CGI error (all request headers, all script
+ output) it can grow to be a big file. To prevent problems due
+ to unbounded growth, this directive can be used to set an
+ maximum file-size for the CGI logfile. If the file exceeds this
+ size, no more information will be written to it.</p>
+ <hr />
+
+ <h3><a id="scriptlogbuffer"
+ name="scriptlogbuffer">ScriptLogBuffer</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> ScriptLogBuffer
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> 1024<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> mod_cgi
+
+ <p>The size of any PUT or POST entity body that is logged to
+ the file is limited, to prevent the log file growing too big
+ too quickly if large bodies are being received. By default, up
+ to 1024 bytes are logged, but this can be changed with this
+ directive. <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis
index 766c060f6ba..503ed517097 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_cgi.html.ja.jis
@@ -227,3 +227,232 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+
+ <title>Apache module mod_cgi</title>
+
+ </head>
+ <!-- English revision: 1.24 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_cgi $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O(B CGI $B%9%/%j%W%H$r<B9T$9$k5!G=$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_cgi.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> cgi_module
+ </p>
+
+ <h2>$B35MW(B</h2>
+ <!-- XXX: Should have references to CGI definition/RFC -->
+ <p>Mime $B%?%$%W$,(B <code>application/x-httpd-cgi</code>
+ $B$G$"$k$+!"%O%s%I%i(B <code>cgi-script</code> (Apache 1.1 $B0J9_(B)
+ $B$,;XDj$5$l$F$$$k%U%!%$%k$O(B CGI $B%9%/%j%W%H$H$7$F07$o$l!"(B
+ $B%5!<%P$K$h$j<B9T$5$l!"$=$N=PNO$,%/%i%$%"%s%H$KJV$5$l$^$9!#(B
+ $B%U%!%$%k$O!"(B<a href="#mod_mime.html#addtype">AddType</a>
+ $B%G%#%l%/%F%#%V$K;XDj$5$l$?(B $B3HD%;R$rL>A0$K4^$`$+!"(B
+ <a href="mod_alias.html#scriptalias">ScriptAlias</a>
+ $B%G%#%l%/%H%j$KB8:_$9$k$3$H$K$h$j$3$N%?%$%W$K$J$j$^$9!#(B
+ <a href="mod_alias.html#scriptalias">ScriptAlias</a>
+ $B%G%#%l%/%H%j$K$J$/!"(B<code>AddType</code>
+ $B%G%#%l%/%F%#%V$K$h$j(B <code>application/x-httpd-cgi</code>
+ $B$N%?%$%W$r;}$D%U%!%$%k$O!"(B<code>Options ExecCGI</code>
+ $B$,;XDj$5$l$F$$$J$1$l$P%5!<%P$K$h$j<B9T$5$l$k$3$H$O$"$j$^$;$s!#(B
+ $B>\:Y$O(B <a href="core.html#options"><code>Options</code></a>
+ $B%G%#%l%/%F%#%V$r(B $B;2>H$7$F$/$@$5$$!#(B
+ </p>
+
+ <p>$B%5!<%P$,(B CGI $B%9%/%j%W%H$r<B9T$9$k$H$-$K$O!"(B
+ <code>DOCUMENT_ROOT</code>
+ $B$H8F$P$l$kJQ?t$r4D6-$KDI2C$7$^$9!#$3$NJQ?t$O(B
+ <a href="core.html#documentroot">DocumentRoot</a>
+ $B$NCM$rJ];}$7$^$9!#(B</p>
+
+ <p>Apache $B$G(B CGI $B%9%/%j%W%H$r;HMQ$9$k$?$a$N%$%s%H%m%@%/%7%g%s$O!"(B
+ <a href="../howto/cgi.html">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a>
+ $B$r;2>H$7$F$/$@$5$$!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#scriptlog">ScriptLog</a></li>
+
+ <li><a href="#scriptloglength">ScriptLogLength</a></li>
+
+ <li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
+ </ul>
+
+ <p><a href="core.html#options">Options</a>, <a
+ href="mod_alias.html#scriptalias">ScriptAlias</a>, <a
+ href="mod_mime.html#addtype">AddType</a>, <a
+ href="mod_mime.html#addhandler">AddHandler</a>
+ $B$b;2>H$7$F$/$@$5$$!#(B</p>
+ <h2>CGI $B4D6-JQ?t(B</h2>
+ <p>$B%5!<%P$O(B <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
+ $B5,3J(B</a> $B$G7h$a$i$l$F$$$k(B CGI
+ $B4D6-JQ?t$r@_Dj$7$^$9!#0J2<$N$b$N$O!">r7oIU$-$G@_Dj$5$l$^$9!#(B</p>
+
+ <dl>
+ <dt>REMOTE_HOST</dt>
+
+ <dd><a
+ href="core.html#hostnamelookups"><code>HostnameLookups</code></a>
+ $B$,(B <code>on</code> ($B%G%U%)%k%H$G$O(B off $B$G$9(B)
+ $B$G!"%"%/%;%9$7$F$$$k%[%9%H$N%"%I%l%9$N(B DNS
+ $B$N5U0z$-$,<B:]$K%[%9%HL>$r8+$D$1$?$H$-$K$N$_@_Dj$5$l$^$9!#(B</dd>
+
+ <dt>REMOTE_IDENT</dt>
+
+ <dd><a href="core.html#identitycheck">IdentityCheck</a>
+ $B$,(B <code>on</code> $B$K@_Dj$5$l$F$$$F!"%"%/%;%9$7$F$$$k%[%9%H$,(B
+ ident $B%W%m%H%3%k$r%5%]!<%H$7$F$$$k$H$-$K$N$_@_Dj$5$l$^$9!#(B
+ $B$3$l$O4JC1$K56$k$3$H$,$G$-!"%/%i%$%"%s%H$H%5!<%P$N4V$K(B
+ $B%W%m%-%7$,$"$l$P$^$C$?$/Lr$KN)$?$J$$$N$G!"(B
+ $B$3$NJQ?t$NCM$O?.MQ$G$-$J$$$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B
+ </dd>
+
+ <dt>REMOTE_USER</dt>
+
+ <dd>CGI
+ $B%9%/%j%W%H$KG'>Z$,I,MW$J$H$-$K$N$_@_Dj$5$l$^$9!#(B</dd>
+ </dl>
+
+ <h2><a id="cgi_debug" name="cgi_debug">CGI $B$N%G%P%C%0(B</a></h2>
+ <p>CGI $B%9%/%j%W%H$N%G%P%C%0$O!"@5$7$/F0:n$7$F$$$J$$%9%/%j%W%H$N=PNO(B
+ ($BI8=`=PNO$H%(%i!<(B)
+ $B$rD4$Y$k$3$H$,$G$-$J$$$?$a$K!"Fq$7$$>uBV$,B3$$$F$$$^$7$?!#(B
+ $B$3$l$i$N(B Apache 1.2 $B0J9_$K$"$k(B
+ $B%G%#%l%/%F%#%V$O$h$j>\:Y$J%(%i!<$N%m%0<}=8$rDs6!$7$^$9!#(B</p>
+
+ <h2>CGI $B%m%0%U%!%$%k$N=q<0(B</h2>
+ <p>$B@_Dj$5$l$F$$$k$H$-$K$O!"(BCGI $B%(%i!<%m%0$OE,@Z$KF0:n$7$J$$$9$Y$F$N(B
+ CGI $B$r%m%0<}=8$7$^$9!#$=$l$>$l$N@5$7$/F0:n$7$J$$(B CGI
+ $B%9%/%j%W%H$O(B $BJ#?t$N9T$K$o$?$k>pJs$,%m%0<}=8$5$l$^$9!#:G=i$N(B
+ 2 $B9T$O>o$K0J2<$N=q<0$G$9(B:</p>
+<pre>
+ %% [<em>time</em>] <em>request-line</em>
+ %% <em>HTTP-status</em> <em>CGI-script-filename</em>
+</pre>
+ <p>$B%(%i!<$,!"(BCGI $B%9%/%j%W%H$,<B9T$G$-$J$$$H$$$&$b$N$G$"$k>l9g$O!"(B
+ $B%m%0%U%!%$%k$O$5$i$K$b$&(B 2 $B9T=q$+$l$^$9(B:</p>
+<pre>
+ %%error
+ <em>error-message</em>
+</pre>
+ <p>$B$=$&$G$O$J$/!"%(%i!<$,@5$7$/$J$$%X%C%@>pJs$rJV$97k2L$G$"$k>l9g(B
+ ($B%9%/%j%W%H$N%P%0$G$"$k$3$H$,$h$/$"$j$^$9(B)$B!"(B
+ $B0J2<$N>pJs$,%m%0<}=8$5$l$^$9(B:</p>
+<pre>
+ %request
+ <em>All HTTP request headers received</em>
+ <em>POST or PUT entity (if any)</em>
+ %response
+ <em>All headers output by the CGI script</em>
+ %stdout
+ <em>CGI standard output</em>
+ %stderr
+ <em>CGI standard error</em>
+</pre>
+ <p>($B%9%/%j%W%H$,I8=`=PNO$dI8=`%(%i!<$K2?$b=PNO$7$J$+$C$?>l9g$O!"(B
+ %stdout $B$d(B %stderr $B$O$"$j$^$;$s(B)$B!#(B</p>
+ <hr />
+
+ <h3><a id="scriptlog" name="scriptlog">ScriptLog</a>
+ $B%G%#%l%/%F%#%V(B</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>$B9=J8(B:</strong></a> ScriptLog
+ <em>filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a> none<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a> mod_cgi
+ <p><tt>ScriptLog</tt> $B%G%#%l%/%F%#%V$O(B CGI $B%9%/%j%W%H$N(B
+ $B%(%i!<%m%0%U%!%$%k$r@_Dj$7$^$9!#(BScriptLog $B$,@_Dj$5$l$F$$$J$$$H$-$O!"(B
+ $B%(%i!<%m%0$O:n@.$5$l$^$;$s!#@_Dj$5$l$F$$$k$H$-$O!"(BCGI
+ $B$N%(%i!<$O$9$Y$F0z?t$H$7$FM?$($i$l$F$$$k%U%!%$%kL>$K%m%0$5$l$^$9!#(B
+ $BAjBP%Q%9$G;XDj$5$l$F$$$k$H$-$O!"(B
+ $B%5!<%P%k!<%H$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B</p>
+
+ <p>$B$3$N%m%0$O;R%W%m%;%9$,<B9T$5$l$F$$$k%f!<%6$H$7$F%*!<%W%s$5$l$^$9!#(B
+ $B$9$J$o$A!"(B<a href="core.html#User">User</a> $B%G%#%l%/%F%#%V$G;XDj$5$l$?(B
+ $B%f!<%6$G$9!#$3$l$O!"%9%/%j%W%H%m%0$,=q$+$l$k%G%#%l%/%H%j$,$=$N%f!<%6$G(B
+ $B=q$-9~$_2DG=$+!"%9%/%j%W%H%U%!%$%k$,<jF0$G:n@.$5$l!"$=$N%f!<%6$G(B
+ $B=q$-9~$_2DG=$K$J$C$F$$$kI,MW$,$"$k$H$$$&$3$H$G$9!#%9%/%j%W%H%m%0$r(B
+ $B%"%/%;%9%m%0$J$I$N$?$a$N%m%0%G%#%l%/%H%j$K=q$+$l$k$h$&$K$7$?$H$-$O!"(B
+ $B$=$N%G%#%l%/%H%j$r;R%W%m%;%9$r<B9T$7$F$$$k%f!<%6$N8"8B$G(B
+ $B=q$-9~$_2DG=$K$O(B<strong>$B$7$J$$(B</strong>$B$h$&$K$7$F$/$@$5$$!#(B</p>
+
+ <p>$B%9%/%j%W%H$N%m%0<}=8$O(B CGI $B%9%/%j%W%H$r=q$/$H$-$N(B
+ $B%G%P%C%0MQ$N5!G=$H$7$F0U?^$5$l$F$$$F!"DL>o$N%5!<%P$G(B
+ $B>o$K;HMQ$5$l$k$h$&$K$O0U?^$5$l$F$$$J$$$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B
+ $BB.EY$d8zN($O:GE,2=$5$l$F$*$i$:!"@_7W$5$l$?0J30$NJ}K!$G;HMQ$5$l$k$H(B
+ $B%;%-%e%j%F%#$NLdBj$,$"$k$+$b$7$l$^$;$s!#(B</p>
+ <hr />
+
+ <h3><a id="scriptloglength" name="scriptloglength">ScriptLogLength</a>
+ $B%G%#%l%/%F%#%V(B</h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>$B9=J8(B:</strong></a> ScriptLogLength
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a> 10385760<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a> mod_cgi
+ <p><tt>ScriptLogLength</tt> $B$O(B CGI $B%9%/%j%W%H$N%m%0%U%!%$%k(B
+ $B$NBg$-$5$r@)8B$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#%m%0%U%!%$%k$O(B
+ CGI $B$N%(%i!<Kh$KBgNL$N>pJs(B ($B%j%/%(%9%H$N$9$Y$F$N%X%C%@!"(B
+ $B$9$Y$F$N=PNO(B)$B$r%m%0$7$^$9$N$G!"$9$0$KBg$-$J%U%!%$%k$K$J$j$^$9!#(B
+ $B$3$NBg$-$5$N@)8B$,$J$$$3$H$K$h$kLdBj$rKI$0$?$a$K!"(B
+ $B$3$N%G%#%l%/%F%#%V$r;H$C$F(B CGI $B$N%m%0%U%!%$%k$N(B
+ $B:GBg$N%U%!%$%k%5%$%:$r@_Dj$9$k$3$H$,$G$-$^$9!#(B
+ $B%U%!%$%k$,$3$NBg$-$5$rD6$($?>l9g$O!"$=$l0J>e$O=q$-9~$^$l$^$;$s!#(B</p>
+ <hr />
+ <h3><a id="scriptlogbuffer"
+ name="scriptlogbuffer">ScriptLogBuffer</a></h3>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>$B9=J8(B:</strong></a> ScriptLogBuffer
+ <em>bytes</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>$B%G%U%)%k%H(B:</strong></a> 1024<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a> mod_cgi
+ <p>$BBg$-$JK\BN$r<u$1<h$C$?$H$-$K%m%0%U%!%$%k$,$9$0$KBg$-$/$J$j$9$.$k(B
+ $BLdBj$rHr$1$k$?$a$K!"%U%!%$%k$K%m%0<}=8$5$l$k(B PUT $B$H(B POST
+ $B$NK\BN$NBg$-$5$O@)8B$5$l$F$$$^$9!#%G%U%)%k%H$G$O!"(B1024
+ $B%P%$%H$^$G$,%m%0<}=8$5$l$^$9$,!"(B
+ $B$3$N%G%#%l%/%F%#%V$O$=$l$rJQ99$9$k$3$H$,$G$-$^$9!#(B
+ </p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis
index 1f6fd6f5331..730ad5242b6 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_env.html.ja.jis
@@ -7,7 +7,7 @@
<title>Apache module mod_env</title>
</head>
- <!-- English revision: 1.21 -->
+ <!-- English revision: 1.22 -->
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
vlink="#000080" alink="#ff0000">
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html
index 0bb36eb6d57..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html
@@ -1,113 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_info</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_info</h1>
-
- <p>This module provides a comprehensive overview of the server
- configuration including all installed modules and directives in
- the configuration files.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Extension<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> mod_info.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- info_module<br />
- <a href="module-dict.html#compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Available in
- Apache 1.1 and later.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#addmoduleinfo">AddModuleInfo</a></li>
- </ul>
-
- <h2>Using mod_info</h2>
-
- <p>To configure it, add the following to your
- <code>access.conf</code> file.</p>
-<pre>
-&lt;Location /server-info&gt;
-SetHandler server-info
-&lt;/Location&gt;
-</pre>
- You may wish to add a <a
- href="core.html#limit">&lt;Limit&gt;</a> clause inside the <a
- href="core.html#location">location</a> directive to limit
- access to your server configuration information.
-
- <p>Once configured, the server information is obtained by
- accessing <tt>http://your.host.dom/server-info</tt></p>
-
- <blockquote>
- <p><strong>Note that the configuration files are read by the
- module at run-time, and therefore the display may
- <em>not</em> reflect the running server's active
- configuration if the files have been changed since the server
- was last reloaded. Also, the configuration files must be
- readable by the user as which the server is running (see the
- <a href="core.html#user"><samp>User</samp></a> directive), or
- else the directive settings will not be listed.</strong></p>
-
- <p><strong>It should also be noted that if
- <samp>mod_info</samp> is compiled into the server, its
- handler capability is available in <em>all</em> configuration
- files, including <em>per</em>-directory files (<em>e.g.</em>,
- <samp>.htaccess</samp>). This may have security-related
- ramifications for your site.</strong></p>
- </blockquote>
- <hr />
-
- <h2><a id="addmoduleinfo"
- name="addmoduleinfo">AddModuleInfo</a></h2>
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> AddModuleInfo
- <em>module-name string</em><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config, virtual
- host<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Extension<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_info<br />
- <a href="directive-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
- above
-
- <p>This allows the content of <em>string</em> to be shown as
- HTML interpreted, <strong>Additional Information</strong> for
- the module <em>module-name</em>. Example:</p>
-
- <blockquote>
-<pre>
-AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_auth.html"&gt;http://www.apache.org/docs/mod/mod_auth.html&lt;/A&gt;'
-</pre>
- </blockquote>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.en
index 0bb36eb6d57..8b26b988b0e 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.en
@@ -111,3 +111,116 @@ AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_aut
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_info</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_info</h1>
+
+ <p>This module provides a comprehensive overview of the server
+ configuration including all installed modules and directives in
+ the configuration files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_info.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ info_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#addmoduleinfo">AddModuleInfo</a></li>
+ </ul>
+
+ <h2>Using mod_info</h2>
+
+ <p>To configure it, add the following to your
+ <code>access.conf</code> file.</p>
+<pre>
+&lt;Location /server-info&gt;
+SetHandler server-info
+&lt;/Location&gt;
+</pre>
+ You may wish to add a <a
+ href="core.html#limit">&lt;Limit&gt;</a> clause inside the <a
+ href="core.html#location">location</a> directive to limit
+ access to your server configuration information.
+
+ <p>Once configured, the server information is obtained by
+ accessing <tt>http://your.host.dom/server-info</tt></p>
+
+ <blockquote>
+ <p><strong>Note that the configuration files are read by the
+ module at run-time, and therefore the display may
+ <em>not</em> reflect the running server's active
+ configuration if the files have been changed since the server
+ was last reloaded. Also, the configuration files must be
+ readable by the user as which the server is running (see the
+ <a href="core.html#user"><samp>User</samp></a> directive), or
+ else the directive settings will not be listed.</strong></p>
+
+ <p><strong>It should also be noted that if
+ <samp>mod_info</samp> is compiled into the server, its
+ handler capability is available in <em>all</em> configuration
+ files, including <em>per</em>-directory files (<em>e.g.</em>,
+ <samp>.htaccess</samp>). This may have security-related
+ ramifications for your site.</strong></p>
+ </blockquote>
+ <hr />
+
+ <h2><a id="addmoduleinfo"
+ name="addmoduleinfo">AddModuleInfo</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddModuleInfo
+ <em>module-name string</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_info<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
+ above
+
+ <p>This allows the content of <em>string</em> to be shown as
+ HTML interpreted, <strong>Additional Information</strong> for
+ the module <em>module-name</em>. Example:</p>
+
+ <blockquote>
+<pre>
+AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_auth.html"&gt;http://www.apache.org/docs/mod/mod_auth.html&lt;/A&gt;'
+</pre>
+ </blockquote>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.html
index bd60de7d41b..f07e8a3e30a 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.html
@@ -115,3 +115,120 @@ AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_aut
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_info</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_info</h1>
+
+ <p>This module provides a comprehensive overview of the server
+ configuration including all installed modules and directives in
+ the configuration files.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_info.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ info_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.1 and later.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#addmoduleinfo">AddModuleInfo</a></li>
+ </ul>
+
+ <h2>Using mod_info</h2>
+
+ <p>To configure it, add the following to your
+ <code>access.conf</code> file.</p>
+<pre>
+&lt;Location /server-info&gt;
+SetHandler server-info
+&lt;/Location&gt;
+</pre>
+ You may wish to add a <a
+ href="core.html#limit">&lt;Limit&gt;</a> clause inside the <a
+ href="core.html#location">location</a> directive to limit
+ access to your server configuration information.
+
+ <p>Once configured, the server information is obtained by
+ accessing <tt>http://your.host.dom/server-info</tt></p>
+
+ <blockquote>
+ <p><strong>Note that the configuration files are read by the
+ module at run-time, and therefore the display may
+ <em>not</em> reflect the running server's active
+ configuration if the files have been changed since the server
+ was last reloaded. Also, the configuration files must be
+ readable by the user as which the server is running (see the
+ <a href="core.html#user"><samp>User</samp></a> directive), or
+ else the directive settings will not be listed.</strong></p>
+
+ <p><strong>It should also be noted that if
+ <samp>mod_info</samp> is compiled into the server, its
+ handler capability is available in <em>all</em> configuration
+ files, including <em>per</em>-directory files (<em>e.g.</em>,
+ <samp>.htaccess</samp>). This may have security-related
+ ramifications for your site.</strong></p>
+ </blockquote>
+ <hr />
+
+ <h2><a id="addmoduleinfo"
+ name="addmoduleinfo">AddModuleInfo</a></h2>
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> AddModuleInfo
+ <em>module-name string</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_info<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Apache 1.3 and
+ above
+
+ <p>This allows the content of <em>string</em> to be shown as
+ HTML interpreted, <strong>Additional Information</strong> for
+ the module <em>module-name</em>. Example:</p>
+
+ <blockquote>
+<pre>
+AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_auth.html"&gt;http://www.apache.org/docs/mod/mod_auth.html&lt;/A&gt;'
+</pre>
+ </blockquote>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.ja.jis
index 48362b3fc6d..d20e289ece4 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_info.html.ja.jis
@@ -110,3 +110,115 @@ AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_aut
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_info</title>
+
+ </head>
+ <!-- English revision: 1.12 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_info $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O%$%s%9%H!<%k$5$l$F$$$k$9$Y$F$N%b%8%e!<%k$d!"(B
+ $B@_Dj%U%!%$%k$N%G%#%l%/%F%#%V$J$I!"%5!<%P$N@_Dj$NA4BNE*$J35MW$r(B
+ $BDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Extension<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_info.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ info_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ Apache 1.1 $B0J9_$G;HMQ2DG=!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#addmoduleinfo">AddModuleInfo</a></li>
+ </ul>
+
+ <h2>mod_info $B$N;HMQK!(B</h2>
+
+ <p>$B@_Dj$9$k$K$O!"0J2<$r(B <code>access.conf</code>
+ $B%U%!%$%k$K2C$($^$9!#(B</p>
+<pre>
+&lt;Location /server-info&gt;
+SetHandler server-info
+&lt;/Location&gt;
+</pre>
+ $B%5!<%P@_Dj$N>pJs$X$N%"%/%;%9$r@)8B$9$k$?$a$K!"(B
+ <a href="core.html#location">location</a>
+ $B%G%#%l%/%F%#%V$NCf$K(B <a href="core.html#limit">&lt;Limit&gt;</a>
+ $B@a$rF~$l$k$H$h$$$+$b$7$l$^$;$s!#(B
+
+ <p>$B0lC6@_Dj$9$k$H!"(B<tt>http://your.host.dom/server-info</tt>
+ $B$r%"%/%;%9$9$k$H%5!<%P$N>pJs$rF@$i$l$k$h$&$K$J$j$^$9!#(B</p>
+
+ <blockquote>
+ <p><strong>$B$3$N%b%8%e!<%k$O<B9T;~$K@_Dj%U%!%$%k$rFI$_9~$_$^$9!#(B
+ $B%5!<%P$N@_Dj%U%!%$%k$,:G8e$K%5!<%P$KFI$_9~$^$l$?8e$KJQ99$5$l$F$$$k(B
+ $B>l9g$K$O!"I=<($5$l$F$$$kFbMF$O<B9T$5$l$F$$$k%5!<%P$N@_Dj$rH?1G$7$F(B
+ <em>$B$$$J$$(B</em>$B$+$b$7$l$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B
+ $B$^$?!"@_Dj%U%!%$%k$O%5!<%P$,<B9T$5$l$F$$$k%f!<%6$N8"8B$G(B
+ $BFI$_9~$_5v2D$,M?$($i$l$F$$$kI,MW$,$"$j$^$9(B
+ (<a href="core.html#user"><samp>User</samp></a>
+ $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$(B)$B!#(B
+ $B$G$J$1$l$P!"%G%#%l%/%F%#%V$N@_Dj$OI=<($5$l$^$;$s!#(B</strong></p>
+ <p><strong><samp>mod_info</samp>
+ $B$,%5!<%P$KAH$_9~$^$l$F$$$k>l9g$O!"%G%#%l%/%H%j(B<em>$BKh(B</em>$B$N%U%!%$%k(B
+ ($BNc$($P!"(B<samp>.htaccess</samp>) $B$r4^$`$9$Y$F$N@_Dj%U%!%$%k$G(B
+ $B%O%s%I%i$r;HMQ2DG=$G$"$k$H$$$&$3$H$K$bCm0U$7$F$/$@$5$$!#(B
+ $B$3$l$O!"$"$J$?$N%5%$%H$G$O%;%-%e%j%F%#$K4XO"$7$?LdBj$,$"$k$+$b$7$l$^$;$s!#(B
+ </strong></p>
+ </blockquote>
+ <hr />
+
+ <h2><a id="addmoduleinfo"
+ name="addmoduleinfo">AddModuleInfo</a></h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddModuleInfo
+ <em>module-name string</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Extension<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_info<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J9_!#(B
+
+
+ <p>$B$3$l$O!"(B<em>string</em> $B$NFbMF$,%b%8%e!<%k(B <em>module-name</em>
+ $B$N(B<strong>$BDI2C>pJs(B</strong> $B$H$7$F(B HTML
+ $B$H$7$F2r<a$5$l!"I=<($5$l$k$h$&$K$7$^$9!#Nc(B:</p>
+
+ <blockquote>
+<pre>
+AddModuleInfo mod_auth.c 'See &lt;A HREF="http://www.apache.org/docs/mod/mod_auth.html"&gt;http://www.apache.org/docs/mod/mod_auth.html&lt;/A&gt;'
+</pre>
+ </blockquote>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html
index 8e84a810277..66a52da7946 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_common.html
@@ -129,7 +129,7 @@
standard input. Note the a new program will not be started
for a VirtualHost if it inherits the TransferLog from the
main server. See, just as an example, <a
- href="http://www.ford-mason.co.uk/resources/cronolog/">cronolog</a>.</dd>
+ href="http://www.cronolog.org/">cronolog</a>.</dd>
</dl>
<strong>Security:</strong> if a program is used, then it will
be run under the user who started httpd. This will be root if
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html b/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html
index 89f6daca5a0..67627c51d6e 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_log_config.html
@@ -305,8 +305,8 @@
<p>Environment variables can be set on a <em>per</em>-request
basis using the <a href="mod_setenvif.html">mod_setenvif</a>
and/or <a href="mod_rewrite.html">mod_rewrite</a> modules. For
- example, if you don't want to record requests for all GIF
- images on your server in a separate logfile but not your main
+ example, if you want to record requests for all GIF
+ images on your server in a separate logfile but not in your main
log, you can use:</p>
<pre>
SetEnvIf Request_URI \.gif$ gif-image
@@ -360,6 +360,11 @@
nickname, it doesn't actually apply the format and make it the
default. Therefore, it will not affect subsequent <a
href="#transferlog">TransferLog</a> directives.</p>
+
+ <p>For example:</p>
+
+ <code>LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</code>
+
<hr />
<h2><a id="transferlog" name="transferlog">TransferLog</a>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en
index 5f18471af0c..680470b08a0 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.en
@@ -18,7 +18,7 @@
</div>
- <h1 align="CENTER">Module mod_mime</h1>
+ <h1 align="center">Module mod_mime</h1>
<p>This module provides for determining the types of files from
the filename and for association of handlers with files.</p>
@@ -448,7 +448,7 @@
<p>Note that this will override any filename extensions that
might determine the media type.</p>
- <strong>See also</strong>: <a
+ <p><strong>See also</strong>: <a
href="#addtype">AddType</a></p>
<hr />
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html
index ff362c9e2d9..5b2da0a774b 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.html
@@ -20,7 +20,7 @@
</div>
- <h1 align="CENTER">Module mod_mime</h1>
+ <h1 align="center">Module mod_mime</h1>
<p>This module provides for determining the types of files from
the filename and for association of handlers with files.</p>
@@ -450,7 +450,7 @@
<p>Note that this will override any filename extensions that
might determine the media type.</p>
- <strong>See also</strong>: <a
+ <p><strong>See also</strong>: <a
href="#addtype">AddType</a></p>
<hr />
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis
index 4d8e2fb22c8..55261131a97 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_mime.html.ja.jis
@@ -1,169 +1,156 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache module mod_mime</title>
-</head>
-<!-- English revision: 1.45 -->
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_mime</title>
+
+ </head>
+ <!-- English revision: 1.48 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
-<h1 align="CENTER">mod_mime $B%b%8%e!<%k(B</h1>
-
-<p>$B$3$N%b%8%e!<%k$O!"%U%!%$%k$N%?%$%W$r%U%!%$%kL>$+$i7hDj$9$k5!G=$H!"(B
-$B%U%!%$%k$K%O%s%I%i$r4XO"IU$1$k5!G=$rDs6!$7$^$9!#(B</p>
-
-<p><a
-href="module-dict.html#Status"
-rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base
-<br>
-<a
-href="module-dict.html#SourceFile"
-rel="Help"
-><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_mime.c
-<br>
-<a
-href="module-dict.html#ModuleIdentifier"
-rel="Help"
-><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> mime_module
-</p>
-
-<h2>$B35MW(B</h2>
-
-<p>
-$B$3$N%b%8%e!<%k$O!"%I%-%e%a%s%H$N$$$m$$$m$J!V%a%?>pJs!W$r7hDj$9$k$?$a$K(B
-$B;HMQ$5$l$^$9!#$3$N>pJs$O%I%-%e%a%s%H$N%3%s%F%s%D$K4XO"$7$F$$$k$b$N$G!"(B
-$B%V%i%&%6$KJV$5$l$?$j!"%5!<%PFb$G%3%s%F%s%H%M%4%7%(!<%7%g%s$K;H$o$l$?$j$7$^$9!#(B
-$B$5$i$K!"!V%O%s%I%i!W$r%I%-%e%a%s%H$KBP$7$F@_Dj$9$k$3$H$,$G$-$^$9!#%O%s%I%i$O(B
-$B%5!<%PFb$G%I%-%e%a%s%H$r$I$N$h$&$K=hM}$9$k$+$r7hDj$7$^$9!#(B
-</p>
-
-<p>
-$B%G%#%l%/%F%#%V(B <a href="#addcharset">AddCharset</a>,
-<a href="#addencoding">AddEncoding</a>, <a href="#addhandler">AddHandler</a>,
-<a href="#addlanguage">AddLanguage</a>, <a href="#addtype">AddType</a>
-$B$O$9$Y$F!"%U%!%$%k$N3HD%;R$r%a%?>pJs$K%^%C%W$9$k$?$a$K;HMQ$5$l$^$9!#(B
-$B$=$l$>$l!"%I%-%e%a%s%H$NJ8;z%;%C%H(B ($BLuCm(B: charset)$B!"(Bcontent-encoding, $B%O%s%I%i!"(B
-content-language, MIME $B%?%$%W(B (content-type) $B$r@_Dj$7$^$9!#(B
-$B%G%#%l%/%F%#%V(B <a href="#typesconfig">TypesConfig</a> $B$O3HD%;R$r(B MIME $B%?%$%W$K(B
-$B%^%C%W$9$k%U%!%$%k$r;XDj$9$k$?$a$K;HMQ$5$l$^$9!#%G%#%l%/%F%#%V(B <a
-href="#forcetype">ForceType</a> $B$H(B <a
-href="#sethandler">SetHandler</a> $B$O!"M?$($i$l$?>l=j(B (<em>$BNc$($P(B</em>$B!"(B
-$BFCDj$N%G%#%l%/%H%j(B) $B$K$"$k$9$Y$F$N%U%!%$%k$rFCDj$N(B MIME $B%?%$%W$d%O%s%I%i$K(B
-$B4XO"IU$1$k$?$a$K;HMQ$5$l$^$9!#(B
-</p>
-
-
-<p>
-$B%U%!%$%k$N%?%$%W$d%(%s%3!<%G%#%s%0$rJQ$($F$b(B <code>Last-Modified</code>
-$B%X%C%@$NCM$OJQ$o$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"(B
-$B$=$l$i$rJQ99$7$?>l9g$O!"%/%i%$%"%s%H$d%W%m%-%7$G0JA0$K%-%c%C%7%e$5$l$?(B
-$B%3%T!<$,$=$N$H$-$N%X%C%@$H$H$b$K;H$o$l$k2DG=@-$,$"$j$^$9!#(B
-</p>
-
-<h2>$B%G%#%l%/%F%#%V(B</h2>
-<ul>
-<li><a href="#addcharset">AddCharset</a></li>
-<li><a href="#addencoding">AddEncoding</a></li>
-<li><a href="#addhandler">AddHandler</a></li>
-<li><a href="#addlanguage">AddLanguage</a></li>
-<li><a href="#addtype">AddType</a></li>
-<li><a href="#defaultlanguage">DefaultLanguage</a></li>
-<li><a href="#forcetype">ForceType</a></li>
-<li><a href="#removeencoding">RemoveEncoding</a></li>
-<li><a href="#removehandler">RemoveHandler</a></li>
-<li><a href="#removetype">RemoveType</a></li>
-<li><a href="#sethandler">SetHandler</a></li>
-<li><a href="#typesconfig">TypesConfig</a></li>
-</ul>
-
-<p>$B;2>H(B: <a
-href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></p>
-
-<h2><a name="multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></h2>
-
-<p>
-$B%U%!%$%k$OJ#?t$N3HD%;R$r;}$D$3$H$,$G$-!"3HD%;R$N=gHV$O(B<em>$BDL>o$O(B</em>
-$B4X78$"$j$^$;$s!#Nc$($P!"(B<code>welcome.html.fr</code> $B%U%!%$%k$,(B
-$B%3%s%F%s%H%?%$%W$O(B text/html $B$K!"8@8l$O%U%i%s%98l$K%^%C%W$5$l$k>l9g!"(B
-<code>welcome.fr.html</code> $B$b$^$C$?$/F1$8>pJs$K%^%C%W$5$l$^$9!#(B
-$BM#0l$NNc30$O!"M?$($i$l$?3HD%;R$N07$$J}$r(B
-Apache $B$,CN$i$J$$>l9g$G$9!#$=$N>l9g!"(BApache $B$OCN$i$J$$3HD%;R$N:8$K$"$k(B
-$B$9$Y$F$N3HD%;R$r!VK:$l!W$^$9!#$G$9$+$i!"Nc$($P!"3HD%;R(B fr $B$H(B html $B$,E,@Z$J(B
-$B8@8l$H%?%$%W$K%^%C%W$5$l$F$$$k$1$l$I$b!"3HD%;R(B xxx $B$O2?$K$b(B
-$B3d$jEv$F$i$l$F$$$J$$$H$$$&>l9g$K$O!"(B<code>welcome.fr.xxx.html</code>
-$B%U%!%$%k$O%3%s%F%s%H%?%$%W(B text/html
-$B$K4XO"IU$1$i$l$^$9$,!"8@8l$K$O4XO"IU$1$i$l(B<em>$B$^$;$s(B</em>$B!#(B
-</p>
-
-<p>
-$BF1$8%a%?>pJs$K%^%C%W$5$l$k3HD%;R$,J#?t$"$k$H$-$K$O!"1&B&$K$"$k$b$N$,(B
-$B;HMQ$5$l$^$9!#Nc$($P!"(B".gif" $B$,(B MIME $B%?%$%W(B image/gif $B$K%^%C%W$5$l!"(B
-".html" $B$,(B MIME $B%?%$%W(B text/html $B$K%^%C%W$5$l$k>l9g$O!"%U%!%$%k(B
-<code>welcome.gif.html</code> $B$O(B MIME $B%?%$%W(B "text/html" $B$K4XO"IU$1$i$l$^$9!#(B
-</p>
-
-<p>
-$BJ#?t$N3HD%;R$N$"$k%U%!%$%k$,(B MIME $B%?%$%W$H%O%s%I%i$NN>J}$K(B
-$B4XO"IU$1$i$l$F$$$k$H$-$OCm0U$9$kI,MW$,$"$j$^$9!#$=$N>l9g!"IaDL$O(B
-$B%j%/%(%9%H$,%O%s%I%i$K4XO"IU$1$i$l$?%b%8%e!<%k$K$h$C$F07$o$l$k$3$H$K$J$j$^$9!#(B
-$BNc$($P!"3HD%;R(B <code>.imap</code> $B$,(B (mod_imap $B$N(B) "imap-file" $B$K(B
-$B%^%C%W$5$l$F$$$F!"(B<code>.html</code> $B$,(B MIME $B%?%$%W(B "text/html" $B$K(B
-$B%^%C%W$5$l$F$$$k$H$-$O!"%U%!%$%k(B <code>world.imap.html</code> $B$O(B
-"imap-file" $B%O%s%I%i$H(B "text/html" MIME $B%?%$%W$K4XO"IU$1$i$l$^$9!#(B
-$B%U%!%$%k$,=hM}$5$l$k$H$-$O(B "imap-file" $B%O%s%I%i$,;HMQ$5$l$^$9$N$G!"(B
-$B$=$N%U%!%$%k$O(B mod_imap $B$N%$%a!<%8%^%C%W%U%!%$%k$H$7$F07$o$l$k$3$H$K$J$j$^$9!#(B
-</p>
-
-<hr>
-
-<h2><a name="addcharset">AddCharset</a> $B%G%#%l%/%F%#%V(B</h2>
-<a href="directive-dict.html#Syntax" rel="Help"
-><strong>$B9=J8(B:</strong></a> AddCharset <em>charset extension</em>
- [<em>extension</em>] ...<br>
-<a href="directive-dict.html#Context" rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime
-<br>
-<a href="directive-dict.html#Compatibility" rel="Help"
-><strong>$B8_49@-(B:</strong></a> AddCharset $B$O(B Apache 1.3.10 $B0J9_$G$N$_;HMQ2DG=!#(B
-<br>
-
-<p>
-AddCharset $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
-charset $B$K%^%C%W$7$^$9!#(B<em>charset</em> $B$O!"3HD%;R(B <em>extension</em> $B$r(B
-$B4^$s$G$$$k%U%!%$%kL>$N(B MIME charset $B%Q%i%a!<%?$G$9!#(B
-$B?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$K(B
-$BDI2C$5$l!"F1$83HD%;R(B <em>extension</em> $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r(B
-$B>e=q$-$7$^$9!#(B
-</p>
-<p>
-$BNc(B:
-</p>
+
+ <h1 align="center">mod_mime $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O!"%U%!%$%k$N%?%$%W$r%U%!%$%kL>$+$i7hDj$9$k5!G=$H!"(B
+ $B%U%!%$%k$K%O%s%I%i$r4XO"IU$1$k5!G=$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_mime.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> mime_module
+ </p>
+
+ <h2>$B35MW(B</h2>
+
+ $B$3$N%b%8%e!<%k$O!"%I%-%e%a%s%H$N$$$m$$$m$J!V%a%?>pJs!W(B
+ $B$r7hDj$9$k$?$a$K;HMQ$5$l$^$9!#$3$N>pJs$O(B
+ $B%I%-%e%a%s%H$N%3%s%F%s%D$K4XO"$7$F$$$k$b$N$G!"%V%i%&%6$KJV$5$l$?$j!"(B
+ $B%5!<%PFb$G%3%s%F%s%H%M%4%7%(!<%7%g%s$K;H$o$l$?$j$7$^$9!#(B
+ $B$5$i$K!"!V%O%s%I%i!W$r%I%-%e%a%s%H$KBP$7$F@_Dj$9$k$3$H$,$G$-$^$9!#(B
+ $B%O%s%I%i$O%5!<%PFb$G%I%-%e%a%s%H$r$I$N$h$&$K=hM}$9$k$+$r7hDj$7$^$9!#(B
+
+ <p>$B%G%#%l%/%F%#%V(B <a href="#addcharset">AddCharset</a>,
+ <a href="#addencoding">AddEncoding</a>, <a href="#addhandler"
+ >AddHandler</a>, <a href="#addlanguage">AddLanguage</a>, <a
+ href="#addtype">AddType</a> $B$O$9$Y$F!"(B
+ $B%U%!%$%k$N3HD%;R$r%a%?>pJs$K%^%C%W$9$k$?$a$K;HMQ$5$l$^$9!#(B
+ $B$=$l$>$l!"%I%-%e%a%s%H$NJ8;z%;%C%H(B ($BLuCm(B: charset)$B!"(Bcontent-encoding,
+ $B%O%s%I%i!"(Bcontent-language, MIME $B%?%$%W(B (content-type) $B$r@_Dj$7$^$9!#(B
+ $B%G%#%l%/%F%#%V(B <a href="#typesconfig">TypesConfig</a> $B$O3HD%;R$r(B
+ MIME $B%?%$%W$K%^%C%W$9$k%U%!%$%k$r;XDj$9$k$?$a$K;HMQ$5$l$^$9!#(B
+ $B%G%#%l%/%F%#%V(B <a href="#forcetype">ForceType</a> $B$H(B <a
+ href="#sethandler">SetHandler</a> $B$O!"M?$($i$l$?>l=j(B
+ (<em>$BNc$($P(B</em>$B!"FCDj$N%G%#%l%/%H%j(B) $B$K$"$k$9$Y$F$N%U%!%$%k$rFCDj$N(B
+ MIME $B%?%$%W$d%O%s%I%i$K4XO"IU$1$k$?$a$K;HMQ$5$l$^$9!#(B</p>
+
+ <p>$B%U%!%$%k$N%?%$%W$d%(%s%3!<%G%#%s%0$rJQ$($F$b(B <code>Last-Modified</code>
+ $B%X%C%@$NCM$OJQ$o$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"(B
+ $B$=$l$i$rJQ99$7$?>l9g$O!"%/%i%$%"%s%H$d%W%m%-%7$G0JA0$K%-%c%C%7%e$5$l$?(B
+ $B%3%T!<$,$=$N$H$-$N%X%C%@$H$H$b$K;H$o$l$k2DG=@-$,$"$j$^$9!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#addcharset">AddCharset</a></li>
+
+ <li><a href="#addencoding">AddEncoding</a></li>
+
+ <li><a href="#addhandler">AddHandler</a></li>
+
+ <li><a href="#addlanguage">AddLanguage</a></li>
+
+ <li><a href="#addtype">AddType</a></li>
+
+ <li><a href="#defaultlanguage">DefaultLanguage</a></li>
+
+ <li><a href="#forcetype">ForceType</a></li>
+
+ <li><a href="#removeencoding">RemoveEncoding</a></li>
+
+ <li><a href="#removehandler">RemoveHandler</a></li>
+
+ <li><a href="#removetype">RemoveType</a></li>
+
+ <li><a href="#sethandler">SetHandler</a></li>
+
+ <li><a href="#typesconfig">TypesConfig</a></li>
+ </ul>
+
+ <p>$B;2>H(B: <a
+ href="mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></p>
+
+ <h2><a id="multipleext"
+ name="multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></h2>
+
+ $B%U%!%$%k$OJ#?t$N3HD%;R$r;}$D$3$H$,$G$-!"3HD%;R$N=gHV$O(B<em
+ >$BDL>o$O(B</em>$B4X78$"$j$^$;$s!#$?$H$($P!"(B<code>welcome.html.fr</code>
+ $B%U%!%$%k$,%3%s%F%s%H%?%$%W$O(B text/html
+ $B$K!"8@8l$O%U%i%s%98l$K%^%C%W$5$l$k>l9g!"(B<code>welcome.fr.html</code>
+ $B$b$^$C$?$/F1$8>pJs$K%^%C%W$5$l$^$9!#(B
+ $BM#0l$NNc30$O!"M?$($i$l$?3HD%;R$N07$$J}$r(B Apache
+ $B$,CN$i$J$$>l9g$G$9!#$=$N>l9g!"(BApache
+ $B$OCN$i$J$$3HD%;R$N:8$K$"$k$9$Y$F$N3HD%;R$r!VK:$l!W$^$9!#(B
+ $B$G$9$+$i!"$?$H$($P!"3HD%;R(B fr $B$H(B html
+ $B$,E,@Z$J8@8l$H%?%$%W$K%^%C%W$5$l$F$$$k$1$l$I$b!"3HD%;R(B xxx
+ $B$O2?$K$b3d$jEv$F$i$l$F$$$J$$$H$$$&>l9g$K$O!"(B<code
+ >welcome.fr.xxx.html</code> $B%U%!%$%k$O%3%s%F%s%H%?%$%W(B text/html
+ $B$K4XO"IU$1$i$l$^$9$,!"8@8l$K$O4XO"IU$1$i$l(B<em>$B$^$;$s(B</em>$B!#(B
+
+ <p>$BF1$8%a%?>pJs$K%^%C%W$5$l$k3HD%;R$,J#?t$"$k$H$-$K$O!"(B
+ $B1&B&$K$"$k$b$N$,;HMQ$5$l$^$9!#$?$H$($P!"(B".gif" $B$,(B MIME $B%?%$%W(B
+ image/gif $B$K%^%C%W$5$l!"(B".html" $B$,(B MIME $B%?%$%W(B text/html
+ $B$K%^%C%W$5$l$k>l9g$O!"%U%!%$%k(B <code>welcome.gif.html</code> $B$O(B
+ MIME $B%?%$%W(B "text/html" $B$K4XO"IU$1$i$l$^$9!#(B</p>
+
+ <p>$BJ#?t$N3HD%;R$N$"$k%U%!%$%k$,(B MIME
+ $B%?%$%W$H%O%s%I%i$NN>J}$K4XO"IU$1$i$l$F$$$k$H$-$OCm0U$9$kI,MW$,$"$j$^$9!#(B
+ $B$=$N>l9g!"IaDL$O%j%/%(%9%H$,%O%s%I%i$K4XO"IU$1$i$l$?(B
+ $B%b%8%e!<%k$K$h$C$F07$o$l$k$3$H$K$J$j$^$9!#$?$H$($P!"3HD%;R(B
+ <code>.imap</code> $B$,(B (mod_imap $B$N(B) "imap-file" $B$K%^%C%W$5$l$F$$$F!"(B
+ <code>.html</code> $B$,(B MIME $B%?%$%W(B "text/html"
+ $B$K%^%C%W$5$l$F$$$k$H$-$O!"%U%!%$%k(B <code>world.imap.html</code> $B$O(B
+ "imap-file" $B%O%s%I%i$H(B "text/html" MIME
+ $B%?%$%W$K4XO"IU$1$i$l$^$9!#%U%!%$%k$,=hM}$5$l$k$H$-$O(B "imap-file"
+ $B%O%s%I%i$,;HMQ$5$l$^$9$N$G!"$=$N%U%!%$%k$O(B mod_imap
+ $B$N%$%a!<%8%^%C%W%U%!%$%k$H$7$F07$o$l$k$3$H$K$J$j$^$9!#(B</p>
+ <hr />
+
+ <h2><a id="addcharset" name="addcharset">AddCharset</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddCharset <em>charset
+ extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> AddCharset $B$O(B
+ Apache 1.3.10 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p>AddCharset $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
+ charset $B$K%^%C%W$7$^$9!#(B<em>charset</em> $B$O!"3HD%;R(B
+ <em>extension</em> $B$r4^$s$G$$$k%U%!%$%kL>$N(B MIME charset
+ $B%Q%i%a!<%?$G$9!#?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B
+ <em>extension</em> $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B</p>
+
+ <p>$BNc(B:</p>
<pre>
AddLanguage ja .ja
AddCharset EUC-JP .euc
@@ -171,653 +158,512 @@ charset $B$K%^%C%W$7$^$9!#(B<em>charset</em> $B$O!"3HD%;R(B <em>extension</e
AddCharset SHIFT_JIS .sjis
</pre>
-<p>
-$B$3$N>l9g!"%I%-%e%a%s%H(B <code>xxxx.ja.jis</code> $B$O(B charset $B$,(B ISO-2022-JP $B$N(B
-$BF|K\8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.jis.ja</code> $B$bF1MM(B)$B!#(B
-AddCharset $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$,E,@Z$K2r<a$5$lI=<($5$l$k$h$&$K!"(B
-$B%I%-%e%a%s%H$N(B charset $B$N>pJs$r%/%i%$%"%s%H$K65$($k$?$a$KLr$KN)$A$^$9!#(B
-$B$^$?!"%5!<%P$,%/%i%$%"%s%H$N(B charset $B$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$N(B
-$BCf$+$i%I%-%e%a%s%H$rA*$V(B<a
- href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$b(B
-$BLr$KN)$A$^$9!#(B
-</p>
-
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<p>
-<strong>$B;2>H(B</strong>: <a href="mod_negotiation.html">mod_negotiation</a>
-</p>
-
-<hr>
-
-<h2><a name="addencoding">AddEncoding</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> AddEncoding <em>MIME-enc extension</em>
- [<em>extension</em>] ...<BR>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-
-<p>
-AddEncoding $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
-$B%(%s%3!<%G%#%s%0$K%^%C%W$7$^$9!#(B<em>MIME-enc</em> $B$O!"3HD%;R(B <em>extension</em>
-$B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%(%s%3!<%G%#%s%0$G$9!#(B
-$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em>
-$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B
-</p>
-
-<p>
-$BNc(B:
-</p>
-<pre>
- AddEncoding x-gzip .gz
- AddEncoding x-compress .Z
-</pre>
+ <p>$B$3$N>l9g!"%I%-%e%a%s%H(B <code>xxxx.ja.jis</code> $B$O(B charset $B$,(B
+ ISO-2022-JP $B$NF|K\8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B
+ (<code>xxxx.jis.ja</code> $B$bF1MM(B)$B!#(BAddCharset
+ $B%G%#%l%/%F%#%V$O!"%I%-%e%a%s%H$,E,@Z$K2r<a$5$lI=<($5$l$k$h$&$K!"(B
+ $B%I%-%e%a%s%H$N(B charset $B$N>pJs$r%/%i%$%"%s%H$K65$($k$?$a$KLr$KN)$A$^$9!#(B
+ $B$^$?!"%5!<%P$,%/%i%$%"%s%H$N(B charset
+ $B$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$NCf$+$i%I%-%e%a%s%H$rA*$V(B<a
+ href="../content-negotiation.html"
+ >$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$bLr$KN)$A$^$9!#(B</p>
+
+ <p>$B0z?t(B <em>extension</em>$B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="mod_negotiation.html">mod_negotiation</a></p>
+ <hr />
+
+ <h2><a id="addencoding"
+ name="addencoding">AddEncoding</a> $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddEncoding} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddEncoding
+ <em>MIME-enc extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+
+ <p>AddEncoding $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
+ $B%(%s%3!<%G%#%s%0$K%^%C%W$7$^$9!#(B<em>MIME-enc</em> $B$O!"3HD%;R(B
+ <em>extension</em> $B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME
+ $B%(%s%3!<%G%#%s%0$G$9!#$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"(B
+ $BF1$83HD%;R(B <em>extension</em>
+ $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#Nc(B:</p>
+
+ <blockquote>
+ <code>AddEncoding x-gzip .gz<br />
+ AddEncoding x-compress .Z</code>
+ </blockquote>
+ $B$3$l$O!"3HD%;R(B .gz $B$r4^$`%U%!%$%kL>$,(B x-gzip
+ $B%(%s%3!<%G%#%s%0$r;H$C$F%(%s%3!<%I$5$l$F$$$k$3$H$H!"3HD%;R(B .Z
+ $B$r4^$`%U%!%$%kL>$,(B x-compress
+ $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r<($7$^$9!#(B
+
+ <p>$B8E$$%/%i%$%"%s%H$O(B <code>x-zip</code> $B$H(B <code>x-compress</code>
+ $B$,JV$C$F$/$k$3$H$r4|BT$7$^$9$,!"I8=`5,3J$G$O$=$l$>$l(B
+ <code>gzip</code> $B$H(B <code>compress</code>
+ $B$HEy2A$G$"$k$3$H$K$J$C$F$$$^$9!#(BApache
+ $B$O!"%3%s%F%s%H%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$K$O!"@hF,$K$"$k(B
+ <code>x-</code> $B$rL5;k$7$^$9!#(BApache
+ $B$,%(%s%3!<%G%#%s%0IU$-$G1~Ez$rJV$9$H$-$O!"%/%i%$%"%s%H$,MW5a$7$?7A<0(B
+ (<em>$B$9$J$o$A(B</em>$B!"(B<code>x-foo</code> $B$d(B <code>foo</code>)
+ $B$r;HMQ$7$^$9!#MW$9$k$K!"$3$NFs$D$N%(%s%3!<%G%#%s%0$N>l9g$O>o$K(B
+ <code>x-gzip</code> $B$H(B <code>x-compress</code>
+ $B$r;H$&$Y$-$G$"$k!"$H$$$&$3$H$G$9!#(B<code>deflate</code>
+ $B$N$h$&$J$h$j?7$7$$%(%s%3!<%G%#%s%0$G$O!"(B<code>x-</code>
+ $B$J$7$G;XDj$7$F$/$@$5$$!#(B
+ </p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></p>
+ <hr />
-<p>
-$B$3$l$O!"3HD%;R(B .gz $B$r4^$`%U%!%$%kL>$,(B x-gzip $B%(%s%3!<%G%#%s%0$r;H$C$F(B
-$B%(%s%3!<%I$5$l$F$$$k$3$H$H!"3HD%;R(B .Z $B$r4^$`%U%!%$%kL>$,(B x-compress $B$G(B
-$B%(%s%3!<%I$5$l$F$$$k$3$H$r<($7$^$9!#(B
-</p>
-
-<p>
-$B8E$$%/%i%$%"%s%H$O(B <code>x-zip</code> $B$H(B <code>x-compress</code> $B$,(B
-$BJV$C$F$/$k$3$H$r4|BT$7$^$9$,!"I8=`5,3J$G$O$=$l$>$l(B <code>gzip</code> $B$H(B
-<code>compress</code> $B$HEy2A$G$"$k$3$H$K$J$C$F$$$^$9!#(BApache $B$O!"(B
-$B%3%s%F%s%H%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$K$O!"@hF,$K$"$k(B <code>x-</code>
-$B$rL5;k$7$^$9!#(BApache $B$,%(%s%3!<%G%#%s%0IU$-$G1~Ez$rJV$9$H$-$O!"(B
-$B%/%i%$%"%s%H$,MW5a$7$?7A<0(B
-(<em>$B$9$J$o$A(B</em>$B!"(B<code>x-foo</code> $B$d(B <code>foo</code>)
-$B$r;HMQ$7$^$9!#MW$9$k$K!"$3$NFs$D$N%(%s%3!<%G%#%s%0$N>l9g$O>o$K(B
-<code>x-gzip</code> $B$H(B <code>x-compress</code> $B$r;H$&$Y$-$G$"$k!"$H$$$&$3$H$G$9!#(B
-<code>deflate</code> $B$N$h$&$J$h$j?7$7$$%(%s%3!<%G%#%s%0$G$O!"(B<code>x-</code>
-$B$J$7$G;XDj$7$F$/$@$5$$!#(B
-</p>
-
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-
-<p>
-<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>
-</p>
-<hr>
-
-<h2><a name="addhandler">AddHandler</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> AddHandler <em>handler-name extension</em>
- [<em>extension</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> AddHandler $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br>
-
-<p>
-AddHandler $B$O!"3HD%;R(B <em>extension</em> $B$r(B
-<a href="../handler.html">$B%O%s%I%i(B</a> <em>handler-name</em> $B$K%^%C%W$7$^$9!#(B
-$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em>
-$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B
-</p>
-
-<p>
-$BNc$($P!"3HD%;R(B "<code>.cgi</code>" $B$G=*$o$k%U%!%$%k$r(B CGI $B%9%/%j%W%H$H$7$F(B
-$B07$$$?$$$H$-$O!"0J2<$N@_Dj$r$7$^$9!#(B
-</p>
+ <h2><a id="addhandler" name="addhandler">AddHandler</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddHandler
+ <em>handler-name extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> AddHandler $B$O(B
+ Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br />
+ <p>AddHandler $B$O!"3HD%;R(B <em>extension</em> $B$r(B<a
+ href="../handler.html">$B%O%s%I%i(B</a> <em>handler-name</em>
+ $B$K%^%C%W$7$^$9!#$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"(B
+ $BF1$83HD%;R(B <em>extension</em>
+ $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#$?$H$($P!"3HD%;R(B
+ "<code>.cgi</code>" $B$G=*$o$k%U%!%$%k$r(B CGI
+ $B%9%/%j%W%H$H$7$F07$$$?$$$H$-$O!"0J2<$N@_Dj$r$7$^$9!#(B</p>
<pre>
AddHandler cgi-script .cgi
</pre>
-<p>
-$B$3$l$r(B srm.conf $B$+(B httpd.conf $B%U%!%$%k$K5-=R$9$k$3$H$G!"3HD%;R(B "<code>.cgi</code>" $B$r(B
-$B4^$`%U%!%$%k$O(B CGI $B%W%m%0%i%`$H$7$F07$o$l$^$9!#(B
-</p>
-
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-
-<p>
-<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>
-</p>
-
-<hr>
-
-<h2><a name="addlanguage">AddLanguage</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt AddLanguage} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> AddLanguage <em>MIME-lang extension</em>
- [<em>extension</em>] ...<BR>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-
-<p>
-AddLanguage $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B content language $B$K(B
-$B%^%C%W$7$^$9!#(B<em>MIME-lang</em> $B$O!"3HD%;R(B <em>extension</em> $B$r4^$s$G$$$k(B
-$B%U%!%$%kL>$N(B MIME $B$K$*$1$k8@8l$G$9!#(B
-$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em>
-$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B
-</p>
-
-<p>
-$BNc(B:
-</p>
-<pre>
- AddEncoding x-compress .Z
- AddLanguage en .en
- AddLanguage fr .fr
-</pre>
+ <p>$B$3$l$r(B srm.conf $B$+(B httpd.conf $B%U%!%$%k$K5-=R$9$k$3$H$G!"3HD%;R(B
+ "<code>.cgi</code>" $B$r4^$`%U%!%$%k$O(B CGI $B%W%m%0%i%`$H$7$F07$o$l$^$9!#(B
+ </p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>$B!"(B
+ <a href="#sethandler">SetHandler</a></p>
+ <hr />
+
+ <h2><a id="addlanguage" name="addlanguage">AddLanguage</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddLanguage} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddLanguage <em>MIME-lang
+ extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+
+ <p>AddLanguage $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
+ content language $B$K%^%C%W$7$^$9!#(B<em>MIME-lang</em> $B$O!"3HD%;R(B
+ <em>extension</em> $B$r4^$s$G$$$k%U%!%$%kL>$N(B MIME $B$K$*$1$k8@8l$G$9!#(B
+ $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B
+ <em>extension</em> $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B
+ </p>
+
+ <p>$BNc(B:</p>
+
+ <blockquote>
+ <code>AddEncoding x-compress .Z<br />
+ AddLanguage en .en<br />
+ AddLanguage fr .fr<br />
+ </code>
+ </blockquote>
+
+ <p>$B$3$N>l9g!"(B<code>xxxx.en.Z</code> $B%I%-%e%a%s%H$O(B compress
+ $B$5$l$?1Q8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.Z.en</code>
+ $B$bF1MM(B)$B!#(Bcontent language $B$O%/%i%$%"%s%H$KDLCN$5$l$^$9$,!"(B
+ $B%V%i%&%6$,$3$N>pJs$r;H$&$3$H$O$*$=$i$/$"$j$^$;$s!#(BAddLanguage
+ $B%G%#%l%/%F%#%V$O!"%5!<%P$,%/%i%$%"%s%H$N8@8l$NM%@hEY$K4p$E$$$FJ#?t$N(B
+ $B%I%-%e%a%s%H$NCf$+$i%I%-%e%a%s%H$rA*$V(B<a
+ href="../content-negotiation.html"
+ >$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K$h$jLr$KN)$A$^$9!#(B</p>
+
+ <p>$BJ#?t$N8@8l$,F1$83HD%;R$K3d$jEv$F$i$l$F$$$k$H$-$O!"(B
+ $B:G8e$N$b$N$,;HMQ$5$l$^$9!#$9$J$o$A!"<!$N$h$&$J>l9g!"(B</p>
-<p>
-$B$3$N>l9g!"(B<code>xxxx.en.Z</code> $B%I%-%e%a%s%H$O(B compress $B$5$l$?(B
-$B1Q8l$N%I%-%e%a%s%H$H$7$F07$o$l$^$9(B (<code>xxxx.Z.en</code> $B$bF1MM(B)$B!#(B
-content language $B$O%/%i%$%"%s%H$KDLCN$5$l$^$9$,!"%V%i%&%6$,$3$N>pJs$r(B
-$B;H$&$3$H$O$*$=$i$/$"$j$^$;$s!#(BAddLanguage $B%G%#%l%/%F%#%V$O!"(B
-$B%5!<%P$,%/%i%$%"%s%H$N8@8l$NM%@hEY$K4p$E$$$FJ#?t$N%I%-%e%a%s%H$N(B
-$BCf$+$i%I%-%e%a%s%H$rA*$V(B<a
- href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$N$?$a$K(B
-$B$h$jLr$KN)$A$^$9!#(B
-</p>
-<p>
-$BJ#?t$N8@8l$,F1$83HD%;R$K3d$jEv$F$i$l$F$$$k$H$-$O!":G8e$N$b$N$,;HMQ$5$l$^$9!#(B
-$B$9$J$o$A!"<!$N$h$&$J>l9g$O!"(B
-$B3HD%;R(B "<code>.en</code>" $B$N$"$k%I%-%e%a%s%H$O(B "<code>en-us</code>" $B$H$7$F(B
-$B07$o$l$^$9!#(B
-</p>
<pre>
AddLanguage en .en
AddLanguage en-uk .en
AddLanguage en-us .en
</pre>
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<p>
-<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>
-<br>
-<strong>$B;2>H(B</strong>: <a href="./mod_negotiation.html">mod_negotiation</a>
-</p>
-
-<hr>
-
-<h2><a name="addtype">AddType</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt AddType} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> AddType <em>MIME-type extension</em>
- [<em>extension</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-
-<p>
-AddType $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$r;XDj$5$l$?(B
-$B%3%s%F%s%H%?%$%W$K%^%C%W$7$^$9!#(B<em>MIME-type</em> $B$O3HD%;R(B <em>extension</em>
-$B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%?%$%W$G$9!#(B
-$B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B <em>extension</em>
-$B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#$3$N%G%#%l%/%F%#%V$O(B
-MIME $B%?%$%W%U%!%$%k(B (<code><a
-href="#typesconfig">TypesConfig</a></code> $B%G%#%l%/%F%#%V$r;2>H(B) $B$K(B
-$B$J$$%^%C%T%s%0$rDI2C$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<p>
-$BNc(B:
-</p>
-<pre>
- AddType image/gif .gif
-</pre>
+ <p>$B3HD%;R(B "<code>.en</code>" $B$N$"$k%I%-%e%a%s%H$O(B
+ "<code>en-us</code>" $B$H$7$F07$o$l$^$9!#(B</p>
-<p>
-$B?7$7$$(B MIME $B%?%$%W$O!"(B<a href="#typesconfig">TypesConfig</a> $B%U%!%$%k$r(B
-$BJQ99$9$k$N$G$O$J$/!"(BAddType $B%G%#%l%/%F%#%V$r;H$C$FDI2C$9$k$3$H$,(B
-$B?d>)$5$l$F$$$^$9!#(B</p>
-
-<p>
-NCSA httpd $B$H$O0c$C$F!"$3$N%G%#%l%/%F%#%V$OFCDj$N%U%!%$%k$N%?%$%W$r(B
-$B@_Dj$9$k$3$H$O$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
-
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<p>
-<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>
-</p>
-
-<hr>
-
-<h2><a name="defaultlanguage">DefaultLanguage</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt DefaultLanguage} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> DefaultLanguage <em>MIME-lang</em><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> DefaultLanguage $B$O(B Apache 1.3.4 $B0J9_$G$N$_(B
-$B;HMQ2DG=!#(B<br>
-
-<p>
-DefaultLanguage $B%G%#%l%/%F%#%V$O!"(BApache $B$,%G%#%l%/%F%#%V$N%9%3!<%W(B
-(<em>$BNc$($P(B</em>$B!"$=$N;~E@$N(B <code>&lt;Directory&gt;</code> $B$N(B
-$BHO0O(B) $B$K$"$k!"L@<(E*$J8@8l3HD%;R(B (<samp>AddLanguage</samp> $B$G@_Dj$5$l$k(B
-<samp>.fr</samp> $B$d(B <samp>.de</samp>) $B$N$J$$A4$F$N%U%!%$%k$r!"(B
-$B;XDj$5$l$?(B <em>MIME-lang</em> $B8@8l$G$"$k$H$_$J$9$h$&$K$7$^$9!#(B
-$B$3$l$K$h$j!"$9$Y$F$N%U%!%$%kL>$rJQ$($k$3$H$J$/!"%G%#%l%/%H%j$,(B
-$B%*%i%s%@8l$N%3%s%F%s%H$r4^$s$G$$$k!"$H$$$&$h$&$J$3$H$r(B
-$B;XDj$9$k$3$H$,$G$-$^$9!#(B
-$B3HD%;R$r;HMQ$7$F8@8l$r;XDj$9$kJ}K!$H0c$$!"(B<samp>DefaultLanguage</samp>
-$B$O0l$D$N8@8l$7$+;XDj$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
-
-
-<p>
-<samp>DefaultLanguage</samp> $B%G%#%l%/%F%#%V$,M-8z$G$J$/!"(B
-$B%U%!%$%k$K(B <samp>AddLanguage</samp> $B$G@_Dj$5$l$?8@8l$N3HD%;R$,$J$$$H$-$O!"(B
-$B%U%!%$%k$K$O8@8lB0@-$,$J$$$H$_$J$5$l$^$9!#(B</p>
-
-
-<P>
-<strong>$B;2>H(B</strong>: <a
-href="./mod_negotiation.html">mod_negotiation</a>
-<br>
-<strong>$B;2>H(B</strong>: <a href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</A>
-</p>
-
-<hr>
-
-<h2><a name="forcetype">ForceType</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> ForceType <em>media-type</em><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> ForceType $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B
-
-<p>
-<code>.htaccess</code> $B$d(B <code>&lt;Directory&gt;</code> $B%;%/%7%g%s!"(B
-<code>&lt;Location&gt;</code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"$3$N(B
-$B%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B <em>media type</em> $B$G(B
-$B;XDj$5$l$?%3%s%F%s%H%?%$%W$H$7$F07$o$l$k$3$H$r6/@)$7$^$9!#Nc$($P!"(B
-GIF $B%U%!%$%k$P$+$j$N%G%#%l%/%H%j$,$"$C$F!"$9$Y$F$N%U%!%$%k$r(B ".gif" $B$G(B
-$B=*$o$i$;$?$/$O$J$$$H$-$K!"0J2<$N$b$N$r;HMQ$7$^$9(B:</p>
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+ <p><strong>$B;2>H(B</strong>: <a
+ href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a>$B!"(B
+ <a href="#defaultlanguage">DefaultLanguage</a><br />
+ <strong>$B;2>H(B</strong>: <a
+ href="./mod_negotiation.html">mod_negotiation</a>
+ </p>
+ <hr />
+
+ <h2><a id="addtype" name="addtype">AddType</a> $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt AddType} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> AddType <em>MIME-type
+ extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime
+
+ <p>AddType $B%G%#%l%/%F%#%V$O!"(B
+ $BM?$($i$l$?3HD%;R$r;XDj$5$l$?%3%s%F%s%H%?%$%W$K%^%C%W$7$^$9!#(B
+ <em>MIME-type</em> $B$O3HD%;R(B <em>extension</em>
+ $B$r4^$s$@%I%-%e%a%s%H$K;HMQ$9$k(B MIME $B%?%$%W$G$9!#(B
+ $B$3$N?7$7$$%^%C%T%s%0$O4{$K$"$k$b$N$KDI2C$5$l!"F1$83HD%;R(B
+ <em>extension</em> $B$N$?$a$K4{$KB8:_$9$k%^%C%T%s%0$r>e=q$-$7$^$9!#(B
+ $B$3$N%G%#%l%/%F%#%V$O(B MIME $B%?%$%W%U%!%$%k(B (<code><a
+ href="#typesconfig">TypesConfig</a></code> $B%G%#%l%/%F%#%V$r;2>H(B)
+ $B$K$J$$%^%C%T%s%0$rDI2C$9$k$?$a$K;HMQ$9$k$3$H$,$G$-$^$9!#Nc(B:</p>
+
+ <blockquote>
+ <code>AddType image/gif .gif</code>
+ </blockquote>
+ $B?7$7$$(B MIME $B%?%$%W$O!"(B<a href="#typesconfig">TypesConfig</a>
+ $B%U%!%$%k$rJQ99$9$k$N$G$O$J$/!"(BAddType
+ $B%G%#%l%/%F%#%V$r;H$C$FDI2C$9$k$3$H$,?d>)$5$l$F$$$^$9!#(B
+
+ <p>NCSA httpd $B$H$O0c$C$F!"$3$N%G%#%l%/%F%#%V$OFCDj$N%U%!%$%k$N(B
+ $B%?%$%W$r@_Dj$9$k$3$H$O$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></p>
+ <hr />
+
+ <h2><a id="defaultlanguage"
+ name="defaultlanguage">DefaultLanguage</a> $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt DefaultLanguage} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> DefaultLanguage <em>MIME-lang</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> DefaultLanguage $B$O(B
+ Apache 1.3.4 $B0J9_$G$N$_;HMQ2DG=!#(B<br />
+
+ <p>DefaultLanguage $B%G%#%l%/%F%#%V$O!"(BApache
+ $B$,%G%#%l%/%F%#%V$N%9%3!<%W(B (<em>$BNc$($P(B</em>$B!"$=$N;~E@$N(B
+ <code>&lt;Directory&gt;</code> $B$NHO0O(B) $B$K$"$k!"L@<(E*$J8@8l3HD%;R(B
+ (<samp>AddLanguage</samp> $B$G@_Dj$5$l$k(B <samp>.fr</samp> $B$d(B
+ <samp>.de</samp>) $B$N$J$$A4$F$N%U%!%$%k$r!";XDj$5$l$?(B
+ <em>MIME-lang</em> $B8@8l$G$"$k$H$_$J$9$h$&$K$7$^$9!#(B
+ $B$3$l$K$h$j!"$9$Y$F$N%U%!%$%kL>$rJQ$($k$3$H$J$/!"(B
+ $B%G%#%l%/%H%j$,%*%i%s%@8l$N%3%s%F%s%H$r4^$s$G$$$k!"(B
+ $B$H$$$&$h$&$J$3$H$r;XDj$9$k$3$H$,$G$-$^$9!#(B
+ $B3HD%;R$r;HMQ$7$F8@8l$r;XDj$9$kJ}K!$H0c$$!"(B
+ <samp>DefaultLanguage</samp>
+ $B$O0l$D$N8@8l$7$+;XDj$G$-$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
+
+ <p>$BNc$($P(B:</p>
+
+ <code>DefaultLanguage fr</code>
+
+ <p><samp>DefaultLanguage</samp>
+ $B%G%#%l%/%F%#%V$,M-8z$G$J$/!"%U%!%$%k$K(B <samp>AddLanguage</samp>
+ $B$G@_Dj$5$l$?8@8l$N3HD%;R$,$J$$$H$-$O!"(B
+ $B%U%!%$%k$K$O8@8lB0@-$,$J$$$H$_$J$5$l$^$9!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="./mod_negotiation.html">mod_negotiation</a><br />
+ <strong>$B;2>H(B</strong>: <a
+ href="#multipleext">$BJ#?t$N3HD%;R$N$"$k%U%!%$%k(B</a></p>
+ <hr />
+
+ <h2><a id="forcetype" name="forcetype">ForceType</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> ForceType
+ <em>media-type</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> ForceType $B$O(B
+ Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p><code>.htaccess</code> $B$d(B <code>&lt;Directory&gt;</code>
+ $B%;%/%7%g%s!"(B<code>&lt;Location&gt;</code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"(B
+ $B$3$N%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B <em>media type</em>
+ $B$G;XDj$5$l$?%3%s%F%s%H%?%$%W$H$7$F07$o$l$k$3$H$r6/@)$7$^$9!#$?$H$($P!"(B
+ GIF $B%U%!%$%k$P$+$j$N%G%#%l%/%H%j$,$"$C$F!"$9$Y$F$N%U%!%$%k$r(B ".gif"
+ $B$G=*$o$i$;$?$/$O$J$$$H$-$K!"0J2<$N$b$N$r;HMQ$7$^$9(B:</p>
<pre>
ForceType image/gif
</pre>
-<p>$B$3$l$O!"%a%G%#%"%?%$%W$r7hDj$9$k$+$b$7$l$J$$$9$Y$F$N3HD%;R$r(B
-$B>e=q$-$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B
-</p><hr>
-
-<h2><a name="removeencoding">RemoveEncoding</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> RemoveEncoding <em>extension</em>
- [<em>extension</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> RemoveEncoding $B$O(B Apache 1.3.13 $B0J9_$G$N$_(B
-$B;HMQ2DG=!#(B
-
-<p>
-<samp>RemoveEncoding</samp> $B%G%#%l%/%F%#%V$O!"M?$($i$l$?3HD%;R$K(B
-$B4XO"IU$1$i$l$?%(%s%3!<%G%#%s%0$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B
-$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B
-$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B
-$BNc$($P(B:
-</p>
-<dl>
- <dt><code>/foo/.htaccess:</code></dt>
- <dd><code>AddEncoding x-gzip .gz</code>
- <br>
- <code>AddType text/plain .asc</code>
- <br>
- <code>&lt;Files *.gz.asc&gt;</code>
- <br>
- <code>&nbsp;&nbsp;&nbsp;&nbsp;RemoveEncoding .gz</code>
- <br>
- <code>&lt;/Files&gt;</code></dd>
-</dl>
-<p>
-$B$3$l$O!"(B<code>foo.gz</code> $B$O(B gzip $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r(B
-$B;XDj$7$^$9$,!"(B<code>foo.gz.asc</code> $B$O%(%s%3!<%I$5$l$F$$$J$$(B
-$B%W%l!<%s%F%-%9%H$N%U%!%$%k$G$"$k$H$$$&$3$H$r;XDj$7$^$9!#(B
-</p>
-<p>
-<strong>$BCm0U(B:</strong> RemoveEncoding $B$O(B AddEncoding $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$G(B
-$B=hM}$5$l$^$9$N$G!"F1$8%G%#%l%/%H%j$N@_DjCf$KN>J}$,8=$l$k$H!"(B
-$B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B
-</p>
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<hr>
-
-<h2><a name="removehandler">RemoveHandler</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><STrong>$B9=J8(B:</strong></a> RemoveHandler <em>extension</em>
- [<em>extension</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> RemoveHandler $B$O(B Apache 1.3.4 $B0J9_$G$N$_(B
-$B;HMQ2DG=!#(B
-
-<p>
-<samp>RemoveHandler</samp> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$K(B
-$B4XO"IU$1$i$l$?%O%s%I%i$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B
-$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B
-$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B
-$BNc$($P(B:
-</p>
-
-<dl>
- <dt><code>/foo/.htaccess:</code></dt>
- <dd><code>addhandler server-parsed .html</code></dd>
- <dt><code>/foo/bar/.htaccess:</code></dt>
- <dd><code>removehandler .html</code></dd>
-</dl>
-<p>
-$B$3$l$O!"(B<samp>/foo/bar</samp> $B%G%#%l%/%H%j$N(B <samp>.html</samp> $B%U%!%$%k$O(B
-SSI $B$G$O$J$/(B (<a href="mod_include.html"><samp>mod_include</samp></a>
-$B%b%8%e!<%k;2>H(B)$B!"IaDL$N%U%!%$%k$H$7$F07$o$l$k$h$&$K$9$k8z2L$,$"$j$^$9!#(B
-</p>
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<hr>
-
-<h2><a name="removetype">RemoveType</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> RemoveType <em>extension</em>
- [<em>extension</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> RemoveType $B$O(B Apache 1.3.13 $B0J9_$G$N$_(B
-$B;HMQ2DG=!#(B
-
-<p>
-<samp>RemoveType</samp> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$N(B
-MIME $B%?%$%W$N4XO"IU$1$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B
-$B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code> $B%U%!%$%k$,?F%G%#%l%/%H%j$d(B
-$B%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#(B
-$BNc$($P(B:
-</p>
-<dl>
- <dt><code>/foo/.htaccess:</code></dt>
- <dd><code>RemoveType .cgi</code></dd>
-</dl>
-<p>
-$B$3$l$O(B <code>/foo/</code> $B%G%#%l%/%H%j0J2<$N(B <code>.cgi</code> $B%U%!%$%k$N(B
-$BFCJL$J07$$$r<h$j>C$7$^$9!#%U%!%$%k$O(B<a
-href="core.html#defaulttype">$B%G%U%)%k%H%?%$%W(B</a>$B$H$7$F07$o$l$^$9!#(B</p>
-<p>
-<strong>$BCm0U(B:</strong> <code>RemoveType</code> $B%G%#%l%/%F%#%V$O(B
-<code>AddType</code> $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$K=hM}$5$l$^$9$N$G!"(B
-$BN>J}$,F1$8%G%#%l%/%H%j$N@_DjCf$K8=$l$?>l9g!"8e<T$N8z2L$,BG$A>C$5$l$k(B
-$B2DG=@-$,$"$j$^$9!#(B
-</p>
-<p>
-$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!":G=i$N%I%C%H$O$"$C$F$b(B
-$B$J$/$F$b9=$$$^$;$s!#(B
-</p>
-
-<hr>
-
-<h2><a name="sethandler">SetHandler</a> $B%G%#%l%/%F%#%V(B</h2>
-
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> SetHandler <em>handler-name</em><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</strong></a> SetHandler $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B
-
-<p>
-<code>.htaccess</code> $B$d(B <code>&lt;Directory&gt;</code> $B%;%/%7%g%s!"(B
-<code>&lt;Location&gt;</code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"$3$N(B
-$B%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B <em>handler-name</em> $B$G(B
-$B;XDj$5$l$?(B<a href="../handler.html">$B%O%s%I%i(B</a>$B$G07$o$l$k$3$H$r(B
-$B6/@)$7$^$9!#Nc$($P!"3HD%;R$K4X$o$i$:!"%G%#%l%/%H%jA4BN$,(B
-$B%$%a!<%8%^%C%W%U%!%$%k$H$7$F2r@O$7$FM_$7$$>l9g$K$O!"0J2<$r(B
-$B$=$N%G%#%l%/%H%j$N(B <code>.htaccess</code> $B%U%!%$%k$K5-=R$7$^$9(B:</p>
+ <p>$B$3$l$O!"%a%G%#%"%?%$%W$r7hDj$9$k$+$b$7$l$J$$$9$Y$F$N3HD%;R$r(B
+ $B>e=q$-$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a
+ href="#addtype">AddType</a></p>
+ <hr />
+
+ <h2><a id="removeencoding"
+ name="removeencoding">RemoveEncoding</a> $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> RemoveEncoding
+ <em>extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> RemoveEncoding $B$O(B
+ Apache 1.3.13 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p><samp>RemoveEncoding</samp> $B%G%#%l%/%F%#%V$O!"(B
+ $BM?$($i$l$?3HD%;R$K4XO"IU$1$i$l$?%(%s%3!<%G%#%s%0$r<h$j>C$7$^$9!#(B
+ $B$3$l$K$h$j!"%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code>
+ $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?4XO"IU$1$r(B
+ $B<h$j>C$9$3$H$,$G$-$^$9!#$?$H$($P(B:</p>
+
+ <dl>
+ <dt><code>/foo/.htaccess:</code></dt>
+
+ <dd><code>AddEncoding x-gzip .gz</code><br />
+ <code>AddType text/plain .asc</code><br />
+ <code>&lt;Files *.gz.asc&gt;</code><br />
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;RemoveEncoding
+ .gz</code><br />
+ <code>&lt;/Files&gt;</code></dd>
+ </dl>
+ <p>$B$3$l$O!"(B<code>foo.gz</code> $B$O(B gzip
+ $B$G%(%s%3!<%I$5$l$F$$$k$3$H$r;XDj$7$^$9$,!"(B<code>foo.gz.asc</code>
+ $B$O%(%s%3!<%I$5$l$F$$$J$$%W%l!<%s%F%-%9%H$N(B
+ $B%U%!%$%k$G$"$k$H$$$&$3$H$r;XDj$7$^$9!#(B</p>
+
+ <p><strong>$BCm0U(B:</strong> RemoveEncoding $B$O(B
+ <a href="#addencoding">AddEncoding</a>
+ $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$G=hM}$5$l$^$9$N$G!"(B
+ $BF1$8%G%#%l%/%H%j$N@_DjCf$KN>J}$,8=$l$k$H!"(B
+ $B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B</p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+ <hr />
+
+ <h2><a id="removehandler"
+ name="removehandler">RemoveHandler</a> $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> RemoveHandler
+ <em>extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> RemoveHandler $B$O(B
+ Apache 1.3.4 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p><samp>RemoveHandler</samp> $B%G%#%l%/%F%#%V(B
+ $B$OM?$($i$l$?3HD%;R$K4XO"IU$1$i$l$?%O%s%I%i$r<h$j>C$7$^$9!#(B
+ $B$3$l$K$h$j!"%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code>
+ $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k(B
+ $B$+$i7Q>5$7$?4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#$?$H$($P(B:</p>
+
+ <dl>
+ <dt><code>/foo/.htaccess:</code></dt>
+
+ <dd><code>AddHandler server-parsed .html</code></dd>
+
+ <dt><code>/foo/bar/.htaccess:</code></dt>
+
+ <dd><code>RemoveHandler .html</code></dd>
+ </dl>
+
+ <p>$B$3$l$O!"(B<samp>/foo/bar</samp> $B%G%#%l%/%H%j$N(B <samp>.html</samp>
+ $B%U%!%$%k$O(B SSI $B$G$O$J$/(B (<a
+ href="mod_include.html"><samp>mod_include</samp></a> $B%b%8%e!<%k;2>H(B)$B!"(B
+ $BIaDL$N%U%!%$%k$H$7$F07$o$l$k$h$&$K$9$k8z2L$,$"$j$^$9!#(B
+ </p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+ <hr />
+
+ <h2><a id="removetype"
+ name="removetype">RemoveType</a> $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> RemoveType
+ <em>extension</em> [<em>extension</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> RemoveType $B$O(B
+ Apache 1.3.13 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p><samp>RemoveType</samp> $B%G%#%l%/%F%#%V$OM?$($i$l$?3HD%;R$N(B
+ MIME $B%?%$%W$N4XO"IU$1$r<h$j>C$7$^$9!#$3$l$K$h$j!"(B
+ $B%5%V%G%#%l%/%H%j$K$"$k(B <code>.htaccess</code>
+ $B%U%!%$%k$,?F%G%#%l%/%H%j$d%5!<%P$N@_Dj%U%!%$%k$+$i7Q>5$7$?(B
+ $B4XO"IU$1$r<h$j>C$9$3$H$,$G$-$^$9!#$?$H$($P(B:</p>
+
+ <dl>
+ <dt><code>/foo/.htaccess:</code></dt>
+
+ <dd><code>RemoveType .cgi</code></dd>
+ </dl>
+
+ <p>$B$3$l$O(B <code>/foo/</code> $B%G%#%l%/%H%j0J2<$N(B <code>.cgi</code>
+ $B%U%!%$%k$NFCJL$J07$$$r<h$j>C$7$^$9!#%U%!%$%k$O(B<a
+ href="core.html#defaulttype"
+ >$B%G%U%)%k%H%?%$%W(B</a>$B$H$7$F07$o$l$^$9!#(B</p>
+
+ <p><strong>$BCm0U(B:</strong> <code>RemoveType</code> $B%G%#%l%/%F%#%V$O(B
+ <code>AddType</code> $B%G%#%l%/%F%#%V$N(B<em>$B8e(B</em>$B$K=hM}$5$l$^$9$N$G!"(B
+ $BN>J}$,F1$8%G%#%l%/%H%j$N@_DjCf$K8=$l$?>l9g!"(B
+ $B8e<T$N8z2L$,BG$A>C$5$l$k2DG=@-$,$"$j$^$9!#(B</p>
+
+ <p>$B0z?t(B <em>extension</em> $B$OBgJ8;z>.J8;z$r6hJL$;$:!"(B
+ $B:G=i$N%I%C%H$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B</p>
+ <hr />
+ <h2><a id="sethandler" name="sethandler">SetHandler</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> SetHandler
+ <em>handler-name</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> SetHandler $B$O(B
+ Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B
+
+ <p><code>.htaccess</code> $B$d(B <code>&lt;Directory&gt;</code>
+ $B%;%/%7%g%s!"(B<code>&lt;Location&gt;</code> $B%;%/%7%g%s$K=q$+$l$?>l9g!"(B
+ $B$3$N%G%#%l%/%F%#%V$O$=$3$K$"$k$9$Y$F$N%U%!%$%k$,(B
+ <em>handler-name</em> $B$G;XDj$5$l$?(B<a href="../handler.html"
+ >$B%O%s%I%i(B</a>$B$G07$o$l$k$3$H$r6/@)$7$^$9!#Nc$($P!"3HD%;R$K4X$o$i$:!"(B
+ $B%G%#%l%/%H%jA4BN$,%$%a!<%8%^%C%W%U%!%$%k$H$7$F2r@O$7$FM_$7$$>l9g$K$O!"(B
+ $B0J2<$r$=$N%G%#%l%/%H%j$N(B <code>.htaccess</code>
+ $B%U%!%$%k$K5-=R$7$^$9(B:</p>
<pre>
SetHandler imap-file
</pre>
-<p>$BJL$NNc(B: URL <code>http://servername/status</code> $B$,;XDj$5$l$?$H$-$K(B
-$B%5!<%P$,>uBVJs9p$r$9$k$h$&$K$7$?$$$H$-$O!"0J2<$r(B httpd.conf $B$K(B
-$B5-=R$7$^$9(B:
-</p>
-
+ <p>$BJL$NNc(B: URL <code>http://servername/status</code>
+ $B$,;XDj$5$l$?$H$-$K%5!<%P$,>uBVJs9p$r$9$k$h$&$K$7$?$$$H$-$O!"0J2<$r(B
+ httpd.conf $B$K5-=R$7$^$9(B: ($B>\:Y$O(B <a
+ href="mod_status.html">mod_status</a> $B$r;2>H!#(B)
+ </p>
<pre>
&lt;Location /status&gt;
SetHandler server-status
&lt;/Location&gt;
</pre>
-<hr>
-
-<h2><a name="typesconfig">TypesConfig</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt TypesConfig} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> TypesConfig <em>filename</em><br>
-<a
- href="directive-dict.html#Default"
- rel="Help"
-><strong>$B%G%U%)%k%H(B:</strong></a> <code>TypesConfig conf/mime.types</code><br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime
-
-<p>
-TypesConfig $B%G%#%l%/%F%#%V$O!"(BMIME $B%?%$%W@_Dj%U%!%$%k$N0LCV$r@_Dj$7$^$9!#(B
-<em>filename</em> $B$O(B <a href="core.html#serverroot">ServerRoot</a> $B$+$i$N(B
-$BAjBP%Q%9$G$9!#$3$N%U%!%$%k$O%U%!%$%k$N3HD%;R$+$i%3%s%F%s%H%?%$%W$X$N(B
-$B%G%U%)%k%H$N%^%C%T%s%0$r@_Dj$7$^$9!#$3$N%U%!%$%k$rJQ99$9$k$3$H$O(B
-$B?d>)$5$l$F$$$^$;$s!#Be$o$j$K(B <a href="#addtype">AddType</a> $B%G%#%l%/%F%#%V$r(B
-$B;HMQ$7$F$/$@$5$$!#%U%!%$%k$O!"(BAddType $B%3%^%s%I$N0z?t$HF1$87A<0$N9T$G(B
-$B9=@.$5$l$^$9!#(B</p>
-
-<blockquote><em>MIME-type extension extension ...</em></blockquote>
-
-<p>
-$B3HD%;R$O>.J8;z$KJQ49$5$l$^$9!#6u9T$H%O%C%7%eJ8;z(B ('#') $B$G;O$^$k9T$O(B
-$BL5;k$5$l$^$9!#(B</p>
+
+ <p><strong>$B;2>H(B</strong>: <a href="#addhandler">AddHandler</a></p>
<hr />
+ <h2><a id="typesconfig" name="typesconfig">TypesConfig</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt TypesConfig} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> TypesConfig
+ <em>filename</em><br />
+ <a href="directive-dict.html#default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <code>TypesConfig
+ conf/mime.types</code><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_mime
+
+ <p>TypesConfig $B%G%#%l%/%F%#%V$O!"(BMIME
+ $B%?%$%W@_Dj%U%!%$%k$N0LCV$r@_Dj$7$^$9!#(B<em>filename</em> $B$O(B
+ <a href="core.html#serverroot">ServerRoot</a> $B$+$i$NAjBP%Q%9$G$9!#(B
+ $B$3$N%U%!%$%k$O%U%!%$%k$N3HD%;R$+$i%3%s%F%s%H%?%$%W$X$N(B
+ $B%G%U%)%k%H$N%^%C%T%s%0$r@_Dj$7$^$9!#(B
+ $B$3$N%U%!%$%k$rJQ99$9$k$3$H$O?d>)$5$l$F$$$^$;$s!#Be$o$j$K(B
+ <a href="#addtype">AddType</a> $B%G%#%l%/%F%#%V$r;HMQ$7$F$/$@$5$$!#(B
+ $B%U%!%$%k$O!"(BAddType $B%3%^%s%I$N0z?t$HF1$87A<0$N9T$G9=@.$5$l$^$9!#(B</p>
+
+ <blockquote>
+ <em>MIME-type extension extension ...</em>
+ </blockquote>
+ $B3HD%;R$O>.J8;z$KJQ49$5$l$^$9!#6u9T$H%O%C%7%eJ8;z(B ('#')
+ $B$G;O$^$k9T$OL5;k$5$l$^$9!#(B
+
+ <hr />
+
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
-</body>
+ </body>
</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis
index 31ba26169ce..48b9b71f745 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_negotiation.html.ja.jis
@@ -1,230 +1,228 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache module mod_negotiation</title>
-</head>
-<!-- English revision: 1.17 -->
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_negotiation</title>
+
+ </head>
+ <!-- English revision: 1.18 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
-<h1 align="center">mod_negotiation $B%b%8%e!<%k(B</h1>
-
-<p>$B$3$N%b%8%e!<%k$O(B <a
-href="../content-negotiation.html">$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$r(B
-$BDs6!$7$^$9!#(B</p>
-
-<p><a
-href="module-dict.html#Status"
-rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base
-<br>
-<a
-href="module-dict.html#SourceFile"
-rel="Help"
-><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_negotiation.c
-<br>
-<a
-href="module-dict.html#ModuleIdentifier"
-rel="Help"
-><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> negotiation_module
-</p>
-
-<h2>$B35MW(B</h2>
-$B%3%s%F%s%H%M%4%7%(!<%7%g%s!"$h$j@53N$K$O%3%s%F%s%D$NA*Br5!G=$O!"(B
-$BJ#?tMQ0U$5$l$F$$$k%I%-%e%a%s%H$+$i!"%/%i%$%"%s%H$NG=NO$K0lHV9g$C$?%I%-%e%a%s%H$r(B
-$BA*Br$9$k5!G=$G$9!#$3$N<BAu$OFs$D$"$j$^$9!#(B
-<ul>
-<li>$B%?%$%W%^%C%W(B (<code>type-map</code> $B%O%s%I%i$G07$o$l$k%U%!%$%k(B)$B!#(B
-$B$3$l$O(B variants $B$r4^$s$G$$$k%U%!%$%k$rL@<(E*$K;XDj$7$^$9!#(B
-<li>MultiViews $B$NC5:w(B (MultiViews
-<a href="core.html#options">$B%*%W%7%g%s(B</a> $B$G;HMQ$9$k$h$&$K$J$j$^$9(B)$B!#(B
-$B%5!<%P$,0EL[$NFb$K%U%!%$%kL>$N%Q%?!<%s%^%C%A$r9T$J$$!"$=$N7k2L$+$iA*Br$7$^$9!#(B
-</ul>
-
-<h2>$B%G%#%l%/%F%#%V(B</h2>
-<ul>
-<li><a href="#cachenegotiateddocs">CacheNegotiatedDocs</a>
-<li><a href="#languagepriority">LanguagePriority</a>
-</ul>
-
-<a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>,
-<a href="./mod_mime.html#addencoding">AddEncoding</a>,
-<a href="./mod_mime.html#addlanguage">AddLanguage</a>,
-<a href="./mod_mime.html#addtype">AddType</a>,
-<a href="core.html#options">Options</a>
-<strong>$B$b;2>H$7$F$/$@$5$$(B</strong>$B!#(B
-
-
-<h2>$B%?%$%W%^%C%W(B</h2>
-
-<p>
-$B%?%$%W%^%C%W$O(B RFC 822 $B$N%a!<%k%X%C%@$HF1$8=q<0$G$9!#%I%-%e%a%s%H$N5-=R$,(B
-$B6u9T$GJ,N%$5$l$F=q$+$l$F$$$F!"%O%C%7%eJ8;z(B ('#') $B$G;O$^$k9T$O(B
-$B%3%a%s%H$H$7$F07$o$l$^$9!#%I%-%e%a%s%H$N@bL@$OJ#?t$N%X%C%@%l%3!<%I$+$i(B
-$B9=@.$5$l$^$9!#%l%3!<%I$O!"B3$-$N9T$,6uGr$G;O$^$C$F$$$k$HJ#?t$N9T$K$^$?$,$j$^$9!#(B
-$B:G=i$N6uGr$,>C5n$5$l$F!"A0$N9T$H$D$J$2$F(B 1 $B9T$H$7$F07$o$l$^$9!#%X%C%@%l%3!<%I$O(B
-$B%-!<%o!<%IL>$N8e$KCM$,B3$/$H$$$&7A<0$G!"%-!<%o!<%IL>$O>o$K%3%m%s$G=*$o$j$^$9!#(B
-$B6uGr$O%X%C%@L>$HCM$N4V!"CM$N%H!<%/%s$N4V$KF~$l$k$3$H$,$G$-$^$9!#(B
-</p>
-
-<p>
-$B;HMQ2DG=$J%X%C%@$O0J2<$N$H$*$j$G$9(B:
-</p>
-
-<dl>
-<dt>Content-Encoding:
-<dd>$B%U%!%$%k$N%(%s%3!<%G%#%s%0!#(BApache $B$O(B <a
-href="mod_mime.html#addencoding">AddEncoding</a> $B$GDj5A$5$l$?%(%s%3!<%G%#%s%0(B
-$B$@$1$rG'<1$7$^$9!#DL>o(B compress $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-compress</code>
-$B$H(B gzip $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-gzip</code> $B$r4^$_$^$9!#(B
-$B%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$O!"@\F,<-(B <code>x-</code> $B$OL5;k$5$l$^$9!#(B
-<dt>Content-Language:
-<dd>$B%$%s%?!<%M%C%HI8=`$N8@8l%?%0(B (RFC 1766) $B$GDj5A$5$l$F$$$k8@8l$N<oN`!#(B
-$BNc$($P!"(B<code>en</code> $B$O1Q8l$rI=$7$^$9!#(B
-<dt>Content-Length:
-<dd>$B%U%!%$%k$ND9$5(B ($B%P%$%H?t(B)$B!#$3$N%X%C%@$,$J$$>l9g!"%U%!%$%k$N<B:]$N(B
-$BD9$5$,;HMQ$5$l$^$9!#(B
-<dt>Content-Type:
-<dd>$B%I%-%e%a%s%H$N(B MIME $B%a%G%#%"%?%$%W!"%*%W%7%g%J%k$J%Q%i%a!<%?IU$-!#(B
-$B%Q%i%a!<%?$N9=J8$O(B <code>name=value</code> $B$G!"%a%G%#%"%?%$%W$dB>$N%Q%i%a!<%?$H$O(B
-$B%;%_%3%m%s$GJ,N%$5$l$^$9!#6&DL$N%Q%i%a!<%?$O0J2<$N$H$*$j(B:
-<dl>
-<dt>level
-<dd>$B%a%G%#%"%?%$%W$N%P!<%8%g%s$r<($9@0?t!#(B
-<code>text/html</code> $B$G$O(B 2 $B$,%G%U%)%k%H$G!"$=$NB>$N>l9g$O(B 0 $B$,%G%U%)%k%H$G$9!#(B
-<dt>qs
-<dd>$B%/%i%$%"%s%H$NG=NO$K4X78$J$/!"(Bvariant $B$rB>$HHf3S$7$?$H$-$NAjBPE*$J!VIJ<A!W$G!"(B
- 0.0 $B$+$i(B 1.0 $B$NHO0O$NIbF0E@>.?t!#Nc$($P!"<L??$rI=8=$7$h$&$H$7$F$$$k$H$-$O(B
- $BIaDL$O(B JPEG $B%U%!%$%k$NJ}$,(B ASCII $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#(B
- $B$7$+$7!"%j%=!<%9$,(B ASCII $B%"!<%H$GI=8=$5$l$F$$$k$H$-$O!"(BASCII $B%U%!%$%k$N(B
- $BJ}$,(B JPEG $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#$3$N$h$&$K!"(Bqs $B$O(B
- $B%j%=!<%9Kh$KFCM-$NCM$r<h$j$^$9!#(B
-</dl>
-$BNc(B:
-<blockquote><code>Content-Type: image/jpeg; qs=0.8</code></blockquote>
-<dt>URI:
-<dd>$B%^%C%W%U%!%$%k$+$iAjBP%Q%9$GI=$o$7$?!"(Bvariant $B$N$"$k%U%!%$%k$X$N%Q%9(B
-</dl>
-
-<h2>MultiViews</h2>
-
-<p>
-MultiViews $BC5:w$O!"(BMultiviews <a href="core.html#options">$B%*%W%7%g%s(B</a>$B$K$h$j(B
-$BM-8z$K$J$j$^$9!#%5!<%P$,(B <code>/some/dir/foo</code> $B$X$N%j%/%(%9%H$r<u$1<h$j!"(B
-<code>/some/dir/foo</code> $B$,B8:_(B<em>$B$7$J$$(B</em>$B>l9g!"%5!<%P$O%G%#%l%/%H%j$r(B
-$BFI$s$G!"(B<code>foo.*</code> $B$K$"$F$O$^$kA4$F$N%U%!%$%k$rC5$7!"(B
-$B;v<B>e$=$l$i$N%U%!%$%k$r%^%C%W$9$k%?%$%W%^%C%W$r:n$j$^$9!#(B
-$B$=$N$H$-!"%a%G%#%"%?%$%W$H%3%s%F%s%H%(%s%3!<%G%#%s%0$O!"$=$N%U%!%$%kL>$r(B
-$BD>@\;XDj$7$?$H$-$HF1$8$b$N$,3d$jEv$F$i$l$^$9!#$=$l$+$i%/%i%$%"%s%H$N(B
-$BMW5a$K0lHV9g$&$b$N$rA*$S!"$=$N%I%-%e%a%s%H$rJV$7$^$9!#(B</p>
-
-<hr>
-
-<h2><a name="cachenegotiateddocs">CacheNegotiatedDocs</a> $B%G%#%l%/%F%#%V(B</h2>
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> CacheNegotiatedDocs<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_negotiation<br>
-<a
- href="directive-dict.html#Compatibility"
- rel="Help"
-><strong>$B8_49@-(B:</STRONG></A> CacheNegotiatedDocs $B$O(B Apache 1.1 $B0J9_$G$N$_(B
-$B;HMQ2DG=!#(B<br>
-
-<p>$B$3$N%G%#%l%/%F%#%V$,@_Dj$5$l$F$$$k$H!"%3%s%F%s%H%M%4%7%(!<%7%g%s$r$7$?(B
-$B7k2L$N%I%-%e%a%s%H$N%-%c%C%7%e$r5v2D$7$^$9!#$3$l$O!"(B
-$B%W%m%-%7$N8e$m$K$$$k%/%i%$%"%s%H$,G=NO$K0lHV9g$C$?%I%-%e%a%s%H$G$O$J$/!"(B
-$B%-%c%C%7%e$r$h$j8z2LE*$K$9$k$b$N$rF@$k2DG=@-$,$"$k$H$$$&$3$H$G$9!#(B</p>
-
-<p>
-$B$3$N%G%#%l%/%F%#%V$O(B HTTP/1.0 $B%V%i%&%6$+$i$N%j%/%(%9%H$N$_$KE,MQ$5$l$^$9!#(B
-HTTP/1.1 $B$O!"8r>D$5$l$?%I%-%e%a%s%H$N%-%c%C%7%e$KBP$7$F$:$C$H$h$$@)8f$,(B
-$B2DG=$J$N$G!"$3$N%G%#%l%/%F%#%V$O(B HTTP/1.1 $B$N%j%/%(%9%H$K$O1F6A$7$^$;$s!#(B
-</p>
-
-<hr>
-
-<h2><a name="languagepriority">LanguagePriority</a> $B%G%#%l%/%F%#%V(B</h2>
-<!--%plaintext &lt;?INDEX {\tt LanguagePriority} directive&gt; -->
-<a
- href="directive-dict.html#Syntax"
- rel="Help"
-><strong>$B9=J8(B:</strong></a> LanguagePriority <em>MIME-lang</em>
- [<em>MIME-lang</em>] ...<br>
-<a
- href="directive-dict.html#Context"
- rel="Help"
-><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br>
-<a
- href="directive-dict.html#Override"
- rel="Help"
-><strong>$B>e=q$-(B:</strong></a> FileInfo<br>
-<a
- href="directive-dict.html#Status"
- rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base<br>
-<a
- href="directive-dict.html#Module"
- rel="Help"
-><strong>$B%b%8%e!<%k(B:</strong></a> mod_negotiation<p>
-
-<p>
-LanguagePriority $B$O!"(BMultiViews $B%j%/%(%9%H$r07$&$H$-$K!"%/%i%$%"%s%H$,(B
-$BM%@h=g0L$rDs6!$7$F$$$J$$>l9g$N8@8l$NM%@h=g0L$r@_Dj$7$^$9!#(B
-<em>MIME-lang</em> $B$N%j%9%H$,M%@hEY$N9_=g$KJB$S$^$9!#Nc(B:
-</p>
-
-<blockquote><code>LanguagePriority en fr de</code></blockquote>
-
-<p>
-<code>foo.html</code> $B$,%j%/%(%9%H$5$l!"(B
-<code>foo.html.fr</code> $B$H(B <code>foo.html.de</code> $B$,N>J}B8:_$7!"(B
-$B%V%i%&%6$,8@8l$NM%@h=g0L$rDs6!$7$F$J$$>l9g$O(B <code>foo.html.fr</code> $B$,(B
-$BJV$5$l$^$9!#(B
-</p>
-
-<p>
-$B$3$N%G%#%l%/%F%#%V$OB>$NJ}K!$G!V:GA1!W$N8@8l$,7hDj$G$-$J$$$H$-$N$_(B
-$B8z2L$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(BHTTP/1.1 $B%j%/%(%9%H$,@5$7$/<BAu$5$l$F(B
-$B$$$k>l9g$K$O!"$3$N%G%#%l%/%F%#%V$OL58z$K$J$j$^$9!#(B
-</p>
-
-<p>
-<a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>,
-<a href="./mod_mime.html#addlanguage">AddLanguage</a>
-<strong>$B$b;2>H$7$F$/$@$5$$(B</strong>$B!#(B
-</p>
+ <h1 align="center">mod_negotiation $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O(B <a href="../content-negotiation.html"
+ >$B%3%s%F%s%H%M%4%7%(!<%7%g%s(B</a>$B$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_negotiation.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ negotiation_module</p>
+
+ <h2>$B35MW(B</h2>
+ $B%3%s%F%s%H%M%4%7%(!<%7%g%s!"$h$j@53N$K$O%3%s%F%s%D$NA*Br5!G=$O!"(B
+ $BJ#?tMQ0U$5$l$F$$$k%I%-%e%a%s%H$+$i!"%/%i%$%"%s%H$NG=NO$K0lHV9g$C$?(B
+ $B%I%-%e%a%s%H$rA*Br$9$k5!G=$G$9!#$3$N<BAu$OFs$D$"$j$^$9!#(B
+
+
+ <ul>
+ <li>$B%?%$%W%^%C%W(B (<code>type-map</code>
+ $B%O%s%I%i$G07$o$l$k%U%!%$%k(B)$B!#$3$l$O(B variants
+ $B$r4^$s$G$$$k%U%!%$%k$rL@<(E*$K;XDj$7$^$9!#(B</li>
+
+ <li>MultiViews $B$NC5:w(B (MultiViews <a
+ href="core.html#options">$B%*%W%7%g%s(B</a> $B$G;HMQ$9$k$h$&$K$J$j$^$9(B)$B!#(B
+ $B%5!<%P$,0EL[$NFb$K%U%!%$%kL>$N%Q%?!<%s%^%C%A$r9T$J$$!"(B
+ $B$=$N7k2L$+$iA*Br$7$^$9!#(B</li>
+ </ul>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
+
+
+ <li><a href="#languagepriority">LanguagePriority</a></li>
+ </ul>
+ <a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>,
+ <a href="./mod_mime.html#addencoding">AddEncoding</a>,
+ <a href="./mod_mime.html#addlanguage">AddLanguage</a>,
+ <a href="./mod_mime.html#addtype">AddType</a>,
+ <a href="core.html#options">Options</a>
+ <strong>$B$b;2>H$7$F$/$@$5$$(B</strong>$B!#(B
+
+ <h2>$B%?%$%W%^%C%W(B</h2>
+
+ $B%?%$%W%^%C%W$O(B RFC 822 $B$N%a!<%k%X%C%@$HF1$8=q<0$G$9!#(B
+ $B%I%-%e%a%s%H$N5-=R$,6u9T$GJ,N%$5$l$F=q$+$l$F$$$F!"%O%C%7%eJ8;z(B
+ ('#') $B$G;O$^$k9T$O%3%a%s%H$H$7$F07$o$l$^$9!#(B
+ $B%I%-%e%a%s%H$N@bL@$OJ#?t$N%X%C%@%l%3!<%I$+$i9=@.$5$l$^$9!#(B
+ $B%l%3!<%I$O!"B3$-$N9T$,6uGr$G;O$^$C$F$$$k$HJ#?t$N9T$K$^$?$,$j$^$9!#(B
+ $B:G=i$N6uGr$,>C5n$5$l$F!"A0$N9T$H$D$J$2$F(B 1 $B9T$H$7$F07$o$l$^$9!#(B
+ $B%X%C%@%l%3!<%I$O%-!<%o!<%IL>$N8e$KCM$,B3$/$H$$$&7A<0$G!"(B
+ $B%-!<%o!<%IL>$O>o$K%3%m%s$G=*$o$j$^$9!#6uGr$O%X%C%@L>$HCM$N4V!"(B
+ $BCM$N%H!<%/%s$N4V$KF~$l$k$3$H$,$G$-$^$9!#(B
+ $B;HMQ2DG=$J%X%C%@$O0J2<$N$H$*$j$G$9(B:
+ <dl>
+ <dt>Content-Encoding:</dt>
+ <dd>$B%U%!%$%k$N%(%s%3!<%G%#%s%0!#(BApache $B$O(B <a
+ href="mod_mime.html#addencoding">AddEncoding</a>
+ $B$GDj5A$5$l$?%(%s%3!<%G%#%s%0$@$1$rG'<1$7$^$9!#DL>o(B compress
+ $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-compress</code> $B$H(B gzip
+ $B$5$l$?%U%!%$%k$N$?$a$N(B <code>x-gzip</code> $B$r4^$_$^$9!#(B
+ $B%(%s%3!<%G%#%s%0$NHf3S$r$9$k$H$-$O!"@\F,<-(B <code>x-</code>
+ $B$OL5;k$5$l$^$9!#(B</dd>
+
+
+ <dt>Content-Language:</dt>
+
+ <dd>$B%$%s%?!<%M%C%HI8=`$N8@8l%?%0(B (RFC 1766)
+ $B$GDj5A$5$l$F$$$k8@8l$N<oN`!#Nc$($P!"(B<code>en</code>
+ $B$O1Q8l$rI=$7$^$9!#(B</dd>
+
+ <dt>Content-Length:</dt>
+
+ <dd>$B%U%!%$%k$ND9$5(B ($B%P%$%H?t(B)$B!#(B
+ $B$3$N%X%C%@$,$J$$>l9g!"%U%!%$%k$N<B:]$ND9$5$,;HMQ$5$l$^$9!#(B</dd>
+
+ <dt>Content-Type:</dt>
+
+ <dd>$B%I%-%e%a%s%H$N(B MIME
+ $B%a%G%#%"%?%$%W!"%*%W%7%g%J%k$J%Q%i%a!<%?IU$-!#%Q%i%a!<%?$N9=J8$O(B
+ <code>name=value</code>
+ $B$G!"%a%G%#%"%?%$%W$dB>$N%Q%i%a!<%?$H$O%;%_%3%m%s$GJ,N%$5$l$^$9!#(B
+ $B6&DL$N%Q%i%a!<%?$O0J2<$N$H$*$j(B:
+
+ <dl>
+ <dt>level</dt>
+
+ <dd>$B%a%G%#%"%?%$%W$N%P!<%8%g%s$r<($9@0?t!#(B
+ <code>text/html</code> $B$G$O(B 2 $B$,%G%U%)%k%H$G!"$=$NB>$N>l9g$O(B
+ 0 $B$,%G%U%)%k%H$G$9!#(B</dd>
+
+ <dt>qs</dt>
+
+ <dd>$B%/%i%$%"%s%H$NG=NO$K4X78$J$/!"(Bvariant
+ $B$rB>$HHf3S$7$?$H$-$NAjBPE*$J!VIJ<A!W$G!"(B0.0 $B$+$i(B 1.0
+ $B$NHO0O$NIbF0E@>.?t!#(B
+ $BNc$($P!"<L??$rI=8=$7$h$&$H$7$F$$$k$H$-$OIaDL$O(B JPEG
+ $B%U%!%$%k$NJ}$,(B ASCII $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#(B
+ $B$7$+$7!"%j%=!<%9$,(B ASCII $B%"!<%H$GI=8=$5$l$F$$$k$H$-$O!"(BASCII
+ $B%U%!%$%k$NJ}$,(B JPEG
+ $B%U%!%$%k$h$j$b9b$$IJ<A$K$J$j$^$9!#$3$N$h$&$K!"(Bqs
+ $B$O%j%=!<%9Kh$KFCM-$NCM$r<h$j$^$9!#(B
+ </dd>
+ </dl>
+ $BNc(B:
+
+ <blockquote>
+ <code>Content-Type: image/jpeg; qs=0.8</code>
+ </blockquote>
+ </dd>
+
+ <dt>URI:</dt>
+
+ <dd>$B%^%C%W%U%!%$%k$+$iAjBP%Q%9$GI=$o$7$?!"(Bvariant
+ $B$N$"$k%U%!%$%k$X$N%Q%9(B</dd>
+ </dl>
+
+ <h2>MultiViews</h2>
+ MultiViews $BC5:w$O!"(BMultiviews <a href="core.html#options"
+ >$B%*%W%7%g%s(B</a>$B$K$h$jM-8z$K$J$j$^$9!#%5!<%P$,(B <code>/some/dir/foo</code>
+ $B$X$N%j%/%(%9%H$r<u$1<h$j!"(B<code>/some/dir/foo</code> $B$,B8:_(B
+ <em>$B$7$J$$(B</em>$B>l9g!"%5!<%P$O%G%#%l%/%H%j$rFI$s$G!"(B
+ <code>foo.*</code> $B$K$"$F$O$^$kA4$F$N%U%!%$%k$rC5$7!"(B
+ $B;v<B>e$=$l$i$N%U%!%$%k$r%^%C%W$9$k%?%$%W%^%C%W$r:n$j$^$9!#(B
+ $B$=$N$H$-!"%a%G%#%"%?%$%W$H%3%s%F%s%H%(%s%3!<%G%#%s%0$O!"(B
+ $B$=$N%U%!%$%kL>$rD>@\;XDj$7$?$H$-$HF1$8$b$N$,3d$jEv$F$i$l$^$9!#(B
+ $B$=$l$+$i%/%i%$%"%s%H$NMW5a$K0lHV9g$&$b$N$rA*$S!"(B
+ $B$=$N%I%-%e%a%s%H$rJV$7$^$9!#(B
<hr />
+ <h2><a id="cachenegotiateddocs"
+ name="cachenegotiateddocs">CacheNegotiatedDocs</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> CacheNegotiatedDocs<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a>
+ mod_negotiation<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ CacheNegotiatedDocs $B$O(B Apache 1.1 $B0J9_$G$N$_;HMQ2DG=!#(B<br />
+ <p>$B$3$N%G%#%l%/%F%#%V$,@_Dj$5$l$F$$$k$H!"%3%s%F%s%H%M%4%7%(!<%7%g%s(B
+ $B$r$7$?7k2L$N%I%-%e%a%s%H$N%-%c%C%7%e$r5v2D$7$^$9!#(B
+ $B$3$l$O!"%W%m%-%7$N8e$m$K$$$k%/%i%$%"%s%H$,G=NO$K0lHV9g$C$?(B
+ $B%I%-%e%a%s%H$G$O$J$/!"(B
+ $B%-%c%C%7%e$r$h$j8z2LE*$K$9$k$b$N$rF@$k2DG=@-$,$"$k$H$$$&$3$H$G$9!#(B</p>
+
+ <p>$B$3$N%G%#%l%/%F%#%V$O(B HTTP/1.0 $B%V%i%&%6$+$i$N%j%/%(%9%H(B
+ $B$N$_$KE,MQ$5$l$^$9!#(BHTTP/1.1 $B$O!"(B
+ $B8r>D$5$l$?%I%-%e%a%s%H$N%-%c%C%7%e$KBP$7$F$:$C$H$h$$@)8f$,2DG=$J$N$G!"(B
+ $B$3$N%G%#%l%/%F%#%V$O(B HTTP/1.1 $B$N%j%/%(%9%H$K$O1F6A$7$^$;$s!#(B</p>
+ <hr />
+
+ <h2><a id="languagepriority"
+ name="languagepriority">LanguagePriority</a> $B%G%#%l%/%F%#%V(B</h2>
+ <!--%plaintext &lt;?INDEX {\tt LanguagePriority} directive&gt; -->
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> LanguagePriority
+ <em>MIME-lang</em> [<em>MIME-lang</em>] ...<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_negotiation
+
+ <p>LanguagePriority $B$O!"(BMultiViews
+ $B%j%/%(%9%H$r07$&$H$-$K!"%/%i%$%"%s%H$,M%@h=g0L$rDs6!$7$F$$$J$$>l9g$N(B
+ $B8@8l$NM%@h=g0L$r@_Dj$7$^$9!#(B<em>MIME-lang</em>
+ $B$N%j%9%H$,M%@hEY$N9_=g$KJB$S$^$9!#(B
+ $BNc(B:</p>
+
+ <blockquote>
+ <code>LanguagePriority en fr de</code>
+ </blockquote>
+ <code>foo.html</code> $B$,%j%/%(%9%H$5$l!"(B<code>foo.html.fr</code>
+ $B$H(B <code>foo.html.de</code> $B$,N>J}B8:_$7!"(B
+ $B%V%i%&%6$,8@8l$NM%@h=g0L$rDs6!$7$F$J$$>l9g$O(B
+ <code>foo.html.fr</code> $B$,JV$5$l$^$9!#(B
+
+ <p>$B$3$N%G%#%l%/%F%#%V$OB>$NJ}K!$G!V:GA1!W(B
+ $B$N8@8l$,7hDj$G$-$J$$$H$-$N$_8z2L$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
+ HTTP/1.1 $B%j%/%(%9%H$,@5$7$/<BAu$5$l$F$$$k>l9g$K$O!"(B
+ $B$3$N%G%#%l%/%F%#%V$OL58z$K$J$j$^$9!#(B</p>
+
+ <p><a href="./mod_mime.html#defaultlanguage">DefaultLanguage</a>,
+ <a href="./mod_mime.html#addlanguage">AddLanguage</a>
+ <strong>$B$b;2>H$7$F$/$@$5$$(B</strong>$B!#(B</p>
+ <hr />
+
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
-</body>
+ </body>
</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html b/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html
index 25aff7044db..1a31de93967 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_proxy.html
@@ -184,7 +184,7 @@ application/octet-stream bin dms lha lzh exe class tgz taz
levels you cannot use /../, as the dots are interpreted by the
browser and not actually sent to the FTP server. To address
this problem, the so called "Squid %2f hack" was implemented in
- the Apache FTP proxy; it is is a solution which is also used by
+ the Apache FTP proxy; it is a solution which is also used by
other popular proxy servers like the
<a href="http://www.squid-cache.org/">Squid Proxy Cache</a>.
By prepending /%2f to the path of your request, you can make
@@ -485,7 +485,7 @@ application/octet-stream bin dms lha lzh exe class tgz taz
is in effect.<br />
By default, only the default https port (443) and the default
snews port (563) are enabled. Use the <samp>AllowCONNECT</samp>
- directive to overrride this default and allow connections to
+ directive to override this default and allow connections to
the listed ports only.</p>
<hr />
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html b/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html
index 412b6034262..dae61107da6 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_rewrite.html
@@ -2092,13 +2092,14 @@ SCRIPT_URI=http://en1.engelschall.com/u/rse/
Rewriting Guide</a> available, which provides a collection of
practical solutions for URL-based problems. There you can
find real-life rulesets and additional information about
- mod_rewrite. <hr />
+ mod_rewrite.
+ </blockquote>
+ <hr />
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
- </blockquote>
<!-- page indentation -->
<!--/%hypertext -->
</body>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis
index 71cd67cbb60..adba6912f04 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_setenvif.html.ja.jis
@@ -1,348 +1,275 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
- <head>
- <title>Apache module mod_setenvif</title>
- </head>
-<!-- English revision: 1.15 -->
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
- >
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_setenvif</title>
+
+ </head>
+ <!-- English revision: 1.18 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
- <h1 align="CENTER">mod_setenvif $B%b%8%e!<%k(B</h1>
- <p>
- $B$3$N%b%8%e!<%k$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k5!G=$r(B
- $BDs6!$7$^$9!#(B
- </p>
+
+ <h1 align="center">mod_setenvif $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O!"(B
+ $B%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B</p>
-<p><a
-href="module-dict.html#Status"
-rel="Help"
-><strong>$B%9%F!<%?%9(B:</strong></a> Base
-<br>
-<a
-href="module-dict.html#SourceFile"
-rel="Help"
-><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_setenvif.c
-<br>
-<a
-href="module-dict.html#ModuleIdentifier"
-rel="Help"
-><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> setenvif_module
-<br>
-<a
-href="module-dict.html#Compatibility"
-rel="Help"
-><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J9_$G;HMQ2DG=!#(B</p>
-
- <h2>$B35MW(B</h2>
- <p>
- <samp>mod_setenvif</samp> $B%b%8%e!<%k$O!"%j%/%(%9%H$N$"$kB&LL$,(B
- $B;XDj$5$l$?(B<a href="../misc/FAQ.html#regex">$B@55,I=8=(B</a>$B$K9g$&$+(B
- $B$I$&$+$K$h$C$F4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B
- $B$3$l$i$N4D6-JQ?t$r;HMQ$7$F!"%5!<%P$NB>$NItJ,$,$I$N$h$&$JF0:n$r$9$k$+$r7hDj$9$k(B
- $B$3$H$,$G$-$^$9!#(B
- </p>
- <p>$B$3$N%b%8%e!<%k$,Ds6!$9$k%G%#%l%/%F%#%V$O!"@_Dj%U%!%$%k$K8=$l$k=gHV$KE,MQ$5$l$^$9!#(B
- $B$=$l$r;H$C$F!"<!$NNc$N$h$&$K$h$jJ#;($J@_Dj$r$9$k$3$H$,$G$-$^$9!#$3$l$O!"(B
- $B%V%i%&%6$,(B mozilla $B$G$O$"$k$1$l$I!"(BMSIE $B$G$O$J$$$H$-$K(B <code>netscape</code> $B$r(B
- $B@_Dj$7$^$9!#(B
- </p>
-
- <blockquote><pre>
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_setenvif.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ setenvif_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ Apache 1.3 $B0J9_$G;HMQ2DG=!#(B</p>
+
+ <h2>$B35MW(B</h2>
+
+ <p><samp>mod_setenvif</samp>
+ $B%b%8%e!<%k$O!"%j%/%(%9%H$N$"$kB&LL$,;XDj$5$l$?(B<a
+ href="../misc/faq.html#regex">$B@55,I=8=(B</a
+ >$B$K9g$&$+$I$&$+$K$h$C$F4D6-JQ?t$r@_Dj$9$k5!G=$rDs6!$7$^$9!#(B
+ $B$3$l$i$N4D6-JQ?t$r;HMQ$7$F!"%5!<%P$NB>$NItJ,$,$I$N$h$&$JF0:n$r$9$k$+$r(B
+ $B7hDj$9$k$3$H$,$G$-$^$9!#(B</p>
+
+ <p>$B$3$N%b%8%e!<%k$,Ds6!$9$k%G%#%l%/%F%#%V$O!"(B
+ $B@_Dj%U%!%$%k$K8=$l$k=gHV$KE,MQ$5$l$^$9!#(B
+ $B$=$l$r;H$C$F!"<!$NNc$N$h$&$K$h$jJ#;($J@_Dj$r$9$k$3$H$,$G$-$^$9!#(B
+ $B$3$l$O!"%V%i%&%6$,(B mozilla $B$G$O$"$k$1$l$I!"(BMSIE $B$G$O$J$$$H$-$K(B
+ <code>netscape</code> $B$r@_Dj$7$^$9!#(B</p>
+ <blockquote>
+<pre>
BrowserMatch ^Mozilla netscape
BrowserMatch MSIE !netscape
- </pre></blockquote>
-
- <p>$B>\:Y$O!"(B<a href="../env.html">Apache $B$N4D6-JQ?t(B</a>$B$r(B
- $B;2>H$7$F$/$@$5$$!#(B</p>
-
- <h2>$B%G%#%l%/%F%#%V(B</h2>
- <ul>
- <li><a href="#BrowserMatch">BrowserMatch</a>
- </li>
- <li><a href="#BrowserMatchNoCase">BrowserMatchNoCase</a>
- </li>
- <li><a href="#SetEnvIf">SetEnvIf</a>
- </li>
- <li><a href="#SetEnvIfNoCase">SetEnvIfNoCase</a>
- </li>
- </ul>
-
- <hr> <!-- the HR is part of the directive description -->
- <h2><a name="BrowserMatch">BrowserMatch $B%G%#%l%/%F%#%V(B</a></h2>
- <p>
- <a
- href="directive-dict.html#Syntax"
- rel="Help"
- ><strong>$B9=J8(B:</strong></a> BrowserMatch <em>regex
- envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ...
- <br>
- <a
- href="directive-dict.html#Default"
- rel="Help"
- ><strong>$B%G%U%)%k%H(B:</strong></a> None
- <br>
- <a
- href="directive-dict.html#Context"
- rel="Help"
- ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess
- <br>
- <a
- href="directive-dict.html#Override"
- rel="help"
- ><strong>$B>e=q$-(B:</strong></a> FileInfo
- <br>
- <a
- href="directive-dict.html#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> Base
- <br>
- <a
- href="directive-dict.html#Module"
- rel="Help"
- ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif
- <br>
- <a
- href="directive-dict.html#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B ($B$3$N%G%#%l%/%F%#%V$O(B
- Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B mod_browser $B%b%8%e!<%k$K(B
- $B$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B
- </p>
- <p>
- BrowserMatch $B%G%#%l%/%F%#%V$O!"(BHTTP $B%j%/%(%9%H$N(B <samp>User-Agent</samp>
- $B%X%C%@%U%#!<%k%I$K4p$E$$$F4D6-JQ?t$r@_Dj$7$^$9!#:G=i$N0z?t$O(B POSIX.2
- $B3HD%@55,I=8=(B (<samp>egrep</samp> $B7A<0$N@55,I=8=$H;w$?$b$N(B) $B$G$9!#(B
- $B;D$j$N0z?t$O!"@_Dj$r$9$kJQ?tL>$H$=$NCM$G!"8e<T$O>JN,2DG=$G$9!#(B
- $B$3$l$i$O0J2<$N7A<0$K$J$j$^$9!#(B
- </p>
- <ol>
- <li><samp><em>varname</em></samp>
- </li>
- <li><samp>!<em>varname</em></samp>
- </li>
- <li><samp><em>varname</em>=<em>value</em></samp>
- </li>
- </ol>
- <p>
- $B:G=i$N7A<0$G$O!"CM$O(B &quot;1&quot; $B$K@_Dj$5$l$^$9!#(B2 $BHVL\$OJQ?t$,(B
- $B4{$KDj5A$5$l$F$$$?>l9g!"$=$l$r:o=|$7$^$9!#(B3 $BHVL\$OJQ?t$NCM$r(B
- <samp><em>value</em></samp> $B$K@_Dj$7$^$9!#(B<samp>User-Agent</samp>
- $B%U%#!<%k%I$NJ8;zNs$,J#?t$N%(%s%H%j$K%^%C%A$7$?>l9g$O!"$=$N7k2L$,(B
- $B$^$H$a$i$l$^$9!#%(%s%H%j$O8=$l$?=g$K=hM}$5$l!"8e$N%(%s%H%j$,A0$N$b$N$r(B
- $B>e=q$-$7$^$9!#(B
- </p>
- <p>
- $BNc(B:
- </p>
- <pre>
+
+</pre>
+ </blockquote>
+
+ <p>$B>\:Y$O!"(B<a href="../env.html">Apache
+ $B$N4D6-JQ?t(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#browsermatch">BrowserMatch</a></li>
+
+ <li><a href="#browsermatchnocase">BrowserMatchNoCase</a></li>
+
+ <li><a href="#setenvif">SetEnvIf</a></li>
+
+ <li><a href="#setenvifnocase">SetEnvIfNoCase</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="browsermatch" name="browsermatch">BrowserMatch
+ $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> BrowserMatch <em>regex
+ env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> None<br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B
+ ($B$3$N%G%#%l%/%F%#%V$O(B Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B
+ mod_browser $B%b%8%e!<%k$K$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
+ 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B</p>
+
+ <p>BrowserMatch $B%G%#%l%/%F%#%V$O!"(BHTTP $B%j%/%(%9%H$N(B
+ <samp>User-Agent</samp>
+ $B%X%C%@%U%#!<%k%I$K4p$E$$$F4D6-JQ?t$r@_Dj$7$^$9!#:G=i$N0z?t$O(B
+ POSIX.2 $B3HD%@55,I=8=(B (<samp>egrep</samp>
+ $B7A<0$N@55,I=8=$H;w$?$b$N(B) $B$G$9!#(B
+ $B;D$j$N0z?t$O!"@_Dj$r$9$kJQ?tL>$H$=$NCM$G!"8e<T$O>JN,2DG=$G$9!#(B
+ $B$3$l$i$O0J2<$N7A<0$K$J$j$^$9!#(B</p>
+
+ <ol>
+ <li><samp><em>varname</em></samp>, or</li>
+
+ <li><samp>!<em>varname</em></samp>, or</li>
+
+ <li><samp><em>varname</em>=<em>value</em></samp></li>
+ </ol>
+
+ <p>$B:G=i$N7A<0$G$O!"CM$O(B &quot;1&quot; $B$K@_Dj$5$l$^$9!#(B
+ 2 $BHVL\$OJQ?t$,4{$KDj5A$5$l$F$$$?>l9g!"$=$l$r:o=|$7$^$9!#(B
+ 3 $BHVL\$OJQ?t$NCM$r(B <samp><em>value</em></samp> $B$K@_Dj$7$^$9!#(B
+ <samp>User-Agent</samp>
+ $B%U%#!<%k%I$NJ8;zNs$,J#?t$N%(%s%H%j$K%^%C%A$7$?>l9g$O!"(B
+ $B$=$N7k2L$,$^$H$a$i$l$^$9!#(B
+ $B%(%s%H%j$O8=$l$?=g$K=hM}$5$l!"8e$N%(%s%H%j$,A0$N$b$N$r>e=q$-$7$^$9!#(B
+ </p>
+ <p>$BNc(B:</p>
+<pre>
BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript
- </pre>
- <p>
- $B@55,I=8=$NJ8;zNs$O(B<strong>$BBgJ8;z>.J8;z$r6hJL$9$k(B</strong>$B$3$H$K(B
- $BCm0U$7$F$/$@$5$$!#BgJ8;z>.J8;z$r6hJL$7$J$$%^%C%A$O(B
- <a
- href="#BrowserMatchNoCase"
- ><samp>BrowserMatchNoCase</samp></a>
- $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B
- </p>
- <P>
- <samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B <samp>BrowserMatchNoCase</samp>
- $B%G%#%l%/%F%#%V$O(B
- <a
- href="#SetEnvIf"
- ><samp>SetEnvIf</samp></a>
- $B%G%#%l%/%F%#%V$H(B
- <a
- href="#SetEnvIfNoCase"
- ><samp>SetEnvIfNoCase</samp></a>
- $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B 2 $B9T$OF1$88z2L$K$J$j$^$9(B:
- </p>
- <pre>
+
+</pre>
+
+ <p>$B@55,I=8=$NJ8;zNs$O(B<strong>$BBgJ8;z>.J8;z$r6hJL$9$k(B</strong
+ >$B$3$H$KCm0U$7$F$/$@$5$$!#BgJ8;z>.J8;z$r6hJL$7$J$$%^%C%A$O(B<a
+ href="#browsermatchnocase"><samp>BrowserMatchNoCase</samp></a
+ >$B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+ <p><samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B
+ <samp>BrowserMatchNoCase</samp> $B%G%#%l%/%F%#%V$O(B
+ <a href="#setenvif"><samp>SetEnvIf</samp></a> $B%G%#%l%/%F%#%V(B
+ <a href="#setenvifnocase"><samp>SetEnvIfNoCase</samp></a>
+ $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B 2 $B9T$OF1$88z2L$K$J$j$^$9(B:
+ </p>
+<pre>
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
- </pre>
-
- <hr> <!-- the HR is part of the directive description -->
- <h2>
- <a name="BrowserMatchNoCase">BrowserMatchNoCase $B%G%#%l%/%F%#%V(B
- </a>
- </h2>
- <p>
- <a
- href="directive-dict.html#Syntax"
- rel="Help"
- ><strong>$B9=J8(B:</strong></a> BrowserMatchNoCase <em>regex
- envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ...
- <br>
- <a
- href="directive-dict.html#Default"
- rel="Help"
- ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em>
- <br>
- <a
- href="directive-dict.html#Context"
- rel="Help"
- ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess
- <br>
- <a
- href="directive-dict.html#Override"
- rel="Help"
- ><strong>$B>e=q$-(B:</strong></a> FileInfo
- <br>
- <a
- href="directive-dict.html#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> Base
- <br>
- <a
- href="directive-dict.html#Module"
- rel="Help"
- ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif
- <br>
- <a
- href="directive-dict.html#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B ($B$3$N%G%#%l%/%F%#%V$O(B
- Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B mod_browser $B%b%8%e!<%k$K(B
- $B$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B
- </p>
- <p>
- <samp>BrowserMatchNoCase</samp> $B%G%#%l%/%F%#%V$O!"0UL#E*$K$O(B
- <a
- href="#BrowserMatch"
- ><samp>BrowserMatch</samp></a>
- $B%G%#%l%/%F%#%V$H$[$H$s$IF1$8$G$9!#0c$&E@$O!"BgJ8;z>.J8;z$r6hJL$7$J$$$G(B
- $B%^%C%A$r9T$J$&$3$H$G$9!#Nc(B:
- </p>
- <pre>
+
+</pre>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="browsermatchnocase"
+ name="browsermatchnocase">BrowserMatchNoCase $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> BrowserMatchNoCase
+ <em>regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.2 $B0J>e(B
+ ($B$3$N%G%#%l%/%F%#%V$O(B Apache 1.2 $B$G$O!":#$G$O(B obsolete $B$K$J$C$F$$$k(B
+ mod_browser $B%b%8%e!<%k$K$"$j$^$7$?(B)$B!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
+ 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B</p>
+ <p><samp>BrowserMatchNoCase</samp>
+ $B%G%#%l%/%F%#%V$O!"0UL#E*$K$O(B <a href="#browsermatch"
+ ><samp>BrowserMatch</samp></a>
+ $B%G%#%l%/%F%#%V$H$[$H$s$IF1$8$G$9!#(B
+ $B0c$&E@$O!"BgJ8;z>.J8;z$r6hJL$7$J$$$G%^%C%A$r9T$J$&$3$H$G$9!#Nc(B:</p>
+<pre>
BrowserMatchNoCase mac platform=macintosh
BrowserMatchNoCase win platform=windows
- </pre>
- <p>
- <samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B <samp>BrowserMatchNoCase</samp>
- $B%G%#%l%/%F%#%V$O(B
- <a
- href="#SetEnvIf"
- ><samp>SetEnvIf</samp></a>
- $B%G%#%l%/%F%#%V$H(B
- <a
- href="#SetEnvIfNoCase"
- ><samp>SetEnvIfNoCase</samp></a>
- $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B 2 $B9T$OF1$88z2L$K$J$j$^$9(B:
- </p>
- <pre>
+
+</pre>
+ <p><samp>BrowserMatch</samp> $B%G%#%l%/%F%#%V$H(B
+ <samp>BrowserMatchNoCase</samp> $B%G%#%l%/%F%#%V$O(B <a
+ href="#setenvif"><samp>SetEnvIf</samp></a> $B%G%#%l%/%F%#%V$H(B <a
+ href="#setenvifnocase"><samp>SetEnvIfNoCase</samp></a>
+ $B%G%#%l%/%F%#%V$NFCJL$J%1!<%9$G$9!#0J2<$N(B
+ 2 $B9T$OF1$88z2L$K$J$j$^$9(B:</p>
+<pre>
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
- </pre>
-
- <hr> <!-- the HR is part of the directive description -->
- <h2>
- <a name="SetEnvIf">SetEnvIf $B%G%#%l%/%F%#%V(B
- </a>
- </h2>
- <p>
- <a
- href="directive-dict.html#Syntax"
- rel="Help"
- ><strong>$B9=J8(B:</strong></a> SetEnvIf <em> attribute regex
- envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ...
- <br>
- <a
- href="directive-dict.html#Default"
- rel="Help"
- ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em>
- <br>
- <a
- href="directive-dict.html#Context"
- rel="Help"
- ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess
- <br>
- <a
- href="directive-dict.html#Override"
- rel="Help"
- ><strong>$B>e=q$-(B:</strong></a> FileInfo
- <br>
- <a
- href="directive-dict.html#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> Base
- <br>
- <a
- href="directive-dict.html#Module"
- rel="Help"
- ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif
- <br>
- <a
- href="directive-dict.html#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(BRequest_Protocol $B%-!<%o!<%I$H(B
- $B4D6-JQ?t$N%^%C%A$O(B 1.3.7 $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
- 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B
- </p>
- <p>
- <samp>SetEnvIf</samp> $B%G%#%l%/%F%#%V$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F(B
- $B4D6-JQ?t$rDj5A$7$^$9!#$3$l$i$NB0@-$O!"(BHTTP $B%j%/%(%9%H$N$$$m$$$m$J%X%C%@(B
- $B%U%#!<%k%I(B ($B>\$7$$>pJs$O(B <a
- href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC 2616</a> $B$r;2>H(B
- $B$7$F$/$@$5$$(B) $B$+!"0J2<$N$h$&$J!"%j%/%(%9%H$NB>$NB&LL$G$"$k$3$H$,$G$-$^$9!#(B
- </p>
- <ul>
- <li><samp>Remote_Host</samp> - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B
- $B%[%9%HL>(B ($B$b$7$"$l$P(B)
- </li>
- <li><samp>Remote_Addr</samp> - $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B
- IP $B%"%I%l%9(B
- </li>
- <li><samp>Remote_User</samp> - $BG'>Z$5$l$?%f!<%6L>(B ($B$b$7$"$l$P(B)
- </li>
- <li><samp>Request_Method</samp> - $B;HMQ$5$l$F$$$k%a%=%C%IL>(B
- (<samp>GET</samp>, <samp>POST</samp> <em>$B$J$I(B</em>)
- </li>
- <li><samp>Request_Protocol</samp> - $B%j%/%(%9%H$,9T$J$o$l$?%W%m%H%3%k$N(B
- $BL>A0$H%P!<%8%g%s(B (<em>$BNc$($P(B</em>$B!"(B"HTTP/0.9", "HTTP/1.1"
- <em>$B$J$I!#(B</em>)
- </li>
- <li><samp>Request_URI</samp> - URL $B$N%9%-!<%`$H%[%9%H$N8e$NItJ,(B
- </li>
- </ul>
- <p>
- $B$h$/;H$o$l$k%j%/%(%9%H$N%X%C%@%U%#!<%k%I$K$O(B
- <samp>Host</samp>, <samp>User-Agent</samp>, <samp>Referer</samp>
- $B$,$"$j$^$9!#(B
- </p>
- <p>
- $BB0@-L>(B <em>attribute</em> $B$,FCJL$J%-!<%o!<%I$d%j%/%(%9%H$N%X%C%@%U%#!<%k%IL>$K(B
- $B%^%C%A$7$J$$$H$-$O!"%j%/%(%9%H$K4XO"IU$1$i$l$?%j%9%H$K$"$k4D6-JQ?t$N(B
- $BL>A0$H$7$F;n$5$l$^$9!#$3$l$K$h$j!"(B<code>SetEnvIf</code> $B%G%#%l%/%F%#%V$,(B
- $BA0$N%^%C%A$N7k2L$r;HMQ$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B
- </p>
- <blockquote>
- <strong>$BA0$N(B <code>SetEnvIf[NoCase]</code> $B$GDj5A$5$l$?4D6-JQ?t$N$_$r(B
- $B$3$NJ}K!$GD4$Y$k$3$H$,$G$-$^$9!#!VA0!W$H$$$&$N$O(B ($B%5!<%PA4BN!"$N$h$&$J(B)
- $B$h$j9-$$%9%3!<%W$GDj5A$5$l$?$+!"8=%G%#%l%/%F%#%V$N%9%3!<%W$NCf$NA0$NJ}$G(B
- $BDj5A$5$l$?$H$$$&0UL#$G$9!#(B
- </strong>
- </blockquote>
- <p>
- $BNc(B:
- </p>
- <pre>
+
+</pre>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="setenvif" name="setenvif">SetEnvIf
+ $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> SetEnvIf <em> attribute
+ regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#Default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(B
+ Request_Protocol $B%-!<%o!<%I$H4D6-JQ?t$N%^%C%A$O(B 1.3.7
+ $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
+ 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B</p>
+
+ <p><samp>SetEnvIf</samp>
+ $B%G%#%l%/%F%#%V$O!"%j%/%(%9%H$NB0@-$K4p$E$$$F4D6-JQ?t$rDj5A$7$^$9!#(B
+ $B$3$l$i$NB0@-$O!"(BHTTP $B%j%/%(%9%H$N$$$m$$$m$J%X%C%@%U%#!<%k%I(B
+ ($B>\$7$$>pJs$O(B <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC
+ 2616</a> $B$r;2>H$7$F$/$@$5$$(B)
+ $B$+!"0J2<$N$h$&$J!"%j%/%(%9%H$NB>$NB&LL$G$"$k$3$H$,$G$-$^$9!#(B</p>
+
+ <ul>
+ <li><samp>Remote_Host</samp> -
+ $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N%[%9%HL>(B ($B$b$7$"$l$P(B)</li>
+
+ <li><samp>Remote_Addr</samp> -
+ $B%j%/%(%9%H$r9T$J$C$F$$$k%/%i%$%"%s%H$N(B IP $B%"%I%l%9(B</li>
+
+ <li><samp>Remote_User</samp> -
+ $BG'>Z$5$l$?%f!<%6L>(B ($B$b$7$"$l$P(B)</li>
+
+ <li><samp>Request_Method</samp> -
+ $B;HMQ$5$l$F$$$k%a%=%C%IL>(B (<samp>GET</samp>, <samp>POST</samp>
+ <em>$B$J$I(B</em>)</li>
+
+ <li><samp>Request_Protocol</samp> -
+ $B%j%/%(%9%H$,9T$J$o$l$?%W%m%H%3%k$NL>A0$H%P!<%8%g%s(B
+ (<em>$BNc$($P(B</em>$B!"(B"HTTP/0.9", "HTTP/1.1" <em>$B$J$I!#(B</em>)</li>
+
+ <li><samp>Request_URI</samp> -
+ URL $B$N%9%-!<%`$H%[%9%H$N8e$NItJ,(B</li>
+ </ul>
+
+ <p>$B$h$/;H$o$l$k%j%/%(%9%H$N%X%C%@%U%#!<%k%I$K$O(B
+ <samp>Host</samp>, <samp>User-Agent</samp>, <samp>Referer</samp>
+ $B$,$"$j$^$9!#(B</p>
+
+ <p>$BB0@-L>(B <em>attribute</em>
+ $B$,FCJL$J%-!<%o!<%I$d%j%/%(%9%H$N%X%C%@%U%#!<%k%IL>$K%^%C%A$7$J$$$H$-$O!"(B
+ $B%j%/%(%9%H$K4XO"IU$1$i$l$?%j%9%H$K$"$k4D6-JQ?t$NL>A0$H$7$F;n$5$l$^$9!#(B
+ $B$3$l$K$h$j!"(B<code>SetEnvIf</code>
+ $B%G%#%l%/%F%#%V$,A0$N%^%C%A$N7k2L$r;HMQ$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B
+ </p>
+
+ <blockquote>
+ <strong>$BA0$N(B <code>SetEnvIf[NoCase]</code>
+ $B$GDj5A$5$l$?4D6-JQ?t$N$_$r$3$NJ}K!$GD4$Y$k$3$H$,$G$-$^$9!#(B
+ $B!VA0!W$H$$$&$N$O(B ($B%5!<%PA4BN!"$N$h$&$J(B)
+ $B$h$j9-$$%9%3!<%W$GDj5A$5$l$?$+!"(B
+ $B8=%G%#%l%/%F%#%V$N%9%3!<%W$NCf$NA0$NJ}$GDj5A$5$l$?$H$$$&0UL#$G$9!#(B
+ </strong>
+ </blockquote>
+ <p>$BNc(B:</p>
+<pre>
SetEnvIf Request_URI "\.gif$" object_is_image=gif
SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
@@ -350,82 +277,60 @@ rel="Help"
SetEnvIf Referer www\.mydomain\.com intra_site_referral
:
SetEnvIf object_is_image xbm XBIT_PROCESSING=1
- </pre>
- <p>
- $B@hF,$N;0$D$O%j%/%(%9%H$,2hA|%U%!%$%k$N$H$-$K!"4D6-JQ?t(B
- <samp>object_is_image</samp> $B$r@_Dj$7$^$9!#(B4 $BHVL\$O;2>H85$N%Z!<%8$,(B
- <samp>www.mydomain.com</samp> $B%&%'%V%5%$%H$N$I$3$+$K$"$k>l9g$K(B
- <samp>intra_site_referral</samp> $B$r@_Dj$7$^$9!#(B
- </p>
-
- <hr> <!-- the HR is part of the directive description -->
- <h2>
- <a name="SetEnvIfNoCase">SetEnvIfNoCase $B%G%#%l%/%F%#%V(B
- </a>
- </h2>
- <p>
- <a
- href="directive-dict.html#Syntax"
- rel="Help"
- ><strong>$B9=J8(B:</strong></a> SetEnvIfNoCase <em> attribute regex
- envar</em>[=<em>value</em>] [<em>envar</em>[=<em>value</em>]] ...
- <br>
- <a
- href="directive-dict.html#Default"
- rel="Help"
- ><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em>
- <br>
- <a
- href="directive-dict.html#Context"
- rel="Help"
- ><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"(B
- $B%G%#%l%/%H%j!"(B.htaccess
- <br>
- <a
- href="directive-dict.html#Override"
- rel="Help"
- ><strong>$B>e=q$-(B:</strong></a> FileInfo
- <br>
- <a
- href="directive-dict.html#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> Base
- <br>
- <a
- href="directive-dict.html#Module"
- rel="Help"
- ><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif
- <br>
- <a
- href="directive-dict.html#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(BRequest_Protocol $B%-!<%o!<%I$H(B
- $B4D6-JQ?t$N%^%C%A$O(B 1.3.7 $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
- 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B
- </p>
- <p>
- <samp>SetEnvIfNoCase</samp> $B$O!"0UL#E*$K$O(B
- <a
- href="#SetEnvIf"
- ><samp>SetEnvIf</samp></a>
- $B$H$[$H$s$IF1$8$G$9!#0c$$$O@55,I=8=$N%^%C%A$,BgJ8;z>.J8;z$r6hJL$7$J$$$G(B
- $B9T$J$o$l$k$3$H$G$9!#Nc$($P(B:
- </p>
- <pre>
- SetEnvIfNoCase Host Apache\.Org site=apache
- </pre>
- <p>
- $B$3$l$O!"(BHTTP $B%j%/%(%9%H$N(B <samp>Host:</samp> $B%X%C%@%U%#!<%k%I$,$"$j!"(B
- $B$=$NCM$,(B <samp>Apache.org</samp>, <samp>apache.org</samp> $B$d$=$NB>$N(B
- $BBgJ8;z>.J8;z$NAH$_9g$o$;$G$"$C$?$H$-$K!"4D6-JQ?t(B <samp>site</samp> $B$r(B
- &quot;<samp>apache</samp>&quot; $B$K@_Dj$7$^$9!#(B
- </p>
+</pre>
+
+ <p>$B@hF,$N;0$D$O%j%/%(%9%H$,2hA|%U%!%$%k$N$H$-$K!"4D6-JQ?t(B
+ <samp>object_is_image</samp> $B$r@_Dj$7$^$9!#(B
+ 4 $BHVL\$O;2>H85$N%Z!<%8$,(B <samp>www.mydomain.com</samp>
+ $B%&%'%V%5%$%H$N$I$3$+$K$"$k>l9g$K(B <samp>intra_site_referral</samp>
+ $B$r@_Dj$7$^$9!#(B</p>
<hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="setenvifnocase" name="setenvifnocase">SetEnvIfNoCase
+ $B%G%#%l%/%F%#%V(B</a></h2>
+
+ <p><a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> SetEnvIfNoCase
+ <em>attribute regex env-variable</em>[=<em>value</em>]
+ [<em>env-variable</em>[=<em>value</em>]] ...<br />
+ <a href="directive-dict.html#default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <em>none</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> FileInfo<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_setenvif<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.3 $B0J>e!#(B
+ Request_Protocol $B%-!<%o!<%I$H4D6-JQ?t$N%^%C%A$O(B 1.3.7
+ $B0J9_$G$N$_;HMQ2DG=!#(B.htaccess $B%U%!%$%k$G$N;HMQ$O(B
+ 1.3.13 $B0J9_$G$N$_%5%]!<%H!#(B</p>
+
+ <p><samp>SetEnvIfNoCase</samp> $B$O!"0UL#E*$K$O(B <a
+ href="#setenvif"><samp>SetEnvIf</samp></a> $B$H$[$H$s$IF1$8$G$9!#(B
+ $B0c$$$O@55,I=8=$N%^%C%A$,BgJ8;z>.J8;z$r6hJL$7$J$$$G9T$J$o$l$k$3$H$G$9!#(B
+ $BNc$($P(B:</p>
+
+<pre>
+ SetEnvIfNoCase Host Apache\.Org site=apache
+</pre>
+
+ <p>$B$3$l$O!"(BHTTP $B%j%/%(%9%H$N(B <samp>Host:</samp>
+ $B%X%C%@%U%#!<%k%I$,$"$j!"$=$NCM$,(B
+ <samp>Apache.org</samp>, <samp>apache.org</samp>
+ $B$d$=$NB>$NBgJ8;z>.J8;z$NAH$_9g$o$;$G$"$C$?$H$-$K!"4D6-JQ?t(B
+ <samp>site</samp> $B$r(B &quot;<samp>apache</samp>&quot; $B$K@_Dj$7$^$9!#(B</p>
+ <hr />
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
- </body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html
index 257860e90f4..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html
@@ -1,192 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_so</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_so</h1>
-
- <p>This module provides for loading of executable code and
- modules into the server at start-up or restart time.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base (Windows);
- Experimental (Unix)<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> mod_so.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- so_module<br />
- <a href="module-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Available in
- Apache 1.3 and later.</p>
-
- <h2>Summary</h2>
-
- <p>This is an experimental module. On selected operating
- systems it can be used to load modules into Apache at runtime
- via the <a href="../dso.html">Dynamic Shared Object</a> (DSO)
- mechanism, rather than requiring a recompilation.</p>
-
- <p>On Unix, the loaded code typically comes from shared object
- files (usually with <samp>.so</samp> extension), whilst on
- Windows this module loads <samp>DLL</samp> files. This module
- is only available in Apache 1.3 and up.</p>
-
- <p>In previous releases, the functionality of this module was
- provided for Unix by mod_dld, and for Windows by mod_dll. On
- Windows, mod_dll was used in beta release 1.3b1 through 1.3b5.
- mod_so combines these two modules into a single module for all
- operating systems.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#loadfile">LoadFile</a></li>
-
- <li><a href="#loadmodule">LoadModule</a></li>
- </ul>
-
- <h2><a id="creating" name="creating">Creating DLL Modules for
- Windows</a></h2>
-
- <p>The Apache module API is unchanged between the Unix and
- Windows versions. Many modules will run on Windows with no or
- little change from Unix, although others rely on aspects of the
- Unix architecture which are not present in Windows, and will
- not work.</p>
-
- <p>When a module does work, it can be added to the server in
- one of two ways. As with Unix, it can be compiled into the
- server. Because Apache for Windows does not have the
- <code>Configure</code> program of Apache for Unix, the module's
- source file must be added to the ApacheCore project file, and
- its symbols must be added to the
- <code>os\win32\modules.c</code> file.</p>
-
- <p>The second way is to compile the module as a DLL, a shared
- library that can be loaded into the server at runtime, using
- the <code><a href="#loadmodule">LoadModule</a></code>
- directive. These module DLLs can be distributed and run on any
- Apache for Windows installation, without recompilation of the
- server.</p>
-
- <p>To create a module DLL, a small change is necessary to the
- module's source file: The module record must be exported from
- the DLL (which will be created later; see below). To do this,
- add the <code>MODULE_VAR_EXPORT</code> (defined in the Apache
- header files) to your module's module record definition. For
- example, if your module has:</p>
-<pre>
- module foo_module;
-</pre>
-
- <p>Replace the above with:</p>
-<pre>
- module MODULE_VAR_EXPORT foo_module;
-</pre>
-
- <p>Note that this will only be activated on Windows, so the
- module can continue to be used, unchanged, with Unix if needed.
- Also, if you are familiar with <code>.DEF</code> files, you can
- export the module record with that method instead.</p>
-
- <p>Now, create a DLL containing your module. You will need to
- link this against the ApacheCore.lib export library that is
- created when the ApacheCore.dll shared library is compiled. You
- may also have to change the compiler settings to ensure that
- the Apache header files are correctly located.</p>
-
- <p>This should create a DLL version of your module. Now simply
- place it in the <samp>modules</samp> directory of your server
- root, and use the <code><a
- href="#loadmodule">LoadModule</a></code> directive to load
- it.</p>
- <hr />
-
- <h2><a id="loadfile" name="loadfile">LoadFile</a>
- directive</h2>
-
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> LoadFile
- <em>filename</em> [<em>filename</em>] ...<br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_so
-
- <p>The LoadFile directive links in the named object files or
- libraries when the server is started or restarted; this is used
- to load additional code which may be required for some module
- to work. <em>Filename</em> is either an absolute path or
- relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
- <hr />
-
- <h2><a id="loadmodule" name="loadmodule">LoadModule</a>
- directive</h2>
-
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> LoadModule <em>module
- filename</em><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_so
-
- <p>The LoadModule directive links in the object file or library
- <em>filename</em> and adds the module structure named
- <em>module</em> to the list of active modules. <em>Module</em>
- is the name of the external variable of type
- <code>module</code> in the file, and is listed as the <a
- href="module-dict.html#ModuleIdentifier">Module Identifier</a>
- in the module documentation. Example (Unix, and for Windows as
- of Apache 1.3.15):</p>
-
- <blockquote>
- <code>LoadModule status_module modules/mod_status.so</code>
- </blockquote>
-
- <p>Example (Windows prior to Apache 1.3.15, and some 3rd party
- modules):</p>
-
- <blockquote>
- <code>LoadModule foo_module modules/ApacheModuleFoo.dll<br />
- </code>
- </blockquote>
-
- <p><strong>Note that all modules bundled with the Apache Win32
- binary distribution were renamed as of Apache version
- 1.3.15</strong>.</p>
-
- <p>Win32 Apache modules are often distributed with the old
- style names, or even a name such as libfoo.dll. Whatever the
- name of the module, the LoadModule directive requires the exact
- filename, no assumption is made about the filename
- extension.</p>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.en
index c1c4a74d1e4..d69b5f40f0c 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.en
@@ -194,3 +194,199 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_so</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_so</h1>
+
+ <p>This module provides for loading of executable code and
+ modules into the server at start-up or restart time.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base (Windows);
+ Experimental (Unix)<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_so.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ so_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an experimental module. On selected operating
+ systems it can be used to load modules into Apache at runtime
+ via the <a href="../dso.html">Dynamic Shared Object</a> (DSO)
+ mechanism, rather than requiring a recompilation.</p>
+
+ <p>On Unix, the loaded code typically comes from shared object
+ files (usually with <samp>.so</samp> extension), whilst on
+ Windows this module loads <samp>DLL</samp> files. This module
+ is only available in Apache 1.3 and up.</p>
+
+ <p>In previous releases, the functionality of this module was
+ provided for Unix by mod_dld, and for Windows by mod_dll. On
+ Windows, mod_dll was used in beta release 1.3b1 through 1.3b5.
+ mod_so combines these two modules into a single module for all
+ operating systems.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#loadfile">LoadFile</a></li>
+
+ <li><a href="#loadmodule">LoadModule</a></li>
+ </ul>
+
+ <h2><a id="creating" name="creating">Creating DLL Modules for
+ Windows</a></h2>
+
+ <p>The Apache module API is unchanged between the Unix and
+ Windows versions. Many modules will run on Windows with no or
+ little change from Unix, although others rely on aspects of the
+ Unix architecture which are not present in Windows, and will
+ not work.</p>
+
+ <p>When a module does work, it can be added to the server in
+ one of two ways. As with Unix, it can be compiled into the
+ server. Because Apache for Windows does not have the
+ <code>Configure</code> program of Apache for Unix, the module's
+ source file must be added to the ApacheCore project file, and
+ its symbols must be added to the
+ <code>os\win32\modules.c</code> file.</p>
+
+ <p>The second way is to compile the module as a DLL, a shared
+ library that can be loaded into the server at runtime, using
+ the <code><a href="#loadmodule">LoadModule</a></code>
+ directive. These module DLLs can be distributed and run on any
+ Apache for Windows installation, without recompilation of the
+ server.</p>
+
+ <p>To create a module DLL, a small change is necessary to the
+ module's source file: The module record must be exported from
+ the DLL (which will be created later; see below). To do this,
+ add the <code>MODULE_VAR_EXPORT</code> (defined in the Apache
+ header files) to your module's module record definition. For
+ example, if your module has:</p>
+<pre>
+ module foo_module;
+</pre>
+
+ <p>Replace the above with:</p>
+<pre>
+ module MODULE_VAR_EXPORT foo_module;
+</pre>
+
+ <p>Note that this will only be activated on Windows, so the
+ module can continue to be used, unchanged, with Unix if needed.
+ Also, if you are familiar with <code>.DEF</code> files, you can
+ export the module record with that method instead.</p>
+
+ <p>Now, create a DLL containing your module. You will need to
+ link this against the ApacheCore.lib export library that is
+ created when the ApacheCore.dll shared library is compiled. You
+ may also have to change the compiler settings to ensure that
+ the Apache header files are correctly located.</p>
+
+ <p>This should create a DLL version of your module. Now simply
+ place it in the <samp>modules</samp> directory of your server
+ root, and use the <code><a
+ href="#loadmodule">LoadModule</a></code> directive to load
+ it.</p>
+ <hr />
+
+ <h2><a id="loadfile" name="loadfile">LoadFile</a>
+ directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <p>The LoadFile directive links in the named object files or
+ libraries when the server is started or restarted; this is used
+ to load additional code which may be required for some module
+ to work. <em>Filename</em> is either an absolute path or
+ relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
+
+ <p>For example:</p>
+ <code>LoadFile libexec/libxmlparse.so</code>
+
+ <hr />
+
+ <h2><a id="loadmodule" name="loadmodule">LoadModule</a>
+ directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadModule <em>module
+ filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <p>The LoadModule directive links in the object file or library
+ <em>filename</em> and adds the module structure named
+ <em>module</em> to the list of active modules. <em>Module</em>
+ is the name of the external variable of type
+ <code>module</code> in the file, and is listed as the <a
+ href="module-dict.html#ModuleIdentifier">Module Identifier</a>
+ in the module documentation. Example (Unix, and for Windows as
+ of Apache 1.3.15):</p>
+
+ <blockquote>
+ <code>LoadModule status_module modules/mod_status.so</code>
+ </blockquote>
+
+ <p>Example (Windows prior to Apache 1.3.15, and some 3rd party
+ modules):</p>
+
+ <blockquote>
+ <code>LoadModule foo_module modules/ApacheModuleFoo.dll<br />
+ </code>
+ </blockquote>
+
+ <p><strong>Note that all modules bundled with the Apache Win32
+ binary distribution were renamed as of Apache version
+ 1.3.15</strong>.</p>
+
+ <p>Win32 Apache modules are often distributed with the old
+ style names, or even a name such as libfoo.dll. Whatever the
+ name of the module, the LoadModule directive requires the exact
+ filename, no assumption is made about the filename
+ extension.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.html
index 3eaee69ba28..eed5f498256 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.html
@@ -198,3 +198,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_so</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_so</h1>
+
+ <p>This module provides for loading of executable code and
+ modules into the server at start-up or restart time.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base (Windows);
+ Experimental (Unix)<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a> mod_so.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ so_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This is an experimental module. On selected operating
+ systems it can be used to load modules into Apache at runtime
+ via the <a href="../dso.html">Dynamic Shared Object</a> (DSO)
+ mechanism, rather than requiring a recompilation.</p>
+
+ <p>On Unix, the loaded code typically comes from shared object
+ files (usually with <samp>.so</samp> extension), whilst on
+ Windows this module loads <samp>DLL</samp> files. This module
+ is only available in Apache 1.3 and up.</p>
+
+ <p>In previous releases, the functionality of this module was
+ provided for Unix by mod_dld, and for Windows by mod_dll. On
+ Windows, mod_dll was used in beta release 1.3b1 through 1.3b5.
+ mod_so combines these two modules into a single module for all
+ operating systems.</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#loadfile">LoadFile</a></li>
+
+ <li><a href="#loadmodule">LoadModule</a></li>
+ </ul>
+
+ <h2><a id="creating" name="creating">Creating DLL Modules for
+ Windows</a></h2>
+
+ <p>The Apache module API is unchanged between the Unix and
+ Windows versions. Many modules will run on Windows with no or
+ little change from Unix, although others rely on aspects of the
+ Unix architecture which are not present in Windows, and will
+ not work.</p>
+
+ <p>When a module does work, it can be added to the server in
+ one of two ways. As with Unix, it can be compiled into the
+ server. Because Apache for Windows does not have the
+ <code>Configure</code> program of Apache for Unix, the module's
+ source file must be added to the ApacheCore project file, and
+ its symbols must be added to the
+ <code>os\win32\modules.c</code> file.</p>
+
+ <p>The second way is to compile the module as a DLL, a shared
+ library that can be loaded into the server at runtime, using
+ the <code><a href="#loadmodule">LoadModule</a></code>
+ directive. These module DLLs can be distributed and run on any
+ Apache for Windows installation, without recompilation of the
+ server.</p>
+
+ <p>To create a module DLL, a small change is necessary to the
+ module's source file: The module record must be exported from
+ the DLL (which will be created later; see below). To do this,
+ add the <code>MODULE_VAR_EXPORT</code> (defined in the Apache
+ header files) to your module's module record definition. For
+ example, if your module has:</p>
+<pre>
+ module foo_module;
+</pre>
+
+ <p>Replace the above with:</p>
+<pre>
+ module MODULE_VAR_EXPORT foo_module;
+</pre>
+
+ <p>Note that this will only be activated on Windows, so the
+ module can continue to be used, unchanged, with Unix if needed.
+ Also, if you are familiar with <code>.DEF</code> files, you can
+ export the module record with that method instead.</p>
+
+ <p>Now, create a DLL containing your module. You will need to
+ link this against the ApacheCore.lib export library that is
+ created when the ApacheCore.dll shared library is compiled. You
+ may also have to change the compiler settings to ensure that
+ the Apache header files are correctly located.</p>
+
+ <p>This should create a DLL version of your module. Now simply
+ place it in the <samp>modules</samp> directory of your server
+ root, and use the <code><a
+ href="#loadmodule">LoadModule</a></code> directive to load
+ it.</p>
+ <hr />
+
+ <h2><a id="loadfile" name="loadfile">LoadFile</a>
+ directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <p>The LoadFile directive links in the named object files or
+ libraries when the server is started or restarted; this is used
+ to load additional code which may be required for some module
+ to work. <em>Filename</em> is either an absolute path or
+ relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
+
+ <p>For example:</p>
+ <code>LoadFile libexec/libxmlparse.so</code>
+
+ <hr />
+
+ <h2><a id="loadmodule" name="loadmodule">LoadModule</a>
+ directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> LoadModule <em>module
+ filename</em><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_so
+
+ <p>The LoadModule directive links in the object file or library
+ <em>filename</em> and adds the module structure named
+ <em>module</em> to the list of active modules. <em>Module</em>
+ is the name of the external variable of type
+ <code>module</code> in the file, and is listed as the <a
+ href="module-dict.html#ModuleIdentifier">Module Identifier</a>
+ in the module documentation. Example (Unix, and for Windows as
+ of Apache 1.3.15):</p>
+
+ <blockquote>
+ <code>LoadModule status_module modules/mod_status.so</code>
+ </blockquote>
+
+ <p>Example (Windows prior to Apache 1.3.15, and some 3rd party
+ modules):</p>
+
+ <blockquote>
+ <code>LoadModule foo_module modules/ApacheModuleFoo.dll<br />
+ </code>
+ </blockquote>
+
+ <p><strong>Note that all modules bundled with the Apache Win32
+ binary distribution were renamed as of Apache version
+ 1.3.15</strong>.</p>
+
+ <p>Win32 Apache modules are often distributed with the old
+ style names, or even a name such as libfoo.dll. Whatever the
+ name of the module, the LoadModule directive requires the exact
+ filename, no assumption is made about the filename
+ extension.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.ja.jis
index 4df232d945d..e2fd001e7f7 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_so.html.ja.jis
@@ -194,3 +194,199 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_so</title>
+
+ </head>
+ <!-- English revision: 1.13-->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_so $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O!"%5!<%P$N5/F0;~$d:F5/F0;~$K<B9T%3!<%I$H(B
+ $B%b%8%e!<%k$r%5!<%P$KFI$_9~$`5!G=$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a>
+ Base (Windows); Experimental (Unix)<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a> mod_so.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ so_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ Apache 1.3 $B0J9_$G;HMQ2DG=!#(B</p>
+
+ <h2>$B35MW(B</h2>
+
+ <p>$B$3$l$O<B83E*$J%b%8%e!<%k$G$9!#(B
+ $B%*%Z%l!<%F%#%s%0%7%9%F%`$K$h$C$F$O!"%5!<%P$N:F%3%s%Q%$%k$r$9$kBe$o$j$K!"(B
+ <a href="../dso.html">Dynamic Shared Object</a>
+ (DSO) $B5!9=$K$h$j!"<B9T;~$K(B Apache $B$K%b%8%e!<%k$rFI$_9~$`!"$H$$$&$3$H$r(B
+ $B9T$J$&$?$a$K$3$N%b%8%e!<%k$r;HMQ$9$k$3$H$,$G$-$^$9!#(B</p>
+ <p>Unix $B>e$G$O!"FI$_9~$^$l$k%3!<%I$ODL>o$O%7%'%"!<%I%*%V%8%'%/%H%U%!%$%k(B
+ ($BIaDL(B <samp>.so</samp> $B$H$$$&3HD%;R$,IU$$$F$$$^$9(B) $B$+$i$G$9!#(B
+ $B0lJ}!"(BWindows $B>e$G$O$3$N%b%8%e!<%k$O(B <samp>DLL</samp>
+ $B%U%!%$%k$rFI$_9~$_$^$9!#$3$N%b%8%e!<%k$O(B
+ Apache 1.3 $B0J9_$N$_$G;HMQ2DG=$G$9!#(B</p>
+ <p>$B0JA0$N%j%j!<%9$G$O!"$3$N%b%8%e!<%k$N5!G=$O(B Unix $B$G$O(B mod_dld$B!"(B
+ Windows $B$G$O(B mod_dll $B$K$h$jDs6!$5$l$F$$$^$7$?!#(BWindows $B$G$O!"(B
+ mod_dll $B$O(B 1.3b1 $B$+$i(B 1.3b5 $B$^$G$N%Y!<%?%j%j!<%9$G;HMQ$5$l$F$$$^$7$?!#(B
+ mod_so $B$O$9$Y$F$N%*%Z%l!<%F%#%s%0%7%9%F%`MQ$K!"(B
+ $B$3$NFs$D$N%b%8%e!<%k$r0l$D$N%b%8%e!<%k$K$^$H$a$?$b$N$G$9!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#loadfile">LoadFile</a></li>
+
+ <li><a href="#loadmodule">LoadModule</a></li>
+ </ul>
+
+ <h2><a id="creating" name="creating">Windows $BMQ$N(B DLL
+ $B%b%8%e!<%k$r:n@.$9$k(B</a></h2>
+
+ <p>Apache $B$N%b%8%e!<%k(B API $B$O(B UNIX $B$H(B Windows $B$H$GJQ99$5$l$F$$$^$;$s!#(B
+ $BB?$/$N%b%8%e!<%k$OA4$/JQ99$J$7!"$b$7$/$O4JC1$JJQ99$K$h$j(B Windows
+ $B$G<B9T$G$-$k$h$&$K$J$j$^$9!#$?$@$7!"$=$l0J30$N(B Windows $B$K$OL5$$(B Unix
+ $B%"!<%-%F%/%A%c!<$N5!G=$K0MB8$7$?%b%8%e!<%k$OF0:n$7$^$;$s!#(B</p>
+
+ <p>$B%b%8%e!<%k$,<B:]$KF0:n$9$k$H$-$O!"(B
+ $BFs$D$NJ}K!$N$I$A$i$+$G%5!<%P$KDI2C$9$k$3$H$,$G$-$^$9!#$^$:!"(BUnix
+ $B$HF1MM$K%5!<%P$K%3%s%Q%$%k$7$FAH$_9~$`$3$H$,$G$-$^$9!#(BWindows
+ $BMQ$N(B Apache $B$O(B Unix $BMQ$N(B Apache $B$K$"$k(B <code>Configure</code>
+ $B%W%m%0%i%`$,$"$j$^$;$s$N$G!"%b%8%e!<%k$N%=!<%9%U%!%$%k$r(B
+ ApacheCore $B%W%m%8%'%/%H%U%!%$%k$KDI2C$7!"%7%s%\%k$r(B
+ <code>os\win32\modules.c</code> $B%U%!%$%k$KDI2C$9$kI,MW$,$"$j$^$9!#(B</p>
+
+ <p>$BFs$DL\$O%b%8%e!<%k$r(B DLL $B$H$7$F%3%s%Q%$%k$9$kJ}K!$G$9!#(B
+ DLL $B$O%7%'%"!<%I%i%$%V%i%j$G!"<B9T;~$K(B
+ <code><a href="#loadmodule">LoadModule</a></code>
+ $B%G%#%l%/%F%#%V$K$h$j%5!<%P$KFI$_9~$`$3$H$,$G$-$^$9!#$3$l$i$N%b%8%e!<%k(B
+ DLL $B$OG[I[$9$k$3$H$,2DG=$G!"%5!<%P$r:F%3%s%Q%$%k$9$k$3$H$J$/!"(BWindows
+ $BMQ$N(B Apache $B$N$9$Y$F$N%$%s%9%H!<%k$G<B9T$9$k$3$H$,$G$-$^$9!#(B</p>
+
+ <p>$B%b%8%e!<%k(B DLL $B$r:n@.$9$k$?$a$K$O!"(B
+ $B%b%8%e!<%k$N:n@.$K>.$5$JJQ99$r9T$J$&I,MW$,$"$j$^$9!#(B
+ $B$D$^$j!"%b%8%e!<%k$N%l%3!<%I$,(B DLL ($B$3$l$O8e$G:n@.$5$l$^$9!#(B
+ $B0J2<$r;2>H$7$F$/$@$5$$(B) $B$+$i%(%/%9%]!<%H$5$l$J$1$l$P$J$j$^$;$s!#(B
+ $B$3$l$r9T$J$&$K$O!"(B<code>MODULE_VAR_EXPORT</code> (Apache
+ $B$N%X%C%@%U%!%$%k$GDj5A$5$l$F$$$^$9(B) $B$r%b%8%e!<%k$N%b%8%e!<%k%l%3!<%I(B
+ $BDj5A$NItJ,$KDI2C$7$F$/$@$5$$!#$?$H$($P!"%b%8%e!<%k$K(B</p>
+<pre>
+ module foo_module;
+</pre>
+
+ <p>$B$,$"$k$H$9$k$H!"$=$l$r<!$N$b$N$GCV$-49$($F$/$@$5$$!#(B</p>
+<pre>
+ module MODULE_VAR_EXPORT foo_module;
+</pre>
+
+ <p>$B$b$7(B Unix $B>e$G$3$N%b%8%e!<%k$r;HMQ$7$?$/$J$C$F$b!"(B
+ $BJQ99L5$7$G;H$$B3$1$i$l$k$h$&$K!"$3$N%^%/%m$O(B Windows
+ $B>e$G$N$_8zNO$r;}$D$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#(B<code>.DEF</code>
+ $B%U%!%$%k$NJ}$rNI$/CN$C$F$$$k$H$$$&>l9g$O!"(B
+ $BBe$o$j$K$=$l$r;H$C$F%b%8%e!<%k%l%3!<%I$r(B
+ $B%(%/%9%]!<%H$9$k$3$H$b$G$-$^$9!#(B</p>
+ <p>$B$3$3$G!"$"$J$?$N%b%8%e!<%k$N(B DLL $B$r:n@.$7$F$/$@$5$$!#$3$l$r!"(B
+ ApacheCore.dll $B%7%'%"!<%I%i%$%V%i%j$,%3%s%Q%$%k$5$l$?$H$-$K:n@.$5$l$?(B
+ ApacheCore.lib $B%(%/%9%]!<%H%i%$%V%i%j$H%j%s%/$7$F$/$@$5$$!#$3$N;~$K!"(B
+ Apache $B$N%X%C%@%U%!%$%k$,@5$7$$0LCV$K$"$k$h$&$K!"(B
+ $B%3%s%Q%$%i$N@_Dj$rJQ$($kI,MW$,$"$k$+$b$7$l$^$;$s!#(B</p>
+
+ <p>$B$3$l$G(B DLL $BHG$N%b%8%e!<%k$,:n@.$5$l$F$$$k$O$:$G$9!#(B
+ $B$5$"!"%5!<%P%k!<%H$N(B <samp>modules</samp>
+ $B%G%#%l%/%H%j$K%b%8%e!<%k$rCV$$$F!"(B<code><a
+ href="#loadmodule">LoadModule</a></code>
+ $B%G%#%l%/%F%#%V$r;H$C$FFI$_9~$s$G$/$@$5$$!#(B</p>
+ <hr />
+
+ <h2><a id="loadfile" name="loadfile">LoadFile</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> LoadFile
+ <em>filename</em> [<em>filename</em>] ...<br />
+ <a href="directive-dict.html#Context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_so
+
+ <p>LoadFile $B%G%#%l%/%F%#%V$O!"%5!<%P$,5/F0$5$l$?$H$-$d:F5/F0$5$l$?$H$-$K!"(B
+ $B;XDj$5$l$?%*%V%8%'%/%H%U%!%$%k$d%i%$%V%i%j$r%j%s%/$7$^$9!#(B
+ $B$3$l$O%b%8%e!<%k$,F0:n$9$k$?$a$KI,MW$K$J$k$+$b$7$l$J$$DI2C$N(B
+ $B%3!<%I$rFI$_9~$`$?$a$K;HMQ$5$l$^$9!#(B<em>Filename</em> $B$O@dBP%Q%9$+!"(B<a
+ href="core.html#serverroot">ServerRoot</a> $B$+$i$NAjBP%Q%9$G$9!#(B</p>
+
+ <p>$BNc(B:</p>
+ <code>LoadFile libexec/libxmlparse.so</code>
+
+ <hr />
+
+ <h2><a id="loadmodule" name="loadmodule">LoadModule</a>
+ $B%G%#%l%/%F%#%V(B</h2>
+
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> LoadModule <em>module
+ filename</em><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>$B%5!<%P@_Dj%U%!%$%k(B<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_so
+
+ <p>LoadModule $B%G%#%l%/%F%#%V$O(B <em>filename</em>
+ $B$H$$$&%*%V%8%'%/%H%U%!%$%k$*$h$S%i%$%V%i%j$r%j%s%/$7!"(B<em>module</em>
+ $B$H$$$&L>A0$N%b%8%e!<%k$N9=B$$r%"%/%F%#%V$J%b%8%e!<%k$N%j%9%H$KDI2C$7$^$9!#(B
+ <em>Module</em> $B$O%U%!%$%kCf$N(B <code>module</code>
+ $B7?$N30ItJQ?t$NL>A0$G!"%b%8%e!<%k$N%I%-%e%a%s%H$K(B
+ <a href="module-dict.html#moduleidentifier"
+ >$B%b%8%e!<%k<1JL;R(B</a>$B$H$7$F=q$+$l$F$$$k$b$N$G$9!#Nc(B
+ (Unix $B$H(B Apache 1.3.15 $B0J9_$N(B Windows):</p>
+
+ <blockquote>
+ <code>LoadModule status_module modules/mod_status.so</code>
+ </blockquote>
+
+ <p>$BNc(B (Apache 1.3.15 $B0JA0$N(B
+ Windows$B!"%5!<%I%Q!<%F%#%b%8%e!<%k$N0lIt(B):</p>
+
+ <blockquote>
+ <code>LoadModule foo_module modules/ApacheModuleFoo.dll<br />
+ </code>
+ </blockquote>
+
+ <p><strong>Apache 1.3.15 $B$N;~E@$G(B Apache Win32 $B%P%$%J%jG[I[$KIUB0$7$F$$$k(B
+ $B$9$Y$F$N%b%8%e!<%k$NL>A0$,JQ99$5$l$?$3$H$KCm0U$7$F$/$@$5$$(B</strong>$B!#(B
+ </p>
+
+ <p>Win32 Apache $B%b%8%e!<%k$O$7$P$7$P8E$$7A<0$NL>A0$GG[I[$5$l$k$3$H$,$"$j!"(B
+ libfoo.dll $B$N$h$&$JL>A0$GG[I[$5$l$?$j$9$k$3$H$5$($"$j$^$9!#(B
+ $B%b%8%e!<%k$NL>A0$K4X78$J$/!"(BLoadModule
+ $B%G%#%l%/%F%#%V$O@53N$J%U%!%$%kL>$rMW5a$7$^$9!#(B
+ $B%U%!%$%kL>$N3HD%;R$K4X$7$F$O2?$N2>Dj$b9T$J$$$^$;$s!#(B</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html
index e51ea83f8eb..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html
@@ -1,133 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_speling</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_speling</h1>
-
- <p>This module attempts to correct misspellings of URLs that
- users might have entered, by ignoring capitalization and by
- allowing up to one misspelling.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Extension<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a>
- mod_speling.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- speling_module<br />
- <a href="module-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Available in
- Apache 1.3 and later. Available as an External module in Apache
- 1.1 and later.</p>
-
- <h2>Summary</h2>
-
- <p>Requests to documents sometimes cannot be served by the core
- apache server because the request was misspelled or
- miscapitalized. This module addresses this problem by trying to
- find a matching document, even after all other modules gave up.
- It does its work by comparing each document name in the
- requested directory against the requested document name
- <strong>without regard to case</strong>, and allowing
- <strong>up to one misspelling</strong> (character insertion /
- omission / transposition or wrong character). A list is built
- with all document names which were matched using this
- strategy.</p>
-
- <p>If, after scanning the directory,</p>
-
- <ul>
- <li>no matching document was found, Apache will proceed as
- usual and return a "document not found" error.</li>
-
- <li>only one document is found that "almost" matches the
- request, then it is returned in the form of a redirection
- response.</li>
-
- <li>more than one document with a close match was found, then
- the list of the matches is returned to the client, and the
- client can select the correct candidate.</li>
- </ul>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#checkspelling">CheckSpelling</a></li>
- </ul>
- <hr />
- <!-- the HR is part of the directive description -->
-
- <h2><a id="checkspelling"
- name="checkspelling">CheckSpelling</a> directive</h2>
-
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> CheckSpelling
- on|off<br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>CheckSpelling
- Off</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config, virtual
- host, directory, .htaccess<br />
- <a href="directive-dict.html#Override"
- rel="Help"><strong>Override:</strong></a> Options <br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_speling<br />
- <a href="directive-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> CheckSpelling
- was available as a separately available module for Apache 1.1,
- but was limited to miscapitalizations. As of Apache 1.3, it is
- part of the Apache distribution. Prior to Apache 1.3.2, the
- <samp>CheckSpelling</samp> directive was only available in the
- "server" and "virtual host" contexts.
-
- <p>This directive enables or disables the spelling module. When
- enabled, keep in mind that</p>
-
- <ul>
- <li>the directory scan which is necessary for the spelling
- correction will have an impact on the server's performance
- when many spelling corrections have to be performed at the
- same time.</li>
-
- <li>the document trees should not contain sensitive files
- which could be matched inadvertently by a spelling
- "correction".</li>
-
- <li>the module is unable to correct misspelled user names (as
- in <code>http://my.host/~apahce/</code>), just file names or
- directory names.</li>
-
- <li>spelling corrections apply strictly to existing files, so
- a request for the <samp>&lt;Location /status&gt;</samp> may
- get incorrectly treated as the negotiated file
- "<samp>/stats.html</samp>".</li>
- </ul>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.en
index e51ea83f8eb..0f7843e3a02 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.en
@@ -131,3 +131,136 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_speling</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_speling</h1>
+
+ <p>This module attempts to correct misspellings of URLs that
+ users might have entered, by ignoring capitalization and by
+ allowing up to one misspelling.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_speling.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ speling_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later. Available as an External module in Apache
+ 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>Requests to documents sometimes cannot be served by the core
+ apache server because the request was misspelled or
+ miscapitalized. This module addresses this problem by trying to
+ find a matching document, even after all other modules gave up.
+ It does its work by comparing each document name in the
+ requested directory against the requested document name
+ <strong>without regard to case</strong>, and allowing
+ <strong>up to one misspelling</strong> (character insertion /
+ omission / transposition or wrong character). A list is built
+ with all document names which were matched using this
+ strategy.</p>
+
+ <p>If, after scanning the directory,</p>
+
+ <ul>
+ <li>no matching document was found, Apache will proceed as
+ usual and return a "document not found" error.</li>
+
+ <li>only one document is found that "almost" matches the
+ request, then it is returned in the form of a redirection
+ response.</li>
+
+ <li>more than one document with a close match was found, then
+ the list of the matches is returned to the client, and the
+ client can select the correct candidate.</li>
+ </ul>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#checkspelling">CheckSpelling</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="checkspelling"
+ name="checkspelling">CheckSpelling</a> directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CheckSpelling
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>CheckSpelling
+ Off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Options <br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_speling<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> CheckSpelling
+ was available as a separately available module for Apache 1.1,
+ but was limited to miscapitalizations. As of Apache 1.3, it is
+ part of the Apache distribution. Prior to Apache 1.3.2, the
+ <samp>CheckSpelling</samp> directive was only available in the
+ "server" and "virtual host" contexts.
+
+ <p>This directive enables or disables the spelling module. When
+ enabled, keep in mind that</p>
+
+ <ul>
+ <li>the directory scan which is necessary for the spelling
+ correction will have an impact on the server's performance
+ when many spelling corrections have to be performed at the
+ same time.</li>
+
+ <li>the document trees should not contain sensitive files
+ which could be matched inadvertently by a spelling
+ "correction".</li>
+
+ <li>the module is unable to correct misspelled user names (as
+ in <code>http://my.host/~apahce/</code>), just file names or
+ directory names.</li>
+
+ <li>spelling corrections apply strictly to existing files, so
+ a request for the <samp>&lt;Location /status&gt;</samp> may
+ get incorrectly treated as the negotiated file
+ "<samp>/stats.html</samp>".</li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.html
index 976f046b806..c1775c63b8e 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.html
@@ -135,3 +135,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_speling</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_speling</h1>
+
+ <p>This module attempts to correct misspellings of URLs that
+ users might have entered, by ignoring capitalization and by
+ allowing up to one misspelling.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_speling.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ speling_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later. Available as an External module in Apache
+ 1.1 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>Requests to documents sometimes cannot be served by the core
+ apache server because the request was misspelled or
+ miscapitalized. This module addresses this problem by trying to
+ find a matching document, even after all other modules gave up.
+ It does its work by comparing each document name in the
+ requested directory against the requested document name
+ <strong>without regard to case</strong>, and allowing
+ <strong>up to one misspelling</strong> (character insertion /
+ omission / transposition or wrong character). A list is built
+ with all document names which were matched using this
+ strategy.</p>
+
+ <p>If, after scanning the directory,</p>
+
+ <ul>
+ <li>no matching document was found, Apache will proceed as
+ usual and return a "document not found" error.</li>
+
+ <li>only one document is found that "almost" matches the
+ request, then it is returned in the form of a redirection
+ response.</li>
+
+ <li>more than one document with a close match was found, then
+ the list of the matches is returned to the client, and the
+ client can select the correct candidate.</li>
+ </ul>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#checkspelling">CheckSpelling</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="checkspelling"
+ name="checkspelling">CheckSpelling</a> directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> CheckSpelling
+ on|off<br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>CheckSpelling
+ Off</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host, directory, .htaccess<br />
+ <a href="directive-dict.html#Override"
+ rel="Help"><strong>Override:</strong></a> Options <br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_speling<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> CheckSpelling
+ was available as a separately available module for Apache 1.1,
+ but was limited to miscapitalizations. As of Apache 1.3, it is
+ part of the Apache distribution. Prior to Apache 1.3.2, the
+ <samp>CheckSpelling</samp> directive was only available in the
+ "server" and "virtual host" contexts.
+
+ <p>This directive enables or disables the spelling module. When
+ enabled, keep in mind that</p>
+
+ <ul>
+ <li>the directory scan which is necessary for the spelling
+ correction will have an impact on the server's performance
+ when many spelling corrections have to be performed at the
+ same time.</li>
+
+ <li>the document trees should not contain sensitive files
+ which could be matched inadvertently by a spelling
+ "correction".</li>
+
+ <li>the module is unable to correct misspelled user names (as
+ in <code>http://my.host/~apahce/</code>), just file names or
+ directory names.</li>
+
+ <li>spelling corrections apply strictly to existing files, so
+ a request for the <samp>&lt;Location /status&gt;</samp> may
+ get incorrectly treated as the negotiated file
+ "<samp>/stats.html</samp>".</li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.ja.jis
index 5293ad9eaae..bb4ecf68674 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_speling.html.ja.jis
@@ -130,3 +130,135 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_speling</title>
+
+ </head>
+ <!-- English revision: 1.14 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_speling $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$OBgJ8;z>.J8;z$N0c$$$rL5;k$7$?$j!"(B
+ $B0lJ8;z0J2<$NDV$j$N4V0c$$$rL5;k$9$k$3$H$G(B
+ URL $B$NDV$j$N4V0c$$$N=$@5$r;n$_$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Extension<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_speling.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ speling_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.3
+ $B0J9_$G;HMQ2DG=!#(BApache 1.1 $B0J9_$G$O30It%b%8%e!<%k$H$7$F;HMQ2DG=!#(B
+ </p>
+
+ <h2>$B35MW(B</h2>
+
+ <p>$B%j%/%(%9%H$NDV$j$,4V0c$C$F$$$?$j!"(B
+ $BBgJ8;z>.J8;z$,0c$C$F$$$?$j$9$k$?$a$K!"(BApache $B$N%3%"%5!<%P$,(B
+ $B%I%-%e%a%s%H$X$N%j%/%(%9%H$X$N1~Ez$r@5$7$/Ds6!$G$-$J$$$3$H$,$"$j$^$9!#(B
+ $B$3$N%b%8%e!<%k$O!"B>$N$9$Y$F$N%b%8%e!<%k$,$"$-$i$a$?8e$G$"$C$?$H$7$F$b!"(B
+ $B%j%/%(%9%H$K9g$&%I%-%e%a%s%H$r8+$D$1$h$&$H$9$k$3$H$K$h$j$3$NLdBj$N(B
+ $B2r7h$r;n$_$^$9!#$3$N%b%8%e!<%k$O%j%/%(%9%H$5$l$?%G%#%l%/%H%j$K$"$k(B
+ $B$=$l$>$l$N%I%-%e%a%s%H$NL>A0$H!"%j%/%(%9%H$5$l$?%I%-%e%a%s%H$NL>A0$H$r(B
+ <strong>$BBgJ8;z>.J8;z$N6hJL$rL5;k$7(B</strong>$B!"(B<strong>$B0lJ8;z$^$G$N(B
+ $BDV$j$N4V0c$$(B</strong> ($BJ8;z$NA^F~(B/$B>JN,(B/$BNY9g$&J8;z$NCV49!"4V0c$C$?J8;z(B)
+ $B$r5v2D$7$FHf3S$9$k$3$H$K$h$j!"L\E*$rC#@.$7$h$&$H$7$^$9!#(B
+ $B$3$NJ}K!$G%j%/%(%9%H$K9g$&%I%-%e%a%s%H$N0lMw$,:n@.$5$l$^$9!#(B</p>
+
+ <p>$B%G%#%l%/%H%j$r%9%-%c%s$7$?8e$K!"(B</p>
+
+ <ul>
+ <li>$BE,@Z$J%I%-%e%a%s%H$,8+$D$+$i$J$+$C$?>l9g!"(B
+ Apache $B$O$$$D$b$HF1$8$h$&$K=hM}$r$7!"(B
+ $B!V%I%-%e%a%s%H$,8+$D$+$i$J$$!W$H$$$&%(%i!<$rJV$7$^$9!#(B</li>
+
+ <li>$B%j%/%(%9%H$K!V$[$H$s$I!W9g$&%I%-%e%a%s%H$,0l$D$@$18+$D$+$C$?>l9g!"(B
+ $B$=$l$,%j%@%$%l%/%H1~Ez$H$7$FJV$5$l$^$9!#(B</li>
+
+ <li>$B$h$/;w$?%I%-%e%a%s%H$,J#?t8+$D$+$C$?>l9g!"(B
+ $B$=$N%j%9%H$,%/%i%$%"%s%H$KJV$5$l!"(B
+ $B%/%i%$%"%s%H$,@5$7$$8uJd$rA*Br$G$-$k$h$&$K$7$^$9!#(B</li>
+ </ul>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#checkspelling">CheckSpelling</a></li>
+ </ul>
+ <hr />
+ <!-- the HR is part of the directive description -->
+
+ <h2><a id="checkspelling"
+ name="checkspelling">CheckSpelling</a> $B%G%#%l%/%F%#%V(B</h2>
+
+ <a href="directive-dict.html#syntax"
+ rel="help"><strong>$B9=J8(B:</strong></a> CheckSpelling on|off<br />
+ <a href="directive-dict.html#default"
+ rel="help"><strong>$B%G%U%)%k%H(B:</strong></a> <code>CheckSpelling
+ Off</code><br />
+ <a href="directive-dict.html#context"
+ rel="help"><strong>$B%3%s%F%-%9%H(B:</strong></a>
+ $B%5!<%P@_Dj%U%!%$%k!"%P!<%A%c%k%[%9%H!"%G%#%l%/%H%j!"(B.htaccess<br />
+ <a href="directive-dict.html#override"
+ rel="help"><strong>$B>e=q$-(B:</strong></a> Options<br />
+ <a href="directive-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="directive-dict.html#module"
+ rel="help"><strong>$B%b%8%e!<%k(B:</strong></a> mod_speling<br />
+ <a href="directive-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> CheckSpelling $B$O(B
+ Apache 1.1 $B$G$O30It$N%b%8%e!<%k$H$7$F;HMQ2DG=$G$7$?$,!"(B
+ $BBgJ8;z>.J8;z$N0c$$$r=$@5$9$k5!G=$N$_$G$7$?!#(BApache 1.3 $B$G$O(B
+ Apache $B$NG[I[$N0lIt$K$J$C$F$$$^$9!#(BApache 1.3.2 $B0JA0$G$O!"(B
+ <samp>CheckSpelling</samp> $B%G%#%l%/%F%#%V$O(B "$B%5!<%P(B" $B$H(B
+ "$B%P!<%A%c%k%[%9%H(B" $B$N%3%s%F%-%9%H$N$_$G;HMQ2DG=$G$7$?!#(B
+
+
+ <p>$B$3$N%G%#%l%/%F%#%V$ODV$jMQ$N%b%8%e!<%k$r;HMQ$9$k$+$I$&$+$r(B
+ $B7h$a$^$9!#;HMQ;~$K$O!"0J2<$N$3$H$r3P$($F$*$$$F$/$@$5$$(B</p>
+
+ <ul>
+ <li>$BF1;~$K$?$/$5$s$NDV$j$ND{@5$r9T$J$o$J$1$l$P$J$i$J$$$H$-$O!"(B
+ $B$=$N$?$a$K9T$J$o$l$k%G%#%l%/%H%j$N%9%-%c%s$,%5!<%P$N@-G=$K(B
+ $B1F6A$rM?$($^$9!#(B</li>
+
+ <li>$B%I%-%e%a%s%H$NCf$KDV$j$N!VD{@5!W$K$h$j(B
+ $B0U?^$;$:9g$C$F$7$^$&$h$&$J=EMW$J%U%!%$%k$,$J$$$h$&$K$7$F$/$@$5$$!#(B
+ </li>
+
+ <li>$B%b%8%e!<%k$O%f!<%6L>$NDV$j$N4V0c$$(B
+ (<code>http://my.host/~apahce/</code> $B$N$h$&$K(B)
+ $B$rD{@5$9$k$3$H$O$G$-$^$;$s!#(B
+ $BD{@5$G$-$k$N$O%U%!%$%kL>$H%G%#%l%/%H%jL>$@$1$G$9!#(B</li>
+
+ <li>$BDV$j$ND{@5$OB8:_$9$k%U%!%$%k$K87L)$KE,MQ$5$l$^$9$N$G!"(B
+ <samp>&lt;Location /status&gt;</samp>
+ $B$O%M%4%7%(!<%7%g%s$N7k2L$N%U%!%$%k(B "<samp>/stats.html</samp>"
+ $B$H$7$F4V0c$C$F07$o$l$k$+$b$7$l$^$;$s!#(B</li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html
index 5baf0169b49..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html
@@ -1,216 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_unique_id</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_unique_id</h1>
-
- <p>This module provides an environment variable with a unique
- identifier for each request.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Extension<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a>
- mod_unique_id.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- unique_id_module<br />
- <a href="module-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> Available in
- Apache 1.3 and later.</p>
-
- <h2>Summary</h2>
-
- <p>This module provides a magic token for each request which is
- guaranteed to be unique across "all" requests under very
- specific conditions. The unique identifier is even unique
- across multiple machines in a properly configured cluster of
- machines. The environment variable <code>UNIQUE_ID</code> is
- set to the identifier for each request. Unique identifiers are
- useful for various reasons which are beyond the scope of this
- document.</p>
-
- <h2>Directives</h2>
-
- <p>This module has no directives.</p>
-
- <h2>Theory</h2>
-
- <p>First a brief recap of how the Apache server works on Unix
- machines. On Unix machines, Apache creates several children,
- the children process requests one at a time. Each child can
- serve multiple requests in its lifetime. For the purpose of
- this discussion, the children don't share any data with each
- other. We'll refer to the children as httpd processes.</p>
-
- <p>Your website has one or more machines under your
- administrative control, together we'll call them a cluster of
- machines. Each machine can possibly run multiple instances of
- Apache. All of these collectively are considered "the
- universe", and with certain assumptions we'll show that in this
- universe we can generate unique identifiers for each request,
- without extensive communication between machines in the
- cluster.</p>
-
- <p>The machines in your cluster should satisfy these
- requirements. (Even if you have only one machine you should
- synchronize its clock with NTP.)</p>
-
- <ul>
- <li>The machines' times are synchronized via NTP or other
- network time protocol.</li>
-
- <li>The machines' hostnames all differ, such that the module
- can do a hostname lookup on the hostname and receive a
- different IP address for each machine in the cluster.</li>
- </ul>
-
- <p>As far as operating system assumptions go, we assume that
- pids (process ids) fit in 32-bits. If the operating system uses
- more than 32-bits for a pid, the fix is trivial but must be
- performed in the code.</p>
-
- <p>Given those assumptions, at a single point in time we can
- identify any httpd process on any machine in the cluster from
- all other httpd processes. The machine's IP address and the pid
- of the httpd process are sufficient to do this. So in order to
- generate unique identifiers for requests we need only
- distinguish between different points in time.</p>
-
- <p>To distinguish time we will use a Unix timestamp (seconds
- since January 1, 1970 UTC), and a 16-bit counter. The timestamp
- has only one second granularity, so the counter is used to
- represent up to 65536 values during a single second. The
- quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is
- sufficient to enumerate 65536 requests per second per httpd
- process. There are issues however with pid reuse over time, and
- the counter is used to alleviate this issue.</p>
-
- <p>When an httpd child is created, the counter is initialized
- with ( current microseconds divided by 10 ) modulo 65536 (this
- formula was chosen to eliminate some variance problems with the
- low order bits of the microsecond timers on some systems). When
- a unique identifier is generated, the time stamp used is the
- time the request arrived at the web server. The counter is
- incremented every time an identifier is generated (and allowed
- to roll over).</p>
-
- <p>The kernel generates a pid for each process as it forks the
- process, and pids are allowed to roll over (they're 16-bits on
- many Unixes, but newer systems have expanded to 32-bits). So
- over time the same pid will be reused. However unless it is
- reused within the same second, it does not destroy the
- uniqueness of our quadruple. That is, we assume the system does
- not spawn 65536 processes in a one second interval (it may even
- be 32768 processes on some Unixes, but even this isn't likely
- to happen).</p>
-
- <p>Suppose that time repeats itself for some reason. That is,
- suppose that the system's clock is screwed up and it revisits a
- past time (or it is too far forward, is reset correctly, and
- then revisits the future time). In this case we can easily show
- that we can get pid and time stamp reuse. The choice of
- initializer for the counter is intended to help defeat this.
- Note that we really want a random number to initialize the
- counter, but there aren't any readily available numbers on most
- systems (<em>i.e.</em>, you can't use rand() because you need
- to seed the generator, and can't seed it with the time because
- time, at least at one second resolution, has repeated itself).
- This is not a perfect defense.</p>
-
- <p>How good a defense is it? Suppose that one of your machines
- serves at most 500 requests per second (which is a very
- reasonable upper bound at this writing, because systems
- generally do more than just shovel out static files). To do
- that it will require a number of children which depends on how
- many concurrent clients you have. But we'll be pessimistic and
- suppose that a single child is able to serve 500 requests per
- second. There are 1000 possible starting counter values such
- that two sequences of 500 requests overlap. So there is a 1.5%
- chance that if time (at one second resolution) repeats itself
- this child will repeat a counter value, and uniqueness will be
- broken. This was a very pessimistic example, and with real
- world values it's even less likely to occur. If your system is
- such that it's still likely to occur, then perhaps you should
- make the counter 32 bits (by editing the code).</p>
-
- <p>You may be concerned about the clock being "set back" during
- summer daylight savings. However this isn't an issue because
- the times used here are UTC, which "always" go forward. Note
- that x86 based Unixes may need proper configuration for this to
- be true -- they should be configured to assume that the
- motherboard clock is on UTC and compensate appropriately. But
- even still, if you're running NTP then your UTC time will be
- correct very shortly after reboot.</p>
-
- <p>The <code>UNIQUE_ID</code> environment variable is
- constructed by encoding the 112-bit (32-bit IP address, 32 bit
- pid, 32 bit time stamp, 16 bit counter) quadruple using the
- alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
- base64 encoding, producing 19 characters. The MIME base64
- alphabet is actually <code>[A-Za-z0-9+/]</code> however
- <code>+</code> and <code>/</code> need to be specially encoded
- in URLs, which makes them less desirable. All values are
- encoded in network byte ordering so that the encoding is
- comparable across architectures of different byte ordering. The
- actual ordering of the encoding is: time stamp, IP address,
- pid, counter. This ordering has a purpose, but it should be
- emphasized that applications should not dissect the encoding.
- Applications should treat the entire encoded
- <code>UNIQUE_ID</code> as an opaque token, which can be
- compared against other <code>UNIQUE_ID</code>s for equality
- only.</p>
-
- <p>The ordering was chosen such that it's possible to change
- the encoding in the future without worrying about collision
- with an existing database of <code>UNIQUE_ID</code>s. The new
- encodings should also keep the time stamp as the first element,
- and can otherwise use the same alphabet and bit length. Since
- the time stamps are essentially an increasing sequence, it's
- sufficient to have a <em>flag second</em> in which all machines
- in the cluster stop serving and request, and stop using the old
- encoding format. Afterwards they can resume requests and begin
- issuing the new encodings.</p>
-
- <p>This is a relatively portable solution. It is extended to
- multithreaded systems like Windows NT, which add the thread-id
- to the ID, producing a 144-bit (including 32-bit tid) quadruple
- that generates a 24 character UNIQUE_ID value. The identifiers
- generated have essentially an infinite life-time because future
- identifiers can be made longer as required. Essentially no
- communication is required between machines in the cluster (only
- NTP synchronization is required, which is low overhead), and no
- communication between httpd processes is required (the
- communication is implicit in the pid value assigned by the
- kernel). In very specific situations the identifier can be
- shortened, but more information needs to be assumed (for
- example the 32-bit IP address is overkill for any site, but
- there is no portable shorter replacement for it). This module
- may be extended to include an entire IPv6 address, but that is
- overkill for nearly all server configurations.
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </p>
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.en
index 5baf0169b49..452e9aae5ee 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.en
@@ -214,3 +214,219 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_unique_id</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_unique_id</h1>
+
+ <p>This module provides an environment variable with a unique
+ identifier for each request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_unique_id.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ unique_id_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides a magic token for each request which is
+ guaranteed to be unique across "all" requests under very
+ specific conditions. The unique identifier is even unique
+ across multiple machines in a properly configured cluster of
+ machines. The environment variable <code>UNIQUE_ID</code> is
+ set to the identifier for each request. Unique identifiers are
+ useful for various reasons which are beyond the scope of this
+ document.</p>
+
+ <h2>Directives</h2>
+
+ <p>This module has no directives.</p>
+
+ <h2>Theory</h2>
+
+ <p>First a brief recap of how the Apache server works on Unix
+ machines. On Unix machines, Apache creates several children,
+ the children process requests one at a time. Each child can
+ serve multiple requests in its lifetime. For the purpose of
+ this discussion, the children don't share any data with each
+ other. We'll refer to the children as httpd processes.</p>
+
+ <p>Your website has one or more machines under your
+ administrative control, together we'll call them a cluster of
+ machines. Each machine can possibly run multiple instances of
+ Apache. All of these collectively are considered "the
+ universe", and with certain assumptions we'll show that in this
+ universe we can generate unique identifiers for each request,
+ without extensive communication between machines in the
+ cluster.</p>
+
+ <p>The machines in your cluster should satisfy these
+ requirements. (Even if you have only one machine you should
+ synchronize its clock with NTP.)</p>
+
+ <ul>
+ <li>The machines' times are synchronized via NTP or other
+ network time protocol.</li>
+
+ <li>The machines' hostnames all differ, such that the module
+ can do a hostname lookup on the hostname and receive a
+ different IP address for each machine in the cluster.</li>
+ </ul>
+
+ <p>As far as operating system assumptions go, we assume that
+ pids (process ids) fit in 32-bits. If the operating system uses
+ more than 32-bits for a pid, the fix is trivial but must be
+ performed in the code.</p>
+
+ <p>Given those assumptions, at a single point in time we can
+ identify any httpd process on any machine in the cluster from
+ all other httpd processes. The machine's IP address and the pid
+ of the httpd process are sufficient to do this. So in order to
+ generate unique identifiers for requests we need only
+ distinguish between different points in time.</p>
+
+ <p>To distinguish time we will use a Unix timestamp (seconds
+ since January 1, 1970 UTC), and a 16-bit counter. The timestamp
+ has only one second granularity, so the counter is used to
+ represent up to 65536 values during a single second. The
+ quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is
+ sufficient to enumerate 65536 requests per second per httpd
+ process. There are issues however with pid reuse over time, and
+ the counter is used to alleviate this issue.</p>
+
+ <p>When an httpd child is created, the counter is initialized
+ with ( current microseconds divided by 10 ) modulo 65536 (this
+ formula was chosen to eliminate some variance problems with the
+ low order bits of the microsecond timers on some systems). When
+ a unique identifier is generated, the time stamp used is the
+ time the request arrived at the web server. The counter is
+ incremented every time an identifier is generated (and allowed
+ to roll over).</p>
+
+ <p>The kernel generates a pid for each process as it forks the
+ process, and pids are allowed to roll over (they're 16-bits on
+ many Unixes, but newer systems have expanded to 32-bits). So
+ over time the same pid will be reused. However unless it is
+ reused within the same second, it does not destroy the
+ uniqueness of our quadruple. That is, we assume the system does
+ not spawn 65536 processes in a one second interval (it may even
+ be 32768 processes on some Unixes, but even this isn't likely
+ to happen).</p>
+
+ <p>Suppose that time repeats itself for some reason. That is,
+ suppose that the system's clock is screwed up and it revisits a
+ past time (or it is too far forward, is reset correctly, and
+ then revisits the future time). In this case we can easily show
+ that we can get pid and time stamp reuse. The choice of
+ initializer for the counter is intended to help defeat this.
+ Note that we really want a random number to initialize the
+ counter, but there aren't any readily available numbers on most
+ systems (<em>i.e.</em>, you can't use rand() because you need
+ to seed the generator, and can't seed it with the time because
+ time, at least at one second resolution, has repeated itself).
+ This is not a perfect defense.</p>
+
+ <p>How good a defense is it? Suppose that one of your machines
+ serves at most 500 requests per second (which is a very
+ reasonable upper bound at this writing, because systems
+ generally do more than just shovel out static files). To do
+ that it will require a number of children which depends on how
+ many concurrent clients you have. But we'll be pessimistic and
+ suppose that a single child is able to serve 500 requests per
+ second. There are 1000 possible starting counter values such
+ that two sequences of 500 requests overlap. So there is a 1.5%
+ chance that if time (at one second resolution) repeats itself
+ this child will repeat a counter value, and uniqueness will be
+ broken. This was a very pessimistic example, and with real
+ world values it's even less likely to occur. If your system is
+ such that it's still likely to occur, then perhaps you should
+ make the counter 32 bits (by editing the code).</p>
+
+ <p>You may be concerned about the clock being "set back" during
+ summer daylight savings. However this isn't an issue because
+ the times used here are UTC, which "always" go forward. Note
+ that x86 based Unixes may need proper configuration for this to
+ be true -- they should be configured to assume that the
+ motherboard clock is on UTC and compensate appropriately. But
+ even still, if you're running NTP then your UTC time will be
+ correct very shortly after reboot.</p>
+
+ <p>The <code>UNIQUE_ID</code> environment variable is
+ constructed by encoding the 112-bit (32-bit IP address, 32 bit
+ pid, 32 bit time stamp, 16 bit counter) quadruple using the
+ alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
+ base64 encoding, producing 19 characters. The MIME base64
+ alphabet is actually <code>[A-Za-z0-9+/]</code> however
+ <code>+</code> and <code>/</code> need to be specially encoded
+ in URLs, which makes them less desirable. All values are
+ encoded in network byte ordering so that the encoding is
+ comparable across architectures of different byte ordering. The
+ actual ordering of the encoding is: time stamp, IP address,
+ pid, counter. This ordering has a purpose, but it should be
+ emphasized that applications should not dissect the encoding.
+ Applications should treat the entire encoded
+ <code>UNIQUE_ID</code> as an opaque token, which can be
+ compared against other <code>UNIQUE_ID</code>s for equality
+ only.</p>
+
+ <p>The ordering was chosen such that it's possible to change
+ the encoding in the future without worrying about collision
+ with an existing database of <code>UNIQUE_ID</code>s. The new
+ encodings should also keep the time stamp as the first element,
+ and can otherwise use the same alphabet and bit length. Since
+ the time stamps are essentially an increasing sequence, it's
+ sufficient to have a <em>flag second</em> in which all machines
+ in the cluster stop serving and request, and stop using the old
+ encoding format. Afterwards they can resume requests and begin
+ issuing the new encodings.</p>
+
+ <p>This is a relatively portable solution. It is extended to
+ multithreaded systems like Windows NT, which add the thread-id
+ to the ID, producing a 144-bit (including 32-bit tid) quadruple
+ that generates a 24 character UNIQUE_ID value. The identifiers
+ generated have essentially an infinite life-time because future
+ identifiers can be made longer as required. Essentially no
+ communication is required between machines in the cluster (only
+ NTP synchronization is required, which is low overhead), and no
+ communication between httpd processes is required (the
+ communication is implicit in the pid value assigned by the
+ kernel). In very specific situations the identifier can be
+ shortened, but more information needs to be assumed (for
+ example the 32-bit IP address is overkill for any site, but
+ there is no portable shorter replacement for it). This module
+ may be extended to include an entire IPv6 address, but that is
+ overkill for nearly all server configurations.
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.html
index 3f7b31a700a..ce6cf613d0e 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.html
@@ -218,3 +218,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_unique_id</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_unique_id</h1>
+
+ <p>This module provides an environment variable with a unique
+ identifier for each request.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Extension<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_unique_id.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ unique_id_module<br />
+ <a href="module-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> Available in
+ Apache 1.3 and later.</p>
+
+ <h2>Summary</h2>
+
+ <p>This module provides a magic token for each request which is
+ guaranteed to be unique across "all" requests under very
+ specific conditions. The unique identifier is even unique
+ across multiple machines in a properly configured cluster of
+ machines. The environment variable <code>UNIQUE_ID</code> is
+ set to the identifier for each request. Unique identifiers are
+ useful for various reasons which are beyond the scope of this
+ document.</p>
+
+ <h2>Directives</h2>
+
+ <p>This module has no directives.</p>
+
+ <h2>Theory</h2>
+
+ <p>First a brief recap of how the Apache server works on Unix
+ machines. On Unix machines, Apache creates several children,
+ the children process requests one at a time. Each child can
+ serve multiple requests in its lifetime. For the purpose of
+ this discussion, the children don't share any data with each
+ other. We'll refer to the children as httpd processes.</p>
+
+ <p>Your website has one or more machines under your
+ administrative control, together we'll call them a cluster of
+ machines. Each machine can possibly run multiple instances of
+ Apache. All of these collectively are considered "the
+ universe", and with certain assumptions we'll show that in this
+ universe we can generate unique identifiers for each request,
+ without extensive communication between machines in the
+ cluster.</p>
+
+ <p>The machines in your cluster should satisfy these
+ requirements. (Even if you have only one machine you should
+ synchronize its clock with NTP.)</p>
+
+ <ul>
+ <li>The machines' times are synchronized via NTP or other
+ network time protocol.</li>
+
+ <li>The machines' hostnames all differ, such that the module
+ can do a hostname lookup on the hostname and receive a
+ different IP address for each machine in the cluster.</li>
+ </ul>
+
+ <p>As far as operating system assumptions go, we assume that
+ pids (process ids) fit in 32-bits. If the operating system uses
+ more than 32-bits for a pid, the fix is trivial but must be
+ performed in the code.</p>
+
+ <p>Given those assumptions, at a single point in time we can
+ identify any httpd process on any machine in the cluster from
+ all other httpd processes. The machine's IP address and the pid
+ of the httpd process are sufficient to do this. So in order to
+ generate unique identifiers for requests we need only
+ distinguish between different points in time.</p>
+
+ <p>To distinguish time we will use a Unix timestamp (seconds
+ since January 1, 1970 UTC), and a 16-bit counter. The timestamp
+ has only one second granularity, so the counter is used to
+ represent up to 65536 values during a single second. The
+ quadruple <em>( ip_addr, pid, time_stamp, counter )</em> is
+ sufficient to enumerate 65536 requests per second per httpd
+ process. There are issues however with pid reuse over time, and
+ the counter is used to alleviate this issue.</p>
+
+ <p>When an httpd child is created, the counter is initialized
+ with ( current microseconds divided by 10 ) modulo 65536 (this
+ formula was chosen to eliminate some variance problems with the
+ low order bits of the microsecond timers on some systems). When
+ a unique identifier is generated, the time stamp used is the
+ time the request arrived at the web server. The counter is
+ incremented every time an identifier is generated (and allowed
+ to roll over).</p>
+
+ <p>The kernel generates a pid for each process as it forks the
+ process, and pids are allowed to roll over (they're 16-bits on
+ many Unixes, but newer systems have expanded to 32-bits). So
+ over time the same pid will be reused. However unless it is
+ reused within the same second, it does not destroy the
+ uniqueness of our quadruple. That is, we assume the system does
+ not spawn 65536 processes in a one second interval (it may even
+ be 32768 processes on some Unixes, but even this isn't likely
+ to happen).</p>
+
+ <p>Suppose that time repeats itself for some reason. That is,
+ suppose that the system's clock is screwed up and it revisits a
+ past time (or it is too far forward, is reset correctly, and
+ then revisits the future time). In this case we can easily show
+ that we can get pid and time stamp reuse. The choice of
+ initializer for the counter is intended to help defeat this.
+ Note that we really want a random number to initialize the
+ counter, but there aren't any readily available numbers on most
+ systems (<em>i.e.</em>, you can't use rand() because you need
+ to seed the generator, and can't seed it with the time because
+ time, at least at one second resolution, has repeated itself).
+ This is not a perfect defense.</p>
+
+ <p>How good a defense is it? Suppose that one of your machines
+ serves at most 500 requests per second (which is a very
+ reasonable upper bound at this writing, because systems
+ generally do more than just shovel out static files). To do
+ that it will require a number of children which depends on how
+ many concurrent clients you have. But we'll be pessimistic and
+ suppose that a single child is able to serve 500 requests per
+ second. There are 1000 possible starting counter values such
+ that two sequences of 500 requests overlap. So there is a 1.5%
+ chance that if time (at one second resolution) repeats itself
+ this child will repeat a counter value, and uniqueness will be
+ broken. This was a very pessimistic example, and with real
+ world values it's even less likely to occur. If your system is
+ such that it's still likely to occur, then perhaps you should
+ make the counter 32 bits (by editing the code).</p>
+
+ <p>You may be concerned about the clock being "set back" during
+ summer daylight savings. However this isn't an issue because
+ the times used here are UTC, which "always" go forward. Note
+ that x86 based Unixes may need proper configuration for this to
+ be true -- they should be configured to assume that the
+ motherboard clock is on UTC and compensate appropriately. But
+ even still, if you're running NTP then your UTC time will be
+ correct very shortly after reboot.</p>
+
+ <p>The <code>UNIQUE_ID</code> environment variable is
+ constructed by encoding the 112-bit (32-bit IP address, 32 bit
+ pid, 32 bit time stamp, 16 bit counter) quadruple using the
+ alphabet <code>[A-Za-z0-9@-]</code> in a manner similar to MIME
+ base64 encoding, producing 19 characters. The MIME base64
+ alphabet is actually <code>[A-Za-z0-9+/]</code> however
+ <code>+</code> and <code>/</code> need to be specially encoded
+ in URLs, which makes them less desirable. All values are
+ encoded in network byte ordering so that the encoding is
+ comparable across architectures of different byte ordering. The
+ actual ordering of the encoding is: time stamp, IP address,
+ pid, counter. This ordering has a purpose, but it should be
+ emphasized that applications should not dissect the encoding.
+ Applications should treat the entire encoded
+ <code>UNIQUE_ID</code> as an opaque token, which can be
+ compared against other <code>UNIQUE_ID</code>s for equality
+ only.</p>
+
+ <p>The ordering was chosen such that it's possible to change
+ the encoding in the future without worrying about collision
+ with an existing database of <code>UNIQUE_ID</code>s. The new
+ encodings should also keep the time stamp as the first element,
+ and can otherwise use the same alphabet and bit length. Since
+ the time stamps are essentially an increasing sequence, it's
+ sufficient to have a <em>flag second</em> in which all machines
+ in the cluster stop serving and request, and stop using the old
+ encoding format. Afterwards they can resume requests and begin
+ issuing the new encodings.</p>
+
+ <p>This is a relatively portable solution. It is extended to
+ multithreaded systems like Windows NT, which add the thread-id
+ to the ID, producing a 144-bit (including 32-bit tid) quadruple
+ that generates a 24 character UNIQUE_ID value. The identifiers
+ generated have essentially an infinite life-time because future
+ identifiers can be made longer as required. Essentially no
+ communication is required between machines in the cluster (only
+ NTP synchronization is required, which is low overhead), and no
+ communication between httpd processes is required (the
+ communication is implicit in the pid value assigned by the
+ kernel). In very specific situations the identifier can be
+ shortened, but more information needs to be assumed (for
+ example the 32-bit IP address is overkill for any site, but
+ there is no portable shorter replacement for it). This module
+ may be extended to include an entire IPv6 address, but that is
+ overkill for nearly all server configurations.
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </p>
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis
index 9a739933e94..d8f54b2866c 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_unique_id.html.ja.jis
@@ -211,3 +211,216 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache module mod_unique_id</title>
+
+ </head>
+ <!-- English revision: 1.9 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">mod_unique_id $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O!"$=$l$>$l$N%j%/%(%9%H$KBP$7$F(B
+ $B0l0U$J<1JL;R$r;}$D4D6-JQ?t$rDs6!$7$^$9!#(B</p>
+
+ <p><a href="module-dict.html#status"
+ rel="help"><strong>$B%9%F!<%?%9(B:</strong></a> Extension<br />
+ <a href="module-dict.html#sourcefile"
+ rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_unique_id.c<br />
+ <a href="module-dict.html#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ unique_id_module<br />
+ <a href="module-dict.html#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a> Apache 1.3
+ $B0J9_$G;HMQ2DG=!#(B</p>
+
+ <h2>$B35MW(B</h2>
+
+ <p>$B$3$N%b%8%e!<%k$OHs>o$K@)8B$5$l$?>r7o2<$G!"(B
+ $B$=$l$>$l$N%j%/%(%9%H$K!V$9$Y$F!W$N%j%/%(%9%H$KBP$7$F(B
+ $B0l0U$K7h$^$k$3$H$,J]>Z$5$l$F$$$kKbK!$N%H!<%/%s$rDs6!$7$^$9!#(B
+ $B$3$N0l0U$J<1JL;R$O!"E,@Z$K@_Dj$5$l$?%/%i%9%?$G$OJ#?t$N(B
+ $B%^%7%s$N4V$G$5$($b0l0U$K$J$j$^$9!#$=$l$>$l$N%j%/%(%9%H$KBP$7$F4D6-JQ?t(B
+ <code>UNIQUE_ID</code> $B$K<1JL;R$,@_Dj$5$l$^$9!#(B
+ $B0l0U$J<1JL;R$,JXMx$JM}M3$O$$$m$$$m$"$j$^$9$,!"(B
+ $B$3$N%I%-%e%a%s%H$NL\E*$+$i$O30$l$k$?$a!"$3$3$G$O@bL@$7$^$;$s!#(B</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <p>$B$3$N%b%8%e!<%k$K$O%G%#%l%/%F%#%V$O$"$j$^$;$s!#(B</p>
+
+ <h2>$BM}O@(B</h2>
+
+ <p>$B$^$:$O$8$a$K!"(BApache $B%5!<%P$,(B Unix
+ $B%^%7%s$G$I$N$h$&$KF0:n$r$9$k$+$r4JC1$K@bL@$7$^$9!#(B
+ Unix $B%^%7%s$G$O(B Apache $B$O$$$/$D$+$N;R%W%m%;%9$r:n@.$7!"(B
+ $B$=$N;R%W%m%;%9$,0l$D$:$D%j%/%(%9%H$r=hM}$7$^$9!#$=$l$>$l$N;R%W%m%;%9$O!"(B
+ $B@8B84|4VCf$KJ#?t$N%j%/%(%9%H$r07$&$3$H$,$G$-$^$9!#(B
+ $B$3$N5DO@$G$O;R%W%m%;%94V$G$O0l@Z%G!<%?$r6&M-$7$J$$$3$H$K$7$^$9!#(B
+ $B0J8e!"$3$N;R%W%m%;%9$N$3$H$r(B httpd $B%W%m%;%9$H8F$S$^$9!#(B</p>
+
+ <p>$B$"$J$?$N%&%'%V%5%$%H$K$O$"$J$?$,4IM}$9$k$$$/$D$+$N%^%7%s$,$"$k$H$7$^$9!#(B
+ $B$=$l$i$r$^$H$a$F%/%i%9%?$H8F$V$3$H$K$7$^$9!#$=$l$>$l$N%^%7%s$OJ#?t$N(B
+ Apache $B$r<B9T$9$k$3$H$b$G$-$^$9!#(B
+ $B$3$l$i$9$Y$F$r$^$H$a$?$b$N$,!V1'Ch!W$G$"$k$H9M$($i$l$^$9!#(B
+ $B$$$/$D$+$N2>Dj$N2<$G!"%/%i%9%?$N%^%7%s4V$,$?$/$5$sDL?.$r$9$k$3$H$J$/!"(B
+ $B$3$N1'Ch$NCf$G$=$l$>$l$N%j%/%(%9%H$K0l0U$J<1JL;R$r@8@.$G$-$k$3$H$r<($7$^$9!#(B
+ </p>
+
+ <p>$B%/%i%9%?$K$"$k%^%7%s$O0J2<$NMW5a$r8+$?$5$J$1$l$P$J$j$^$;$s!#(B
+ ($B%^%7%s$,0l$D$@$1$@$H$7$F$b!"(BNTP $B$G;~7W$r9g$o$;$kJ}$,NI$$$G$9!#(B)</p>
+
+ <ul>
+ <li>NTP $B$dB>$N%M%C%H%o!<%/>e$G;~4V$r9g$o$;$k%W%m%H%3%k$K$h$C$F(B
+ $B3F%^%7%s$N;~4V$NF14|$,<h$i$l$F$$$k$3$H!#(B</li>
+
+ <li>$B%b%8%e!<%k$,%[%9%HL>$r0z$$$F0c$&(B IP
+ $B%"%I%l%9$r<u$1<h$k$3$H$,$G$-$k$h$&$K!"(B
+ $B%/%i%9%?$N$=$l$>$l$N%^%7%s$N%[%9%HL>$,0c$&$3$H!#(B</li>
+ </ul>
+
+ <p>$B%*%Z%l!<%F%#%s%0%7%9%F%`$K$*$$$F$O!"(Bpid ($B%W%m%;%9(B ID) $B$,(B
+ 32 $B%S%C%H$NHO0OFb$G$"$k$3$H$r2>Dj$7$^$9!#%*%Z%l!<%F%#%s%0%7%9%F%`$N(B
+ pid $B$,(B 32 $B%S%C%H$rD6$($k>l9g$O!"4JC1$J=$@5$G$O$"$j$^$9$,!"(B
+ $B%3!<%I$rJQ99$9$kI,MW$,$"$j$^$9!#(B</p>
+
+ <p>$B$3$l$i$N2>Dj$,K~$?$5$l$F$$$k$H!"$"$k;~E@$K$*$$$F!"(B
+ $B%/%i%9%?Fb$N$I$N%^%7%s$N$I$N(B httpd
+ $B%W%m%;%9$G$b!"0l0U$KF1Dj$9$k$3$H$,$G$-$^$9!#$3$l$O%^%7%s$N(B IP
+ $B%"%I%l%9$H(B httpd $B%W%m%;%9$N(B pid $B$G==J,$K9T$J$&$3$H$,$G$-$^$9!#(B
+ $B$G$9$+$i!"%j%/%(%9%H$K0l0U$J<1JL;R$r@8@.$9$k$?$a$K$O!"(B
+ $B;~9o$r6hJL$9$kI,MW$,$"$k$@$1$G$9!#(B</p>
+
+ <p>$B;~9o$r6hJL$9$k$?$a$K!"(BUnix $B$N%?%$%`%9%?%s%W(B (UTC $B$N(B 1970 $BG/(B
+ 1 $B7n(B 1 $BF|$+$i$NIC?t(B) $B$H!"(B16 $B%S%C%H$N%+%&%s%?$r;H$$$^$9!#(B
+ $B%?%$%`%9%?%s%W$NN3EY$O0lIC$G$9$N$G!"0lIC4V$N(B 65536
+ $B$^$G$NCM$rI=8=$9$k$?$a$K%+%&%s%?$r;HMQ$7$^$9!#;M$D$NCM(B
+ <em>( ip_addr, pid, time_stamp, counter )</em> $B$G3F(B httpd
+ $B%W%m%;%9$G0lIC$N4V$K(B 65536 $B%j%/%(%9%H$r?t$($"$2$k$3$H$,$G$-$^$9!#(B
+ $B;~4V$,7P$D$H(B pid $B$,:FMxMQ$5$l$k$H$$$&LdBj$,$"$j$^$9$,!"(B
+ $B$3$NLdBj$r2r7h$9$k$?$a$K%+%&%s%?$,;HMQ$5$l$^$9!#(B</p>
+
+ <p>httpd $B$N;R%W%m%;%9$,:n@.$5$l$k$H!"%+%&%s%?$O(B
+ ($B$=$N;~E@$N%^%$%/%mIC(B $B!`(B 10) modulo 65536 $B$G=i4|2=$5$l$^$9(B
+ ($B$3$N<0$O$$$/$D$+$N%7%9%F%`$K$"$k!"%^%$%/%mIC$N(B
+ $B%?%$%^$N2<0L%S%C%H$,0[$J$k$H$$$&LdBj$r2r7h$9$k$?$a$KA*$P$l$^$7$?(B)$B!#(B
+ $B0l0U$J<1JL;R$,@8@.$5$l$?$H$-!";HMQ$5$l$k%?%$%`%9%?%s%W$O(B
+ $B%&%'%V%5!<%P$K%j%/%(%9%H$,E~Ce$7$?;~9o$K$J$j$^$9!#(B
+ $B%+%&%s%?$O<1JL;R$,@8@.$5$l$k$?$S$KA}2C$7$^$9(B
+ ($B$"$U$l$?>l9g$O(B 0 $B$KLa$j$^$9(B)$B!#(B</p>
+
+ <p>$B%+!<%M%k$O%W%m%;%9$r%U%)!<%/$9$k$H!"$=$l$>$l$N%W%m%;%9$N$?$a$K(B
+ pid $B$r@8@.$7$^$9!#(Bpid $B$O7+$jJV$5$l$k$3$H$,5v2D$5$l$F$$$^$9(B
+ (pid $B$NCM$OB?$/$N(B Unix $B$G$O(B 16 $B%S%C%H$G$9$,!"?7$7$$%7%9%F%`$G$O(B
+ 32 $B%S%C%H$K3HD%$5$l$F$$$^$9(B)$B!#(B
+ $B$G$9$+$i!"$"$kDxEY$N;~4V$,7P2a$9$k$HF1$8(B pid $B$,:F$S;HMQ$5$l$^$9!#(B
+ $B$7$+$7!"0lICFb$K:F;HMQ$5$l$J$1$l$P!"(B
+ $B;M$D$NCM$N0l0U@-$OJ]$?$l$^$9!#$D$^$j!"2f!9$O%7%9%F%`$,0lIC4V(B
+ $B$K(B 65536 $B8D$N%W%m%;%9$r5/F0$7$J$$$H2>Dj$7$F$$$^$9(B ($B$$$/$D$+$N(B Unix
+ $B$G$O(B 32768 $B%W%m%;%9$G$9$,!"$=$l$G$9$i$[$H$s$I$"$jF@$J$$$G$7$g$&(B)$B!#(B</p>
+
+ <p>$B2?$i$+$NM}M3$G!"F1$8;~9o$,7+$jJV$5$l$?$H$7$^$7$g$&!#(B
+ $B$D$^$j!"%7%9%F%`$N;~7W$,68$C$F$$$F!"$b$&0lEY2a5n$N;~9o$K$J$C$F$7$^$C$?(B
+ ($B$b$7$/$O?J$_$9$.$F$$$?$H$-$K!"(B
+ $B@5$7$$;~9o$KLa$7$?$?$a$K:F$S>-Mh$N;~9o$K$J$C$F$7$^$C$?(B) $B$H$7$^$9!#(B
+ $B$3$N>l9g!"(Bpid $B$H%?%$%`%9%?%s%W$,:F;HMQ$5$l$k$3$H$,4JC1$K<($5$l$^$9!#(B
+ $B%+%&%s%?=i4|2=MQ$N4X?t$O!"$3$NLdBj$N2sHr$r<j=u$1$7$h$&$HA*Br$5$l$F$$$^$9!#(B
+ $BK\Ev$O%+%&%s%?$N=i4|2=$r$9$k$?$a$K%i%s%@%`$J?t;z$r;H$$$?$$$N$G$9$,!"(B
+ $B$[$H$s$I$N%7%9%F%`$G$O4JC1$K;HMQ$G$-$k?t$OL5$$$3$H$KCm0U$7$F$/$@$5$$(B
+ (<em>$B$9$J$o$A(B</em>$B!"(Brand ()$B$O;H$($^$;$s!#(Brand () $B$K$O(B seed
+ $B$rM?$($kI,MW$,$"$j!"(Bseed $B$K$O;~9o$r;H$($^$;$s!#0lICC10L$G$O!"(B
+ $B$=$N;~9o$O$9$G$K7+$jJV$5$l$F$$$k$+$i$G$9(B)$B!#(B
+ $B$3$l$O!"40`z$JBP:v$G$O$"$j$^$;$s!#(B</p>
+
+ <p>$B$3$NBP:v$O$I$N$/$i$$8z2L$,$"$k$G$7$g$&$+(B?
+ $B$3$3$G$O!"%^%7%s72$NCf$N0l$D$O:GBg$G0lIC$K(B 500
+ $B%j%/%(%9%H$r07$&$H2>Dj$7$^$9(B ($B$3$l$r=q$$$F$$$k;~E@$G$OBEEv$J>e8B$G$9!#(B
+ $BDL>o%7%9%F%`$,$9$k$3$H$O@EE*$J%U%!%$%k$r<h$j$@$9$@$1$G$O$"$j$^$;$s$+$i(B)$B!#(B
+ $B$=$l$r9T$J$&$?$a$K!"$=$N%^%7%s$OJB9T$7$FMh$k%/%i%$%"%s%H$N?t$K(B
+ $B1~$8$??t$N;R%W%m%;%9$rMW5a$7$^$9!#(B
+ $B$7$+$7$J$,$i!"Ha4QE*$K9M$($F!"0l$D$N;R%W%m%;%9$,0lIC$K(B 500
+ $B%j%/%(%9%H$r07$($k$H$7$^$9!#$=$&$9$k$H!"(B($B0lIC$N@:EY$K$*$$$F(B)
+ $B;~9o$,F1$8;~$r7+$jJV$9$H!"$3$N;R%W%m%;%9$,%+%&%s%?$NCM$r:F$S;H$$!"(B
+ $B0l0U@-$,2u$l$k2DG=@-$,(B 1.5% $B$"$j$^$9!#(B
+ $B$3$l$OHs>o$KHa4QE*$JNc$G!"<B@$3&$NCM$G$O!"$[$H$s$I5/$3$j$=$&$K$"$j$^$;$s!#(B
+ $B$=$l$G$b$3$l$,5/$3$k2DG=@-$N$"$k$h$&$J%7%9%F%`$J$i!"(B
+ ($B%W%m%0%i%`%3!<%I$rJT=8$7$F(B)
+ $B%+%&%s%?$r(B 32 $B%S%C%H$K$9$k$N$,NI$$$G$7$g$&!#(B
+ </p>
+
+ <p>$B%5%^!<%?%$%`$K$h$j;~7W$,!VLa$5$l$k!W$3$H$r5$$K$7$F$$$k?M$,(B
+ $B$$$k$+$b$7$l$^$;$s!#$3$3$G;HMQ$5$l$k;~4V$O(B UTC $B$G$"$j!"(B
+ $B$=$l$O!V>o$K!W?J$`$N$G$3$3$G$OLdBj$K$J$j$^$;$s!#(Bx86 $B>e$N(B Unix
+ $B$O$3$N>r7o$rK~$?$9$?$a$KE,@Z$J@_Dj$,I,MW$+$b$7$l$J$$$3$H$K(B
+ $BCm0U$7$F$/$@$5$$!#%^%6!<%\!<%I$N;~7W$O(B UTC $B$K$J$C$F$$$F!"(B
+ $BB>$N;~4V$O$=$3$+$iE,@Z$KJd@5$5$l$k$3$H$r2>Dj$G$-$k$h$&$K(B
+ $B@_Dj$5$l$J$1$l$P$J$j$^$;$s!#$=$N$h$&$J>l9g$G$5$(!"(BNTP
+ $B$r;H$C$F$$$k$J$i$P%j%V!<%H8e$K$9$0@5$7$$(B UTC $B$N;~4V$K$J$k$G$7$g$&!#(B</p>
+
+ <p><code>UNIQUE_ID</code> $B4D6-JQ?t$O(B 112 $B%S%C%H(B (32 $B%S%C%H(B IP
+ $B%"%I%l%9!"(B32 $B%S%C%H(B pid, 32 $B%S%C%H%?%$%`%9%?%s%W!"(B16
+ $B%S%C%H%+%&%s%?$N;M$D$NAH(B) $B$r%"%k%U%!%Y%C%H(B <code>[A-Za-z0-9@-]</code>
+ $B$rMQ$$$F(B MIME $B$N(B base64 $BId9f2=$HF1MM$NJ}K!$K$h$jId9f2=$7!"(B19
+ $B$NJ8;z$r@8@.$9$k$3$H$K$h$j:n@.$5$l$^$9!#(BMIME $B$N(B base64
+ $B$N%"%k%U%!%Y%C%H$O<B:]$O(B <code>[A-Za-z0-9+/]</code> $B$G$9$,!"(B
+ <code>+</code> $B$H(B <code>/</code> $B$H$O(B URL
+ $B$G$OFCJL$JId9f2=$,I,MW$J$N$G!"$"$^$jK>$^$7$/$"$j$^$;$s!#(B
+ $BA4$F$NCM$O%M%C%H%o!<%/%P%$%H%*!<%@$GId9f2=$5$l$^$9$N$G!"(B
+ $BId9f$O0c$C$?%P%$%H%*!<%@$N%"!<%-%F%/%A%c4V$GHf3S2DG=$G$9!#(B
+ $B<B:]$NId9f2=$N=gHV$O(B: $B%?%$%`%9%?%s%W!"(BIP $B%"%I%l%9!"(Bpid,
+ $B%+%&%s%?$G$9!#$3$N=g$K$OL\E*$,$"$j$^$9$,!"(B
+ $B%"%W%j%1!<%7%g%s$OId9f$r2r@O$9$k$Y$-$G$O$J$$$3$H$r6/D4$7$F$*$-$^$9!#(B
+ $B%"%W%j%1!<%7%g%s$OId9f2=$5$l$?(B <code>UNIQUE_ID</code>
+ $BA4BN$rF)2aE*$J%H!<%/%s$H$7$F07$&$Y$-$G$9!#(B
+ <code>UNIQUE_ID</code> $B$OB>$N(B <code>UNIQUE_ID</code>
+ $B$H$NEy2A@-$rD4$Y$k$?$a$@$1$K$N$_;HMQ$G$-$^$9!#(B</p>
+
+ <p>$B$3$N=gHV$O>-Mh!"4{B8$N(B <code>UNIQUE_ID</code>
+ $B$N%G!<%?%Y!<%9$H$N>WFM$r?4G[$9$k$3$H$J$/Id9f$rJQ99$9$k$3$H$,(B
+ $B2DG=$K$J$k$h$&$KA*Br$7$F$$$^$9!#(B
+ $B?7$7$$Id9f$O%?%$%`%9%?%s%W$r:G=i$NMWAG$H$7$F;D$9$N$,K>$^$7$/!"(B
+ $B$=$l0J30$OF1$8%"%k%U%!%Y%C%H$H%S%C%HD9$r;H$&$3$H$,$G$-$^$9!#(B
+ $B%?%$%`%9%?%s%W$OK\<AE*$KA}2C7ONs$G$9$N$G!"(B
+ $B%/%i%9%?$NA4$F$N%^%7%s$,%j%/%(%9%H$H%5!<%P5!G=$rDd;_$7$F!"(B
+ $B8E$$Id9f2=J}<0$r;HMQ$9$k$N$r$d$a$k(B<em>$B%U%i%0IC(B</em>$B$,$"$l$P==J,$G$9!#(B
+ $B$=$N8e$O!"%j%/%(%9%H$r:F3+$7!"(B
+ $B?7$7$$Id9f$rH/9T$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B</p>
+
+ <p>$B2f!9$O$3$l$,!"(B
+ $B$3$NLdBj$K$*$1$kHf3SE*0\?"@-$N9b$$2r7hK!$@$H9M$($F$$$^$9!#(B
+ Windows NT $B$N$h$&$K!"%9%l%C%I(Bid $B$r(B ID $B$KDI2C$7$F!"(B24 $BJ8;z$N(B
+ UNIQUE_ID $B$N(B 4 $BG\$K$"$?$k(B 144-bit (32 $B%S%C%H$N(B tid $B$r4^$`(B) $B$N(B ID
+ $B$r:n$j=P$9$h$&$J%^%k%A%9%l%C%I%7%9%F%`MQ$K3HD%$9$k$3$H$,$G$-$^$9!#(B
+ $B>-Mh$N(B ID $B$OI,MW$K1~$8$FD9$/$9$k$3$H$,$G$-$^$9$N$G!"@8@.$5$l$?(B ID
+ $B$O<B<A>e!"L58B$KM-8z$G$9!#$^$?!"%/%i%9%?$N%^%7%s4V$NDL?.$b;v<B>eI,MW$J$/(B
+ (NTP $B$K$h$kF14|$N$_$,I,MW$G!"$3$l$O%*!<%P%X%C%I$O$"$^$j$"$j$^$;$s(B)$B!"(Bhttpd
+ $B%W%m%;%94V$NDL?.$bI,MW$"$j$^$;$s(B ($BDL?.$O%+!<%M%k$K$h$j3d$jEv$F$i$l$?(B
+ pid $B$NCM$K$h$j0EL[$NFb$K9T$J$o$F$$$^$9(B)$B!#(B
+ $B$5$i$K8B$i$l$?>u672<$G$O!"(BID $B$O$5$i$KC;$/$9$k$3$H$,$G$-$^$9$,!"(B
+ $B$h$jB?$/$N>pJs$r2>Dj$9$kI,MW$,$G$F$-$^$9(B ($BNc$($P!"(B32 $B%S%C%H(B
+ IP $B%"%I%l%9$O$I$N%5%$%H$K$*$$$F$b2a>j$J>pJs$G$9$,!"(B
+ $B$=$l$NBe$o$j$K$J$k0\?"@-$N$"$k$b$N$O$"$j$^$;$s(B)$B!#(B
+ $B$3$N%b%8%e!<%k$O!"(BIPv6 $B%"%I%l%9A4BN$r4^$`$h$&$K$b3HD%$G$-$^$9$,!"(B
+ $B$[$H$s$I$9$Y$F$N%5!<%P!<$K$H$C$F$O2a>j$J>pJs$G$9!#(B</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html
index a692bf76adb..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html
@@ -1,150 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache module mod_userdir</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">Module mod_userdir</h1>
-
- <p>This module provides for user-specific directories.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a>
- mod_userdir.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- userdir_module</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#userdir">UserDir</a></li>
- </ul>
- <hr />
-
- <h2><a id="userdir" name="userdir">UserDir</a> directive</h2>
-
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> UserDir
- <em>directory-filename</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>UserDir
- public_html</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config, virtual
- host<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> Base<br />
- <a href="directive-dict.html#Module"
- rel="Help"><strong>Module:</strong></a> mod_userdir<br />
- <a href="directive-dict.html#Compatibility"
- rel="Help"><strong>Compatibility:</strong></a> All forms except
- the <code>UserDir public_html</code> form are only available in
- Apache 1.1 or above. Use of the <samp>enabled</samp> keyword,
- or <samp>disabled</samp> with a list of usernames, is only
- available in Apache 1.3 and above.
-
- <p>The UserDir directive sets the real directory in a user's
- home directory to use when a request for a document for a user
- is received. <em>Directory-filename</em> is one of the
- following:</p>
-
- <ul>
- <li>The name of a directory or a pattern such as those shown
- below.</li>
-
- <li>The keyword <samp>disabled</samp>. This turns off
- <em>all</em> username-to-directory translations except those
- explicitly named with the <samp>enabled</samp> keyword (see
- below).</li>
-
- <li>The keyword <samp>disabled</samp> followed by a
- space-delimited list of usernames. Usernames that appear in
- such a list will <em>never</em> have directory translation
- performed, even if they appear in an <samp>enabled</samp>
- clause.</li>
-
- <li>The keyword <samp>enabled</samp> followed by a
- space-delimited list of usernames. These usernames will have
- directory translation performed even if a global disable is
- in effect, but not if they also appear in a
- <samp>disabled</samp> clause.</li>
- </ul>
-
- <p>If neither the <samp>enabled</samp> nor the
- <samp>disabled</samp> keywords appear in the
- <samp>Userdir</samp> directive, the argument is treated as a
- filename pattern, and is used to turn the name into a directory
- specification. A request for
- <code>http://www.foo.com/~bob/one/two.html</code> will be
- translated to:</p>
-<pre>
-UserDir public_html -&gt; ~bob/public_html/one/two.html
-UserDir /usr/web -&gt; /usr/web/bob/one/two.html
-UserDir /home/*/www -&gt; /home/bob/www/one/two.html
-</pre>
-
- <p>The following directives will send redirects to the
- client:</p>
-<pre>
-UserDir http://www.foo.com/users -&gt; http://www.foo.com/users/bob/one/two.html
-UserDir http://www.foo.com/*/usr -&gt; http://www.foo.com/bob/usr/one/two.html
-UserDir http://www.foo.com/~*/ -&gt; http://www.foo.com/~bob/one/two.html
-</pre>
-
- <blockquote>
- <strong>Be careful when using this directive; for instance,
- <samp>"UserDir&nbsp;./"</samp> would map
- <samp>"/~root"</samp> to <samp>"/"</samp> - which is probably
- undesirable. If you are running Apache 1.3 or above, it is
- strongly recommended that your configuration include a
- "<samp>UserDir&nbsp;disabled&nbsp;root</samp>" declaration.
- See also the <a
- href="core.html#directory">&lt;Directory&gt;</a> directive
- and the <a href="../misc/security_tips.html">Security
- Tips</a> page for more information.</strong>
- </blockquote>
-
-<p>Additional examples:</p>
-
-<p>To allow a few users to have <code>UserDir</code> directories, but
-not anyone else, use the following:</p>
-
-<pre>
-UserDir disabled
-UserDir enabled user1 user2 user3
-</pre>
-
-<p>To allow most users to have <code>UserDir</code> directories, but
-deny this to a few, use the following:</p>
-
-<pre>
-UserDir enabled
-UserDir disabled user4 user5 user6
-</pre>
-
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.en b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.en
index a692bf76adb..6af06dfe064 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.en
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.en
@@ -148,3 +148,153 @@ UserDir disabled user4 user5 user6
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_userdir</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_userdir</h1>
+
+ <p>This module provides for user-specific directories.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_userdir.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ userdir_module</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#userdir">UserDir</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="userdir" name="userdir">UserDir</a> directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> UserDir
+ <em>directory-filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>UserDir
+ public_html</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_userdir<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> All forms except
+ the <code>UserDir public_html</code> form are only available in
+ Apache 1.1 or above. Use of the <samp>enabled</samp> keyword,
+ or <samp>disabled</samp> with a list of usernames, is only
+ available in Apache 1.3 and above.
+
+ <p>The UserDir directive sets the real directory in a user's
+ home directory to use when a request for a document for a user
+ is received. <em>Directory-filename</em> is one of the
+ following:</p>
+
+ <ul>
+ <li>The name of a directory or a pattern such as those shown
+ below.</li>
+
+ <li>The keyword <samp>disabled</samp>. This turns off
+ <em>all</em> username-to-directory translations except those
+ explicitly named with the <samp>enabled</samp> keyword (see
+ below).</li>
+
+ <li>The keyword <samp>disabled</samp> followed by a
+ space-delimited list of usernames. Usernames that appear in
+ such a list will <em>never</em> have directory translation
+ performed, even if they appear in an <samp>enabled</samp>
+ clause.</li>
+
+ <li>The keyword <samp>enabled</samp> followed by a
+ space-delimited list of usernames. These usernames will have
+ directory translation performed even if a global disable is
+ in effect, but not if they also appear in a
+ <samp>disabled</samp> clause.</li>
+ </ul>
+
+ <p>If neither the <samp>enabled</samp> nor the
+ <samp>disabled</samp> keywords appear in the
+ <samp>Userdir</samp> directive, the argument is treated as a
+ filename pattern, and is used to turn the name into a directory
+ specification. A request for
+ <code>http://www.foo.com/~bob/one/two.html</code> will be
+ translated to:</p>
+<pre>
+UserDir public_html -&gt; ~bob/public_html/one/two.html
+UserDir /usr/web -&gt; /usr/web/bob/one/two.html
+UserDir /home/*/www -&gt; /home/bob/www/one/two.html
+</pre>
+
+ <p>The following directives will send redirects to the
+ client:</p>
+<pre>
+UserDir http://www.foo.com/users -&gt; http://www.foo.com/users/bob/one/two.html
+UserDir http://www.foo.com/*/usr -&gt; http://www.foo.com/bob/usr/one/two.html
+UserDir http://www.foo.com/~*/ -&gt; http://www.foo.com/~bob/one/two.html
+</pre>
+
+ <blockquote>
+ <strong>Be careful when using this directive; for instance,
+ <samp>"UserDir&nbsp;./"</samp> would map
+ <samp>"/~root"</samp> to <samp>"/"</samp> - which is probably
+ undesirable. If you are running Apache 1.3 or above, it is
+ strongly recommended that your configuration include a
+ "<samp>UserDir&nbsp;disabled&nbsp;root</samp>" declaration.
+ See also the <a
+ href="core.html#directory">&lt;Directory&gt;</a> directive
+ and the <a href="../misc/security_tips.html">Security
+ Tips</a> page for more information.</strong>
+ </blockquote>
+
+<p>Additional examples:</p>
+
+<p>To allow a few users to have <code>UserDir</code> directories, but
+not anyone else, use the following:</p>
+
+<pre>
+UserDir disabled
+UserDir enabled user1 user2 user3
+</pre>
+
+<p>To allow most users to have <code>UserDir</code> directories, but
+deny this to a few, use the following:</p>
+
+<pre>
+UserDir enabled
+UserDir disabled user4 user5 user6
+</pre>
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.html b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.html
index b896dffb0ef..59c5e7bfca6 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.html
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.html
@@ -152,3 +152,157 @@ UserDir disabled user4 user5 user6
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache module mod_userdir</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">Module mod_userdir</h1>
+
+ <p>This module provides for user-specific directories.</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>Source File:</strong></a>
+ mod_userdir.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>Module Identifier:</strong></a>
+ userdir_module</p>
+
+ <h2>Directives</h2>
+
+ <ul>
+ <li><a href="#userdir">UserDir</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="userdir" name="userdir">UserDir</a> directive</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> UserDir
+ <em>directory-filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>UserDir
+ public_html</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> server config, virtual
+ host<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_userdir<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> All forms except
+ the <code>UserDir public_html</code> form are only available in
+ Apache 1.1 or above. Use of the <samp>enabled</samp> keyword,
+ or <samp>disabled</samp> with a list of usernames, is only
+ available in Apache 1.3 and above.
+
+ <p>The UserDir directive sets the real directory in a user's
+ home directory to use when a request for a document for a user
+ is received. <em>Directory-filename</em> is one of the
+ following:</p>
+
+ <ul>
+ <li>The name of a directory or a pattern such as those shown
+ below.</li>
+
+ <li>The keyword <samp>disabled</samp>. This turns off
+ <em>all</em> username-to-directory translations except those
+ explicitly named with the <samp>enabled</samp> keyword (see
+ below).</li>
+
+ <li>The keyword <samp>disabled</samp> followed by a
+ space-delimited list of usernames. Usernames that appear in
+ such a list will <em>never</em> have directory translation
+ performed, even if they appear in an <samp>enabled</samp>
+ clause.</li>
+
+ <li>The keyword <samp>enabled</samp> followed by a
+ space-delimited list of usernames. These usernames will have
+ directory translation performed even if a global disable is
+ in effect, but not if they also appear in a
+ <samp>disabled</samp> clause.</li>
+ </ul>
+
+ <p>If neither the <samp>enabled</samp> nor the
+ <samp>disabled</samp> keywords appear in the
+ <samp>Userdir</samp> directive, the argument is treated as a
+ filename pattern, and is used to turn the name into a directory
+ specification. A request for
+ <code>http://www.foo.com/~bob/one/two.html</code> will be
+ translated to:</p>
+<pre>
+UserDir public_html -&gt; ~bob/public_html/one/two.html
+UserDir /usr/web -&gt; /usr/web/bob/one/two.html
+UserDir /home/*/www -&gt; /home/bob/www/one/two.html
+</pre>
+
+ <p>The following directives will send redirects to the
+ client:</p>
+<pre>
+UserDir http://www.foo.com/users -&gt; http://www.foo.com/users/bob/one/two.html
+UserDir http://www.foo.com/*/usr -&gt; http://www.foo.com/bob/usr/one/two.html
+UserDir http://www.foo.com/~*/ -&gt; http://www.foo.com/~bob/one/two.html
+</pre>
+
+ <blockquote>
+ <strong>Be careful when using this directive; for instance,
+ <samp>"UserDir&nbsp;./"</samp> would map
+ <samp>"/~root"</samp> to <samp>"/"</samp> - which is probably
+ undesirable. If you are running Apache 1.3 or above, it is
+ strongly recommended that your configuration include a
+ "<samp>UserDir&nbsp;disabled&nbsp;root</samp>" declaration.
+ See also the <a
+ href="core.html#directory">&lt;Directory&gt;</a> directive
+ and the <a href="../misc/security_tips.html">Security
+ Tips</a> page for more information.</strong>
+ </blockquote>
+
+<p>Additional examples:</p>
+
+<p>To allow a few users to have <code>UserDir</code> directories, but
+not anyone else, use the following:</p>
+
+<pre>
+UserDir disabled
+UserDir enabled user1 user2 user3
+</pre>
+
+<p>To allow most users to have <code>UserDir</code> directories, but
+deny this to a few, use the following:</p>
+
+<pre>
+UserDir enabled
+UserDir disabled user4 user5 user6
+</pre>
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis
index 5e382b978d4..151e0dcf288 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/mod_userdir.html.ja.jis
@@ -134,3 +134,139 @@ UserDir disabled user4 user5 user6
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+
+ <title>Apache module mod_userdir</title>
+ </head>
+ <!-- English revision: 1.20 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">mod_userdir $B%b%8%e!<%k(B</h1>
+
+ <p>$B$3$N%b%8%e!<%k$O!"%f!<%6$N%[!<%`%G%#%l%/%H%j$K%"%/%;%9$9$k5!G=$rDs6!$7$^$9(B</p>
+
+ <p><a href="module-dict.html#Status"
+ rel="Help"><strong>$B%9%F!<%?%9(B:</strong></a> Base<br />
+ <a href="module-dict.html#SourceFile"
+ rel="Help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ mod_userdir.c<br />
+ <a href="module-dict.html#ModuleIdentifier"
+ rel="Help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ userdir_module</p>
+
+ <h2>$B%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a href="#userdir">UserDir</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="userdir" name="userdir">UserDir</a> $B%G%#%l%/%F%#%V(B</h2>
+
+ <a href="directive-dict.html#Syntax"
+ rel="Help"><strong>Syntax:</strong></a> UserDir
+ <em>directory-filename</em><br />
+ <a href="directive-dict.html#Default"
+ rel="Help"><strong>Default:</strong></a> <code>UserDir
+ public_html</code><br />
+ <a href="directive-dict.html#Context"
+ rel="Help"><strong>Context:</strong></a> $B%5!<%P@_Dj%U%!%$%k(B, $B%P!<%A%c%k%[%9%H(B<br />
+ <a href="directive-dict.html#Status"
+ rel="Help"><strong>Status:</strong></a> Base<br />
+ <a href="directive-dict.html#Module"
+ rel="Help"><strong>Module:</strong></a> mod_userdir<br />
+ <a href="directive-dict.html#Compatibility"
+ rel="Help"><strong>Compatibility:</strong></a> <code>UserDir public_html</code>
+ $B$H$$$C$?7A<00J30$O!"(BApache 1.1 $B0J9_$G$N$_M-8z$G$9!#(B
+ <samp>enabled</samp> $B$d(B <samp>disabled</samp> $B$H$$$&%-!<%o!<%I$N5-=R5Z$S!"(B
+ $B%f!<%6L>$NNs5s$K4X$7$F$O!"(BApache 1.3 $B0J9_$G$N$_BP1~$7$F$$$^$9!#(B
+
+ <p>UserDir $B%G%#%l%/%F%#%V$O!"%f!<%6$N%I%-%e%a%s%H$KBP$9$kMW5a$,$"$C$?:]$K;HMQ$9$k!"(B
+ $B%f!<%6$N%[!<%`%G%#%l%/%H%j$NCf$N<B:]$N%G%#%l%/%H%j$NL>A0$r;XDj$7$^$9!#(B
+ <em>directory-filename</em> $B$K$O!"0J2<$N$I$l$+$r;XDj$7$^$9!#(B</p>
+
+ <ul>
+ <li>$B%G%#%l%/%H%jL>$+!"0J2<$K=R$Y$k7A<0$N%Q%?!<%s!#(B</li>
+
+ <li><samp>disabled</samp> $B$H$$$&%-!<%o!<%I!#(B<br />
+ $B$3$N@_Dj$O!"(B<samp>enabled</samp> $B%-!<%o!<%I(B ($B0J2<;2>H(B) $B$K$*$$$F;XDj$5$l$?%f!<%60J30!"(B
+ <em>$BA4$F(B</em>$B$N%f!<%6L>$r%G%#%l%/%H%j$KJQ49$7$J$$$h$&$K$7$^$9!#(B</li>
+
+ <li><samp>disabled</samp> $B$H$$$&%-!<%o!<%I$H!"(B
+ $B$=$N8e$K%9%Z!<%96h@Z$j$G%f!<%6L>$rNs5s!#(B<br />
+ $B;XDj$5$l$?%f!<%6$O!"(B<samp>enabled</samp> $B$K$*$$$F5-=R$,$5$l$F$$$?$H$7$F$b!"(B
+ $B%G%#%l%/%H%j$X$NJQ49$,(B<em>$B$5$l$J$/(B</em>$B$J$j$^$9!#(B</li>
+
+ <li><samp>enabled</samp> $B$H$$$&%-!<%o!<%I$H!"%9%Z!<%96h@Z$j$G%f!<%6L>$rNs5s(B<br />
+ $B;XDj$5$l$?%f!<%6$O!"JQ49$,$5$l$J$$$h$&$K@_Dj$5$l$F$$$?$H$7$F$b!"(B
+ $B%G%#%l%/%H%j$X$NJQ49$r9T$$$^$9!#(B
+ $B$?$@$7!"(B<samp>disabled</samp> $B$K$*$$$FL@5-$5$l$F$$$k>l9g$K$O!"JQ49$,$J$5$l$^$;$s!#(B</li>
+ </ul>
+
+ <p><samp>enabled</samp> $B$d(B <samp>disabled</samp> $B$H$$$C$?%-!<%o!<%I$GL5$$>l9g$K$O!"(B
+ $B%U%!%$%kL>$N%Q%?!<%s$d$H$7$F07$o$l!"L>A0$+$i%G%#%l%/%H%j$X$NJQ49$r;XDj$9$k$3$H$,$G$-$^$9!#(B
+ <code>http://www.foo.com/~bob/one/two.html</code> $B$X$N(BURL$B$N>l9g$NJQ49$K$D$$$F8+$F$_$^$9!#(B</p>
+
+<pre>
+UserDir public_html -&gt; ~bob/public_html/one/two.html
+UserDir /usr/web -&gt; /usr/web/bob/one/two.html
+UserDir /home/*/www -&gt; /home/bob/www/one/two.html
+</pre>
+
+ <p>$B0J2<$N$h$&$K%G%#%l%/%F%#%V$r@_Dj$9$k$H!"%/%i%$%"%s%H$X$O%j%@%$%l%/%H$,Aw=P$5$l$^$9!#(B</p>
+<pre>
+UserDir http://www.foo.com/users -&gt; http://www.foo.com/users/bob/one/two.html
+UserDir http://www.foo.com/*/usr -&gt; http://www.foo.com/bob/usr/one/two.html
+UserDir http://www.foo.com/~*/ -&gt; http://www.foo.com/~bob/one/two.html
+</pre>
+
+ <blockquote>
+ <strong>
+ $B$3$N%G%#%l%/%F%#%V$rMxMQ$9$k:]!"(B<samp>"UserDir&nbsp;./"</samp> $B$H$$$C$?@_Dj$r$9$k$H!"(B
+ <samp>"/~root"</samp> $B$O(B <samp>"/"</samp> $B$K%^%C%T%s%0$5$l$k$3$H$K5$$r$D$1$F$/$@$5$$!#(B
+ $B$3$l$OHs>o$KK>$^$7$/$"$j$^$;$s!#(B
+ Apache 1.3 $B0J9_$rMxMQ$7$F$$$k$N$G$"$l$P!"(B"UserDir disabled root" $B$H$$$&5-=R$r@_Dj%U%!%$%kCf$K4^$a$k$3$H$r!"(B
+ $B6/$/?d>)$7$^$9!#(B
+ <a
+ href="core.html#directory">&lt;Directory&gt;</a> $B%G%#%l%/%F%#%V$d!"(B
+ <a href="../misc/security_tips.html">$B%;%-%e%j%F%#$K4X$9$k3P=q(B</a>$B$b;2>H$7$F$/$@$5$$!#(B</strong>
+ </blockquote>
+
+<p>$B$=$NB>$N@_DjNc(B:</p>
+
+<p>$B>.?t$N%f!<%6$K$O(B <code>UserDir</code> $B%G%#%l%/%H%j$rMxMQ$5$;$k$b$N$N!";D$j$N%f!<%6$K$O$5$;$?$/$J$$>l9g(B:</p>
+
+<pre>
+UserDir disabled
+UserDir enabled user1 user2 user3
+</pre>
+
+<p>$BBgItJ,$N%f!<%6$K$O(B <code>UserDir</code> $B%G%#%l%/%H%j$rMxMQ$5$;!"0lIt$N%f!<%6$N$_L58z$K$9$k>l9g(B:</p>
+
+<pre>
+UserDir enabled
+UserDir disabled user4 user5 user6
+</pre>
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/mod/module-dict.html.ja.jis b/usr.sbin/httpd/htdocs/manual/mod/module-dict.html.ja.jis
index bc4519c9753..ba47be9c99c 100644
--- a/usr.sbin/httpd/htdocs/manual/mod/module-dict.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/mod/module-dict.html.ja.jis
@@ -1,145 +1,124 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
- <head>
- <title>Apache $B%b%8%e!<%k$N2r@b$G;HMQ$9$kMQ8l(B
- </title>
- </head>
-<!-- English revision: 1.1 -->
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
- >
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache $B%b%8%e!<%k$N2r@b$G;HMQ$9$kMQ8l(B</title>
+
+ </head>
+ <!-- English revision: 1.2 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
- <h1 align="CENTER">Apache $B%b%8%e!<%k$N2r@b$G;HMQ$9$kMQ8l(B</h1>
-
- <p>
- Apache $B%b%8%e!<%k$K$D$$$F$N2r@b$O!"$$$:$l$b0J2<$N6&DL$N=q<0$G5-=R$5$l$F$$$^$9(B:
- </p>
- <dl>
- <dd><a
- href="#Status"
- rel="Help"
- ><strong>$B%9%F!<%?%9(B:</strong></a> <em>status</em>
- <br>
- <a
- href="#SourceFile"
- rel="Help"
- ><Strong>$B%=!<%9%U%!%$%k(B:</strong></a> <em>source-file</em>
- <br>
- <a
- href="#ModuleIdentifier"
- rel="Help"
- ><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a> <em>module-identifier</em>
- <br>
- <a
- href="#Compatibility"
- rel="Help"
- ><strong>$B8_49@-(B:</strong></a> <em>compatibility notes</em>
- </dd>
- </dl>
- <p>
- $B$3$N%I%-%e%a%s%H$G$O$=$l$>$l$NB0@-$r@bL@$7$F$$$^$9!#(B
- $B<h$jF@$k$9$Y$F$NCM$b5-=R$7$F$$$^$9!#(B
- </p>
-
- <h2>$B%b%8%e!<%k$NMQ8l(B</h2>
- <ul>
- <li><a href="#Status">$B%9%F!<%?%9(B</a>
- </li>
- <li><a href="#SourceFile">$B%=!<%9%U%!%$%k(B</a>
- </li>
- <li><a href="#ModuleIdentifier">$B%b%8%e!<%k<1JL;R(B</a>
- </li>
- <li><a href="#Compatibility">$B8_49@-(B</a>
- </li>
- </ul>
-
- <hr>
- <h2><a name="Status">$B%9%F!<%?%9(B</a></h2>
- <p>
- $B$3$l$O!"$=$N%b%8%e!<%k$,(B Apache $B%&%'%V%5!<%P$K$I$l$/$i$$L)@\$KAH$_9~$^$l$F$$$k$+$r(B
- $B<($7$^$9!#8@$$49$($l$P!"%b%8%e!<%k$rAH$_9~$_!"$=$N5!G=$rMxMQ$9$k$?$a$K!"(B
- $B%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$$H$$$&$3$H$r<($7$^$9!#(B
- $B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:
- </p>
- <dl>
- <dt><strong>Base</strong>
- </dt>
- <dd>$B%9%F!<%?%9$,(B &quot;Base&quot; $B$N%b%8%e!<%k$O!"%G%U%)%k%H$G%3%s%Q%$%k$5$l$F(B
- $B%5!<%P$KFI$_9~$^$l$^$9!#$o$6$o$6@_Dj$+$i%b%8%e!<%k$r:o=|$7$F$$$J$$8B$j!"(B
- $BDL>o$OMxMQ2DG=$G$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>Extension</strong>
- </dt>
- <dd>$B%9%F!<%?%9$,(B &quot;Extension&quot; $B$N%b%8%e!<%k$O!"%G%U%)%k%H$G$O(B
- $B%3%s%Q%$%k$5$l$:!"%5!<%P$K$bFI$_9~$^$l$^$;$s!#(B
- $B$=$N%b%8%e!<%k$H$=$N5!G=$rM-8z$K$9$k$K$O!"%5!<%P$r%S%k%I$9$k$?$a$N@_Dj$r(B
- $BJQ99$7$F!"(BApache $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B
- <p>
- </p>
- </dd>
- <dt><strong>Experimental</strong>
- </dt>
- <dd>$B%9%F!<%?%9$,(B &quot;Experimental&quot; $B$N%b%8%e!<%k$O!"(B
- Apache $BG[I[J*$KF1:-$5$l$F$$$^$9$,!";HMQ$9$k>l9g$O<+8J@UG$$G9T$J$&(B
- $BI,MW$,$"$j$^$9!#(B
- $B$=$N%b%8%e!<%k$O!"%I%-%e%a%s%H$b40@.$K8~$1$F:n@.Cf$G$9$7!"(B
- $B%5%]!<%H$5$l$k$F$$$k$H$O8B$j$^$;$s!#(B
- <p>
+
+ <h1 align="center">Apache $B%b%8%e!<%k$N2r@b$G;HMQ$9$kMQ8l(B</h1>
+
+ <p>Apache $B%b%8%e!<%k$K$D$$$F$N2r@b$O!"(B
+ $B$$$:$l$b0J2<$N6&DL$N=q<0$G5-=R$5$l$F$$$^$9(B:</p>
+
+ <dl>
+ <dd><a href="#status" rel="help"><strong>$B%9%F!<%?%9(B:</strong></a>
+ <em>status</em><br />
+ <a href="#sourcefile" rel="help"><strong>$B%=!<%9%U%!%$%k(B:</strong></a>
+ <em>source-file</em><br />
+ <a href="#moduleidentifier"
+ rel="help"><strong>$B%b%8%e!<%k<1JL;R(B:</strong></a>
+ <em>module-identifier</em><br />
+ <a href="#compatibility"
+ rel="help"><strong>$B8_49@-(B:</strong></a>
+ <em>compatibility notes</em></dd>
+ </dl>
+ <p>$B$3$N%I%-%e%a%s%H$G$O$=$l$>$l$NB0@-$r@bL@$7$F$$$^$9!#(B
+ $B<h$jF@$k$9$Y$F$NCM$b5-=R$7$F$$$^$9!#(B</p>
+
+ <h2>$B%b%8%e!<%k$NMQ8l(B</h2>
+
+ <ul>
+ <li><a href="#status">$B%9%F!<%?%9(B</a></li>
+
+ <li><a href="#sourcefile">$B%=!<%9%U%!%$%k(B</a></li>
+
+ <li><a href="#moduleidentifier">$B%b%8%e!<%k<1JL;R(B</a></li>
+
+ <li><a href="#compatibility">$B8_49@-(B</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="status" name="status">$B%9%F!<%?%9(B</a></h2>
+
+ <p>$B$3$l$O!"$=$N%b%8%e!<%k$,(B Apache
+ $B%&%'%V%5!<%P$K$I$l$/$i$$L)@\$KAH$_9~$^$l$F$$$k$+$r<($7$^$9!#(B
+ $B8@$$49$($l$P!"%b%8%e!<%k$rAH$_9~$_!"$=$N5!G=$rMxMQ$9$k$?$a$K!"(B
+ $B%5!<%P$r:F%3%s%Q%$%k$9$kI,MW$,$"$k$+$b$7$l$J$$$H$$$&$3$H$r<($7$^$9!#(B
+ $B$3$NB0@-$,<h$jF@$kCM$O0J2<$N$b$N$G$9(B:</p>
+ <dl>
+ <dt><strong>Base</strong></dt>
+
+ <dd>$B%9%F!<%?%9$,(B &quot;Base&quot;
+ $B$N%b%8%e!<%k$O!"%G%U%)%k%H$G%3%s%Q%$%k$5$l$F$o$6$o$6@_Dj$+$i(B
+ $B%b%8%e!<%k$r:o=|$7$F$$$J$$8B$j!"DL>o$OMxMQ2DG=$G$9!#(B
+ </dd>
+
+ <dt><strong>Extension</strong></dt>
+
+ <dd>$B%9%F!<%?%9$,(B &quot;Extension&quot; $B$N%b%8%e!<%k$O!"(B
+ $B%G%U%)%k%H$G$O%3%s%Q%$%k$5$l$:!"%5!<%P$K$bFI$_9~$^$l$^$;$s!#(B
+ $B$=$N%b%8%e!<%k$H$=$N5!G=$rM-8z$K$9$k$K$O!"(B
+ $B%5!<%P$r%S%k%I$9$k$?$a$N@_Dj$rJQ99$7$F!"(BApache
+ $B$r:F%3%s%Q%$%k$9$kI,MW$,$"$j$^$9!#(B</dd>
+ <dt><strong>Experimental</strong></dt>
+
+ <dd>$B%9%F!<%?%9$,(B &quot;Experimental&quot; $B$N%b%8%e!<%k$O!"(B
+ Apache $BG[I[J*$KF1:-$5$l$F$$$^$9$,!"(B
+ $B;HMQ$9$k>l9g$O<+8J@UG$$G9T$J$&I,MW$,$"$j$^$9!#(B
+ $B$=$N%b%8%e!<%k$O!"%I%-%e%a%s%H$b40@.$K8~$1$F:n@.Cf$G$9$7!"(B
+ $B%5%]!<%H$5$l$k$F$$$k$H$O8B$j$^$;$s!#(B</dd>
+ <dt><strong>External</strong></dt>
+
+ <dd>$B%9%F!<%?%9$,(B &quot;External&quot; $B$N%b%8%e!<%k$O!"4pK\(B Apache
+ $BG[I[$KF1:-$5$l$^$;$s(B (&quot;$B%5!<%I%Q!<%F%#!<%b%8%e!<%k(B&quot;)$B!#(B
+ $B$=$N$?$a!"2f!9$K@UG$$O$"$j$^$;$s$7!"(B
+ $B$=$N%b%8%e!<%k$N%5%]!<%H$b$7$F$$$^$;$s!#(B</dd>
+ </dl>
+ <hr />
+
+ <h2><a id="sourcefile" name="sourcefile">$B%=!<%9%U%!%$%k(B</a></h2>
+
+ <p>$B$3$l$OC1=c$K!"(B
+ $B$=$N%b%8%e!<%k$KI,MW$J%3!<%I$r4^$`%=!<%9%U%!%$%k$NL>A0$rNs5s$7$?$b$N$G$9!#(B
+ $B$3$l$O!"(B<a href="core.html#ifmodule"><code>&lt;IfModule&gt;</code></a>
+ $B%G%#%l%/%F%#%V$G;HMQ$5$l$kL>A0$G$b$"$j$^$9!#(B
</p>
- </dd>
- <dt><strong>External</strong>
- </dt>
- <dd>$B%9%F!<%?%9$,(B &quot;External&quot; $B$N%b%8%e!<%k$O!"4pK\(B Apache $BG[I[$KF1:-$5$l$^$;$s(B
- (&quot;$B%5!<%I%Q!<%F%#!<%b%8%e!<%k(B&quot;)$B!#(B
- $B$=$N$?$a!"2f!9$K@UG$$O$"$j$^$;$s$7!"$=$N%b%8%e!<%k$N%5%]!<%H$b$7$F$$$^$;$s!#(B
- <p>
+ <hr />
+
+ <h2><a id="moduleidentifier"
+ name="moduleidentifier">$B%b%8%e!<%k<1JL;R(B</a></h2>
+
+ <p>$B$3$NJ8;zNs$O!"%b%8%e!<%k$NF0E*FI$_9~$_$r9T$J$&$H$-$K;HMQ$9$k(B <a
+ href="mod_so.html#loadmodule">LoadModule</a>
+ $B%G%#%l%/%F%#%V$K$*$$$F;HMQ$5$l$k%b%8%e!<%k$N<1JL;R$G$9!#(B
+ $B>\$7$/=q$/$H!"%=!<%9%U%!%$%kFb$N(B module $B%?%$%W$N30ItJQ?t$NL>A0$G$9!#(B
</p>
- </dd>
- </dl>
-
- <hr>
- <h2><a name="SourceFile">$B%=!<%9%U%!%$%k(B</a></h2>
- <p>
- $B$3$l$OC1=c$K!"$=$N%b%8%e!<%k$KI,MW$J%3!<%I$r4^$`%=!<%9%U%!%$%k$N(B
- $BL>A0$rNs5s$7$?$b$N$G$9!#(B
- $B$3$l$O!"(B<a
- href="core.html#ifmodule"><code>&lt;IfModule&gt;</code></a> $B%G%#%l%/%F%#%V(B
- $B$G;HMQ$5$l$kL>A0$G$b$"$j$^$9!#(B
- </p>
-
- <hr>
- <h2><a name="ModuleIdentifier">$B%b%8%e!<%k<1JL;R(B</a></h2>
- <p>
- $B$3$NJ8;zNs$O!"%b%8%e!<%k$NF0E*FI$_9~$_$r9T$J$&$H$-$K;HMQ$9$k(B <a
- href="mod_so.html#loadmodule">LoadModule</a> $B%G%#%l%/%F%#%V$K$*$$$F(B
- $B;HMQ$5$l$k%b%8%e!<%k$N<1JL;R$G$9!#(B
- $B>\$7$/=q$/$H!"%=!<%9%U%!%$%kFb$N(B module $B%?%$%W$N30ItJQ?t$NL>A0$G$9!#(B
- </p>
-
- <hr>
- <h2><a name="Compatibility">$B8_49@-(B</a></h2>
- <p>
- $B$"$k%b%8%e!<%k$,(B Apache $B%P!<%8%g%s(B 1 $B$NG[I[$K4^$^$l$F$$$J$+$C$?>l9g!"(B
- $B$=$N%b%8%e!<%k$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B
- </p>
<hr />
+ <h2><a id="compatibility" name="compatibility">$B8_49@-(B</a></h2>
+
+ <p>$B$"$k%b%8%e!<%k$,(B Apache $B%P!<%8%g%s(B 1
+ $B$NG[I[$K4^$^$l$F$$$J$+$C$?>l9g!"(B
+ $B$=$N%b%8%e!<%k$,F3F~$5$l$?%P!<%8%g%s$,$3$3$K=q$+$l$F$$$^$9!#(B</p>
+ <hr />
+
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
- </body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/netware.html b/usr.sbin/httpd/htdocs/manual/netware.html
index 52a5958a5d6..ac53dda4ba4 100644
--- a/usr.sbin/httpd/htdocs/manual/netware.html
+++ b/usr.sbin/httpd/htdocs/manual/netware.html
@@ -22,7 +22,7 @@
<p>This document explains how to install, configure and run
Apache 1.3 under Novell NetWare 5.x and above. If you find any bugs,
or wish to contribute in other ways, please
- use our <a HREF="http://www.apache.org/bug_report.html">bug reporting
+ use our <a HREF="http://httpd.apache.org/bug_report.html">bug reporting
page.</a></p>
<p>The bug reporting page and new-httpd mailing list are <em>not</em>
diff --git a/usr.sbin/httpd/htdocs/manual/new_features_1_3.html.ja.jis b/usr.sbin/httpd/htdocs/manual/new_features_1_3.html.ja.jis
index dee1775ee99..230f806ae33 100644
--- a/usr.sbin/httpd/htdocs/manual/new_features_1_3.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/new_features_1_3.html.ja.jis
@@ -7,7 +7,7 @@
<title>New features with Apache 1.3</title>
</head>
- <!-- English revision: 1.86 -->
+ <!-- English revision: 1.88 -->
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
vlink="#000080" alink="#ff0000">
@@ -74,7 +74,7 @@
$B$N%5%]!<%H(B</a></strong></dt>
<dd>Apache $B$O(B NetWare 5.x
- $B$r<B83E*$K%5%]!<%H$9$k$h$&$K$J$j$^$7$?!#(B</dd>
+ $B$r%5%]!<%H$9$k$h$&$K$J$j$^$7$?!#(B</dd>
<dt><strong><a href="sourcereorg.html"
>$B%=!<%9$N:F9=@.(B</a></strong></dt>
@@ -761,10 +761,10 @@
$B6&M-$7$F$$$k%3%s%F%s%D$KBP$9$k%"%/%;%9@)8f$OF1$8@_Dj$r;H$$$?$$$H$-$K!"(B
$B$3$N5!G=$,Lr$KN)$A$^$9(B)$B!#(B</dd>
- <dt><strong><code>HostNameLookups</code> $B$N%G%U%)%k%H$r(B "Off" $B$KJQ99(B</strong></dt>
+ <dt><strong><code>HostnameLookups</code> $B$N%G%U%)%k%H$r(B "Off" $B$KJQ99(B</strong></dt>
<dd><a
- href="mod/core.html#hostnamelookups"><code>HostNameLookups</code></a>
+ href="mod/core.html#hostnamelookups"><code>HostnameLookups</code></a>
$B%G%#%l%/%F%#%V$O%G%U%)%k%H$G(B "Off" $B$K$J$j$^$7$?!#L@<(E*$K(B on
$B$K$7$J$$8B$j!"%5!<%P$O(B IP $B%"%I%l%9$NL>A02r7h$r9T$J$o$J$$$H$$$&$3$H$G$9!#(B
$B$3$NJQ99$O%$%s%?!<%M%C%H$K$*$$$F$rITI,MW$J(B DNS $B%H%i%U%#%C%/$r(B
diff --git a/usr.sbin/httpd/htdocs/manual/process-model.html b/usr.sbin/httpd/htdocs/manual/process-model.html
index dc4f91f6863..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/process-model.html
+++ b/usr.sbin/httpd/htdocs/manual/process-model.html
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Server Pool Management</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server</h3>
- </div>
-
-
-
- <h1 align="CENTER">Server Pool Management</h1>
- <hr />
-
- <p>We found that many people were using values for "MaxServers"
- either too high or too low, and were hanging themselves on it.
- The model we adopted is still based on long-lived
- minimal-forking processes, but instead of specifying one number
- of persistent processes, the web-master specifies a maximum and
- minimum number of processes to be "spare" - every couple of
- seconds the parent checks the actual number of spare servers
- and adjusts accordingly. This should keep the number of servers
- concurrently running relatively low while still ensuring
- minimal forking.</p>
-
- <p>We renamed the current StartServers to MinSpareServers,
- created separate StartServers parameter which means what it
- says, and renamed MaxServers to MaxSpareServers (though the old
- name still works, for NCSA 1.4 back-compatibility). The old
- names were generally regarded as too confusing.</p>
-
- <p>The defaults for each variable are:</p>
-<pre>
-MinSpareServers 5
-MaxSpareServers 10
-StartServers 5
-</pre>
- There is an absolute maximum number of simultaneous children
- defined by a compile-time limit which defaults to 256 and a
- "MaxClients" directive which specifies the number of
- simultaneous children that will be allowed. MaxClients can be
- adjusted up to the compile-time limit (HARD_SERVER_LIMIT,
- defined in httpd.h). If you need more than 256 simultaneous
- children, you need to modify both HARD_SERVER_LIMIT and
- MaxClients.
-
- <p>In versions before 1.2, HARD_SERVER_LIMIT defaulted to
- 150.</p>
-
- <p>We do not recommend changing either of these values
- unless:</p>
-
- <ol>
- <li>You know you have the server resources to handle
- more</li>
-
- <li>You use the machine for other purposes and must limit the
- amount of memory Apache uses</li>
- </ol>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server</h3>
- <a href="./"><img src="images/index.gif" alt="Index" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/process-model.html.en b/usr.sbin/httpd/htdocs/manual/process-model.html.en
index dc4f91f6863..1ca1e5ae3d8 100644
--- a/usr.sbin/httpd/htdocs/manual/process-model.html.en
+++ b/usr.sbin/httpd/htdocs/manual/process-model.html.en
@@ -75,3 +75,80 @@ StartServers 5
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Server Pool Management</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">Server Pool Management</h1>
+ <hr />
+
+ <p>We found that many people were using values for "MaxServers"
+ either too high or too low, and were hanging themselves on it.
+ The model we adopted is still based on long-lived
+ minimal-forking processes, but instead of specifying one number
+ of persistent processes, the web-master specifies a maximum and
+ minimum number of processes to be "spare" - every couple of
+ seconds the parent checks the actual number of spare servers
+ and adjusts accordingly. This should keep the number of servers
+ concurrently running relatively low while still ensuring
+ minimal forking.</p>
+
+ <p>We renamed the current StartServers to MinSpareServers,
+ created separate StartServers parameter which means what it
+ says, and renamed MaxServers to MaxSpareServers (though the old
+ name still works, for NCSA 1.4 back-compatibility). The old
+ names were generally regarded as too confusing.</p>
+
+ <p>The defaults for each variable are:</p>
+<pre>
+MinSpareServers 5
+MaxSpareServers 10
+StartServers 5
+</pre>
+ There is an absolute maximum number of simultaneous children
+ defined by a compile-time limit which defaults to 256 and a
+ "MaxClients" directive which specifies the number of
+ simultaneous children that will be allowed. MaxClients can be
+ adjusted up to the compile-time limit (HARD_SERVER_LIMIT,
+ defined in httpd.h). If you need more than 256 simultaneous
+ children, you need to modify both HARD_SERVER_LIMIT and
+ MaxClients.
+
+ <p>In versions before 1.2, HARD_SERVER_LIMIT defaulted to
+ 150.</p>
+
+ <p>We do not recommend changing either of these values
+ unless:</p>
+
+ <ol>
+ <li>You know you have the server resources to handle
+ more</li>
+
+ <li>You use the machine for other purposes and must limit the
+ amount of memory Apache uses</li>
+ </ol>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/process-model.html.html b/usr.sbin/httpd/htdocs/manual/process-model.html.html
index d26fe3cee9d..9808f144485 100644
--- a/usr.sbin/httpd/htdocs/manual/process-model.html.html
+++ b/usr.sbin/httpd/htdocs/manual/process-model.html.html
@@ -79,3 +79,84 @@ StartServers 5
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Server Pool Management</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">Server Pool Management</h1>
+ <hr />
+
+ <p>We found that many people were using values for "MaxServers"
+ either too high or too low, and were hanging themselves on it.
+ The model we adopted is still based on long-lived
+ minimal-forking processes, but instead of specifying one number
+ of persistent processes, the web-master specifies a maximum and
+ minimum number of processes to be "spare" - every couple of
+ seconds the parent checks the actual number of spare servers
+ and adjusts accordingly. This should keep the number of servers
+ concurrently running relatively low while still ensuring
+ minimal forking.</p>
+
+ <p>We renamed the current StartServers to MinSpareServers,
+ created separate StartServers parameter which means what it
+ says, and renamed MaxServers to MaxSpareServers (though the old
+ name still works, for NCSA 1.4 back-compatibility). The old
+ names were generally regarded as too confusing.</p>
+
+ <p>The defaults for each variable are:</p>
+<pre>
+MinSpareServers 5
+MaxSpareServers 10
+StartServers 5
+</pre>
+ There is an absolute maximum number of simultaneous children
+ defined by a compile-time limit which defaults to 256 and a
+ "MaxClients" directive which specifies the number of
+ simultaneous children that will be allowed. MaxClients can be
+ adjusted up to the compile-time limit (HARD_SERVER_LIMIT,
+ defined in httpd.h). If you need more than 256 simultaneous
+ children, you need to modify both HARD_SERVER_LIMIT and
+ MaxClients.
+
+ <p>In versions before 1.2, HARD_SERVER_LIMIT defaulted to
+ 150.</p>
+
+ <p>We do not recommend changing either of these values
+ unless:</p>
+
+ <ol>
+ <li>You know you have the server resources to handle
+ more</li>
+
+ <li>You use the machine for other purposes and must limit the
+ amount of memory Apache uses</li>
+ </ol>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/process-model.html.ja.jis b/usr.sbin/httpd/htdocs/manual/process-model.html.ja.jis
index cad23a434d1..c6a6b02de47 100644
--- a/usr.sbin/httpd/htdocs/manual/process-model.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/process-model.html.ja.jis
@@ -76,3 +76,81 @@ StartServers 5
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Server Pool Management</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.12 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center">$BM=Hw%5!<%P$N4IM}(B</h1>
+ <hr />
+
+ <p>$BB?$/$N?M$,(B &quot;MaxServers&quot;
+ $B$KBP$7$F9b$9$.$k$^$?$ODc$9$.$kCM$r@_Dj$7!"(B
+ $B$=$l$r;H$$B3$1$F$$$?$H$$$&$3$H$,$o$+$j$^$7$?!#(B
+ $B;dC#$,:NMQ$7$F$$$k%b%G%k$O!"(B
+ $B$J$k$Y$/(B fork $B$r:G>.$K$7!"%W%m%;%9$,D9$/@8B8$9$k$h$&$JJ}K!$K(B
+ $B4p$E$$$?$^$^$G$9$,!"(B
+ $B0JA0$N7h$^$C$??t$N;}B3E*$J%W%m%;%9$r;XDj$9$k$H$$$&J}K!$NBe$o$j$K!"(B
+ $B!VM=Hw!W$H$J$k%W%m%;%9$N:GBgCM$H:G>.CM$r%&%'%V%^%9%?!<$,(B
+ $B;XDj$G$-$k$h$&$K$7$^$7$?!#$D$^$j!"?F%W%m%;%9$,?tIC$4$H$KM=Hw$N(B
+ $B%5!<%P$N<B:]$N?t$r%A%'%C%/$7!"$=$l$K1~$8$F%5!<%P$N?t$rD4@0$7$^$9!#(B
+ $B$3$l$K$h$j!"(Bfork $B$N?t$r:G>.8B$KM^$($D$D!"(B
+ $B%5!<%P$N?t$rHf3SE*>/$J$$>uBV$KJ]$D$3$H$,$G$-$k$O$:$G$9!#(B</p>
+
+ <p>$B8=:_$N(B StartServers $B$O(B MinSpareServers $B$H$$$&L>A0$K$J$j!"(B
+ $BJL8D$K!"L>A0$NDL$j$N0UL#$r$b$D!"(BStartServers $B%Q%i%a!<%?$,:n@.$5$l!"(B
+ MaxServers $B$O(B MaxSpareServers $B$H$$$&L>A0$K$J$j$^$7$?(B ($B8E$$L>A0$b(B
+ NCSA 1.4 $B$+$i$N8_49@-$rJ]$D$?$a$K$^$@F0:n$7$^$9(B)$B!#(B
+ $B8E$$L>A0$O0lHL$KJ6$i$o$7$9$.$k$H9M$($i$l$F$$$^$7$?!#(B</p>
+
+ <p>$B$=$l$>$l$N%G%U%)%k%H$NCM$O0J2<$N$H$*$j$G$9(B</p>
+<pre>
+MinSpareServers 5
+MaxSpareServers 10
+StartServers 5
+</pre>
+ <p>$BF1;~$K5vMF$5$l$k;R%W%m%;%9$N?t$O%3%s%Q%$%k;~$K@)8B$5$l$k(B
+ $B@dBPE*$J:GBgCM(B ($B%G%U%)%k%H$G(B 256 $B$H$J$C$F$$$^$9(B) $B$H(B
+ &quot;MaxClients&quot; $B%G%#%l%/%F%#%V$K$h$jDj5A$5$l$^$9!#(B
+ MaxClients $B$O:GBg$G%3%s%Q%$%k;~$N@)8BCM(B (httpd.h $B$GDj5A$5$l$k(B
+ HARD_SERVER_LIMIT) $B$^$GD4@0$G$-$^$9!#F1;~$K(B 256
+ $B0J>e$N;R%W%m%;%9$,I,MW$J>l9g$O(B HARD_SERVER_LIMIT $B$H(B MaxClients
+ $B$NN>J}$rJQ99$9$kI,MW$,$"$j$^$9!#(B
+ </p>
+
+ <p>1.2 $B0JA0$N%P!<%8%g%s$G$O(B HARD_SERVER_LIMIT $B$N%G%U%)%k%H$O(B
+ 150 $B$K$J$C$F$$$^$9!#(B</p>
+
+ <p>$B0J2<$,Ev$F$O$^$i$J$$>l9g$O!"(B
+ $B$3$NCM$N$I$A$i$+$rJQ99$9$k$3$H$OA&$a$i$l$^$;$s!#(B</p>
+
+ <ol>
+ <li>$B$h$jB?$/$r07$&$?$a$N%5!<%P$N%j%=!<%9$,M-$k$3$H$,J,$+$C$F$$$k!#(B
+ </li>
+
+ <li>$B%^%7%s$rB>$NL\E*$K$b;HMQ$9$k$N$G(B Apache $B$,;HMQ$9$k(B
+ $B%a%b%j$NNL$r@)8B$7$J$/$F$O$J$i$J$$!#(B</li>
+ </ol>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html
index a1b14e99b77..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html
@@ -1,106 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Manual Page: apachectl - Apache HTTP Server</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#ffffff" text="#000000" link="#0000ff"
- vlink="#000080" alink="#ff0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="center">Manual Page: apachectl</h1>
- <!-- This document was autogenerated from the man page -->
-<pre>
-<strong>NAME</strong>
- apachectl - Apache HTTP server control interface
-
-<strong>SYNOPSIS</strong>
- <strong>apachectl</strong> <em>command</em> [...]
-
-<strong>DESCRIPTION</strong>
- <strong>apachectl</strong> is a front end to the Apache HyperText Transfer
- Protocol (HTTP) server. It is designed to help the adminis-
- trator control the functioning of the Apache <strong>httpd</strong> daemon.
-
- <strong>NOTE:</strong> If your Apache installation uses non-standard paths,
- you will need to edit the <strong>apachectl</strong> script to set the
- appropriate paths to your PID file and your <strong>httpd</strong> binary.
- See the comments in the script for details.
-
- The <strong>apachectl</strong> script returns a 0 exit value on success, and
- &gt;0 if an error occurs. For more details, view the comments
- in the script.
-
- Full documentation for Apache is available at
- <strong>http://www.apache.org/</strong>
-
-<strong>OPTIONS</strong>
- The <em>command</em> can be any one or more of the following options:
-
- <strong>start </strong> Start the Apache daemon. Gives an error if it
- is already running.
-
- <strong>stop </strong> Stops the Apache daemon.
-
- <strong>restart </strong> Restarts the Apache daemon by sending it a
- SIGHUP. If the daemon is not running, it is
- started. This command automatically checks the
- configuration files via <strong>configtest</strong> before ini-
- tiating the restart to make sure Apache doesn't
- die.
-
- <strong>fullstatus</strong> Displays a full status report from <strong>mod_status.</strong>
- For this to work, you need to have mod_status
- enabled on your server and a text-based browser
- such as <em>lynx</em> available on your system. The URL
- used to access the status report can be set by
- editing the <strong>STATUSURL</strong> variable in the script.
-
- <strong>status </strong> Displays a brief status report. Similar to the
- fullstatus option, except that the list of
- requests currently being served is omitted.
-
- <strong>graceful </strong> Gracefully restarts the Apache daemon by sending
- it a SIGUSR1. If the daemon is not running, it
- is started. This differs from a normal restart
- in that currently open connections are not
- aborted. A side effect is that old log files
- will not be closed immediately. This means that
- if used in a log rotation script, a substantial
- delay may be necessary to ensure that the old
- log files are closed before processing them.
- This command automatically checks the configura-
- tion files via <strong>configtest</strong> before initiating the
- restart to make sure Apache doesn't die.
-
- <strong>configtest</strong> Run a configuration file syntax test. It parses
- the configuration files and either reports <strong>Syn-</strong>
- <strong>tax Ok</strong> or detailed information about the partic-
- ular syntax error.
-
- <strong>help </strong> Displays a short help message.
-
-<strong>SEE ALSO</strong>
- <strong>httpd(8)</strong>
-
-</pre>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.en b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.en
index a1b14e99b77..ba0aa064a0d 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.en
+++ b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.en
@@ -104,3 +104,109 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: apachectl - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: apachectl</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ apachectl - Apache HTTP server control interface
+
+<strong>SYNOPSIS</strong>
+ <strong>apachectl</strong> <em>command</em> [...]
+
+<strong>DESCRIPTION</strong>
+ <strong>apachectl</strong> is a front end to the Apache HyperText Transfer
+ Protocol (HTTP) server. It is designed to help the adminis-
+ trator control the functioning of the Apache <strong>httpd</strong> daemon.
+
+ <strong>NOTE:</strong> If your Apache installation uses non-standard paths,
+ you will need to edit the <strong>apachectl</strong> script to set the
+ appropriate paths to your PID file and your <strong>httpd</strong> binary.
+ See the comments in the script for details.
+
+ The <strong>apachectl</strong> script returns a 0 exit value on success, and
+ &gt;0 if an error occurs. For more details, view the comments
+ in the script.
+
+ Full documentation for Apache is available at
+ <strong>http://www.apache.org/</strong>
+
+<strong>OPTIONS</strong>
+ The <em>command</em> can be any one or more of the following options:
+
+ <strong>start </strong> Start the Apache daemon. Gives an error if it
+ is already running.
+
+ <strong>stop </strong> Stops the Apache daemon.
+
+ <strong>restart </strong> Restarts the Apache daemon by sending it a
+ SIGHUP. If the daemon is not running, it is
+ started. This command automatically checks the
+ configuration files via <strong>configtest</strong> before ini-
+ tiating the restart to make sure Apache doesn't
+ die.
+
+ <strong>fullstatus</strong> Displays a full status report from <strong>mod_status.</strong>
+ For this to work, you need to have mod_status
+ enabled on your server and a text-based browser
+ such as <em>lynx</em> available on your system. The URL
+ used to access the status report can be set by
+ editing the <strong>STATUSURL</strong> variable in the script.
+
+ <strong>status </strong> Displays a brief status report. Similar to the
+ fullstatus option, except that the list of
+ requests currently being served is omitted.
+
+ <strong>graceful </strong> Gracefully restarts the Apache daemon by sending
+ it a SIGUSR1. If the daemon is not running, it
+ is started. This differs from a normal restart
+ in that currently open connections are not
+ aborted. A side effect is that old log files
+ will not be closed immediately. This means that
+ if used in a log rotation script, a substantial
+ delay may be necessary to ensure that the old
+ log files are closed before processing them.
+ This command automatically checks the configura-
+ tion files via <strong>configtest</strong> before initiating the
+ restart to make sure Apache doesn't die.
+
+ <strong>configtest</strong> Run a configuration file syntax test. It parses
+ the configuration files and either reports <strong>Syn-</strong>
+ <strong>tax Ok</strong> or detailed information about the partic-
+ ular syntax error.
+
+ <strong>help </strong> Displays a short help message.
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.html b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.html
index ef67f594b81..23d661e9eee 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.html
@@ -108,3 +108,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: apachectl - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: apachectl</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ apachectl - Apache HTTP server control interface
+
+<strong>SYNOPSIS</strong>
+ <strong>apachectl</strong> <em>command</em> [...]
+
+<strong>DESCRIPTION</strong>
+ <strong>apachectl</strong> is a front end to the Apache HyperText Transfer
+ Protocol (HTTP) server. It is designed to help the adminis-
+ trator control the functioning of the Apache <strong>httpd</strong> daemon.
+
+ <strong>NOTE:</strong> If your Apache installation uses non-standard paths,
+ you will need to edit the <strong>apachectl</strong> script to set the
+ appropriate paths to your PID file and your <strong>httpd</strong> binary.
+ See the comments in the script for details.
+
+ The <strong>apachectl</strong> script returns a 0 exit value on success, and
+ &gt;0 if an error occurs. For more details, view the comments
+ in the script.
+
+ Full documentation for Apache is available at
+ <strong>http://www.apache.org/</strong>
+
+<strong>OPTIONS</strong>
+ The <em>command</em> can be any one or more of the following options:
+
+ <strong>start </strong> Start the Apache daemon. Gives an error if it
+ is already running.
+
+ <strong>stop </strong> Stops the Apache daemon.
+
+ <strong>restart </strong> Restarts the Apache daemon by sending it a
+ SIGHUP. If the daemon is not running, it is
+ started. This command automatically checks the
+ configuration files via <strong>configtest</strong> before ini-
+ tiating the restart to make sure Apache doesn't
+ die.
+
+ <strong>fullstatus</strong> Displays a full status report from <strong>mod_status.</strong>
+ For this to work, you need to have mod_status
+ enabled on your server and a text-based browser
+ such as <em>lynx</em> available on your system. The URL
+ used to access the status report can be set by
+ editing the <strong>STATUSURL</strong> variable in the script.
+
+ <strong>status </strong> Displays a brief status report. Similar to the
+ fullstatus option, except that the list of
+ requests currently being served is omitted.
+
+ <strong>graceful </strong> Gracefully restarts the Apache daemon by sending
+ it a SIGUSR1. If the daemon is not running, it
+ is started. This differs from a normal restart
+ in that currently open connections are not
+ aborted. A side effect is that old log files
+ will not be closed immediately. This means that
+ if used in a log rotation script, a substantial
+ delay may be necessary to ensure that the old
+ log files are closed before processing them.
+ This command automatically checks the configura-
+ tion files via <strong>configtest</strong> before initiating the
+ restart to make sure Apache doesn't die.
+
+ <strong>configtest</strong> Run a configuration file syntax test. It parses
+ the configuration files and either reports <strong>Syn-</strong>
+ <strong>tax Ok</strong> or detailed information about the partic-
+ ular syntax error.
+
+ <strong>help </strong> Displays a short help message.
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.ja.jis
index acb40e53f47..513950613a8 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/programs/apachectl.html.ja.jis
@@ -103,3 +103,108 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Manual Page: apachectl - Apache HTTP Server</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.5 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: apachectl</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>$BL>>N(B</strong>
+ apachectl - Apache HTTP $B%5!<%P%3%s%H%m!<%k%$%s%?!<%U%'!<%9(B
+
+<strong>$B=q<0(B</strong>
+ <strong>apachectl </strong><em>command </em>[...]
+
+<strong>$B2r@b(B</strong>
+ <strong>apachectl</strong> $B$O(B Apache HyperText Transfer Protocol
+ (HTTP) $B%5!<%P$N%U%m%s%H%(%s%I$G$9!#4IM}<T$,(B Apache <strong>httpd</strong>
+ $B%G!<%b%s$r%3%s%H%m!<%k$9$k5!G=$r=u$1$k$h$&$K@_7W$5$l$F$$$^$9!#(B
+
+ <strong>NOTE:</strong> Apache $B$N%$%s%9%H!<%k$GI8=`$G$O$J$$%Q%9(B
+ $B$r;HMQ$9$k>l9g!"(BPID $B%U%!%$%k$H(B <strong>httpd</strong> $B%P%$%J%j$r(B
+ $BE,@Z$J%Q%9$K@_Dj$9$k$?$a(B <strong>apachectl</strong> $B%9%/%j%W%H(B
+ $B$rJT=8$9$kI,MW$,$"$j$^$9!#>\:Y$O%9%/%j%W%HFb$N%3%a%s%H$r8+$F$/$@$5$$!#(B
+
+ <strong>apachectl</strong> $B%9%/%j%W%H$O@.8y$7$?>l9g$O(B 0 $B=*N;CM!"(B
+ $B%(%i!<$,5/$3$C$?>l9g(B 0 $B0J>e$rJV$7$^$9!#(B
+ $B$5$i$J$k>\:Y$O%9%/%j%W%HFb$N%3%a%s%H$r$_$F$/$@$5$$!#(B
+
+ Apache $B$N$?$a$NA4J8>O$O(B <strong>http://www.apache.org/</strong>
+ $B$GMxMQ2DG=$G$9!#(B
+
+<strong>$B%*%W%7%g%s(B</strong>
+ <em>command</em> $B$O<!$N%*%W%7%g%s0l$D$^$?$O$=$l0J>e$r$D$1$F!"(B
+ $B<B9T$9$k$3$H$,$G$-$^$9!#(B
+ <strong>start </strong>Apache $B%G!<%b%s$r5/F0$7$^$9!#(B
+ $B4{$K<B9T$5$l$F$$$k>l9g$O!"%(%i!<$rJV$7$^$9!#(B
+
+ <strong>stop </strong>Apache $B%G!<%b%s$rDd;_$7$^$9!#(B
+
+ <strong>restart </strong>Apache $B%G!<%b%s$K(B SIGHUP
+ $B$rAw$k$3$H$K$h$j:F5/F0$5$;$^$9!#(B
+ $B%G!<%b%s$,<B9T$5$l$F$$$J$$>l9g$O5/F0$7$^$9!#(B
+ $B$3$N%3%^%s%I$O(B Apache $B$,Dd;_$7$J$$$3$H$r3NG'$9$k$?$a(B
+ $B:F5/F0$r3+;O$9$kA0$K(B <strong>configtest</strong>
+ $B$K$h$j%U%!%$%k$r<+F0E*$K%A%'%C%/$7$^$9!#(B
+
+ <strong>fullstatus mod_status </strong>$B$K$h$jA4>uBV$rJs9p$7$^$9!#(B
+ $B$3$l$,5!G=$9$k$?$a$K$O!"%5!<%P>e$G(B mod_status $B$,MxMQ2DG=$G(B
+ $B%7%9%F%`>e$K$O(B <em>lynx</em> $B$N$h$&$J%F%-%9%H%Y!<%9$N(B
+ $B%V%i%&%6$,I,MW$G$9!#>uBVJs9p$rF@$k$?$a$K;HMQ$5$l$k(B URL $B$O!"(B
+ $B%9%/%j%W%H$G(B <strong>STATUSURL</strong> $BJQ?t$rJT=8$9$k(B
+ $B$3$H$K$h$C$F@_Dj$5$l$^$9!#(B
+
+ <strong>status </strong>$BC;$$>uBVJs9p$rI=<($7$^$9!#(B
+ $B8=:_Ds6!$5$l$F$$$k%j%/%(%9%H$N%j%9%H$r>JN,$9$k$H(B
+ $B$$$&$3$H$r=|$1$P!"(B fullstatus $B%*%W%7%g%s$H;w$F$$$^$9!#(B
+
+ <strong>graceful </strong>Apache $B%G!<%b%s$K(B SIGUSR1 $B$rAw$k$3$H(B
+ $B$K$h$jCJ3,E*$K:F5/F0$7$^$9!#(B
+ $B%G!<%b%s$,<B9T$5$l$F$$$J$$>l9g$O5/F0$7$^$9!#(B
+ $B8=:_MxMQCf$N@\B3$OCfCG$5$l$J$$$H$$$&E@$GDL>o$N(B
+ $B:F5/F0$H$O0[$J$j$^$9!#I{:nMQ$O!"$9$0$K$O8E$$(B
+ $B%m%0%U%!%$%k$rJD$8$k$3$H$,$G$-$J$$$3$H$G$9!#(B
+ $B$3$l$O%m%0$N8r49%9%/%j%W%H$r;HMQ$9$k>l9g!"<B:]$NCY1d$,!"(B
+ $B%m%0%U%!%$%k$r=hM}$9$kA0$KJD$8$i$l$k$3$H$rJ]>Z$9$k$N$K(B
+ $BI,MW$+$b$7$l$J$$$3$H$r0UL#$7$^$9!#(B
+ $B$3$N%3%^%s%I$O(B Apache $B$,Dd;_$7$J$$$3$H$r3NG'$9$k$?$a(B
+ $B:F5/F0$r3+;O$9$kA0$K(B <strong>configtest</strong>
+ $B$K$h$j%U%!%$%k$r<+F0E*$K%A%'%C%/$7$^$9!#(B
+
+ <strong>configtest </strong>$B@_Dj%U%!%$%k$NJ8K!%F%9%H$r9T$$$^$9!#(B
+ $B@_Dj%U%!%$%k$rJ,@O$7$F(B <strong>Syntax Ok</strong> $B$+!"(B
+ $BFCDj$NJ8K!%(%i!<$K$D$$$F$N>\:Y>pJs$rJs9p$7$^$9!#(B
+
+ <strong>help </strong>$BC;$$%X%k%W%a%C%;!<%8$rI=<($7$^$9!#(B
+
+<strong>$B4XO"9`L\(B</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html
index 480fd700ca3..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html
@@ -1,185 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Manual Page: htpasswd - Apache HTTP Server</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#ffffff" text="#000000" link="#0000ff"
- vlink="#000080" alink="#ff0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="center">Manual Page: htpasswd</h1>
- <!-- This document was autogenerated from the man page -->
-<pre>
-<strong>NAME</strong>
- htpasswd - Create and update user authentication files
-
-<strong>SYNOPSIS</strong>
- <strong>htpasswd</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
- <strong>htpasswd</strong> -<strong>b</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
- <em>password</em>
- <strong>htpasswd</strong> -<strong>n</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username</em>
- <strong>htpasswd</strong> -<strong>nb</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username password</em>
-
-<strong>DESCRIPTION</strong>
- <strong>htpasswd</strong> is used to create and update the flat-files used to
- store usernames and password for basic authentication of
- HTTP users. If <strong>htpasswd</strong> cannot access a file, such as not
- being able to write to the output file or not being able to
- read the file in order to update it, it returns an error
- status and makes no changes.
-
- Resources available from the <strong>httpd</strong> Apache web server can be
- restricted to just the users listed in the files created by
- <strong>htpasswd.</strong> This program can only manage usernames and pass-
- words stored in a flat-file. It can encrypt and display
- password information for use in other types of data stores,
- though. To use a DBM database see <strong>dbmmanage</strong>.
-
- <strong>htpasswd</strong> encrypts passwords using either a version of MD5
- modified for Apache, or the system's <em>crypt</em>() routine. Files
- managed by <strong>htpasswd</strong> may contain both types of passwords;
- some user records may have MD5-encrypted passwords while
- others in the same file may have passwords encrypted with
- <em>crypt</em>().
-
- This manual page only lists the command line arguments. For
- details of the directives necessary to configure user
- authentication in <strong>httpd</strong> see the Apache manual, which is part
- of the Apache distribution or can be found at
- &lt;URL:http://www.apache.org/&gt;.
-
-<strong>OPTIONS</strong>
- -b Use batch mode; <em>i</em>.<em>e</em>., get the password from the command
- line rather than prompting for it. <strong>This option should</strong>
- <strong>be used with extreme care, since the password is</strong>
- <strong>clearly visible on the command line.</strong>
-
- -c Create the <em>passwdfile</em>. If <em>passwdfile</em> already exists, it
- is rewritten and truncated. This option cannot be com-
- bined with the <strong>-n</strong> option.
-
- -n Display the results on standard output rather than
- updating a file. This is useful for generating pass-
- word records acceptable to Apache for inclusion in
- non-text data stores. This option changes the syntax
- of the command line, since the <em>passwdfile</em> argument
- (usually the first one) is omitted. It cannot be com-
- bined with the <strong>-c</strong> option.
-
- -m Use Apache's modified MD5 algorithm for passwords.
- Passwords encrypted with this algorithm are transport-
- able to any platform (Windows, Unix, BeOS, et cetera)
- running Apache 1.3.9 or later. On Windows and TPF,
- this flag is the default.
-
- -d Use crypt() encryption for passwords. The default on
- all platforms but Windows and TPF. Though possibly sup-
- ported by <strong>htpasswd</strong> on all platforms, it is not sup-
- ported by the <strong>httpd</strong> server on Windows and TPF.
-
- -s Use SHA encryption for passwords. Faciliates migration
- from/to Netscape servers using the LDAP Directory
- Interchange Format (ldif).
-
- -p Use plaintext passwords. Though <strong>htpasswd</strong> will support
- creation on all platforms, the <strong>httpd</strong> deamon will only
- accept plain text passwords on Windows and TPF.
-
- <em>passwdfile</em>
- Name of the file to contain the user name and password.
- If -c is given, this file is created if it does not
- already exist, or rewritten and truncated if it does
- exist.
-
- <em>username</em>
- The username to create or update in <strong>passwdfile</strong>. If
- <em>username</em> does not exist in this file, an entry is
- added. If it does exist, the password is changed.
-
- <em>password</em>
- The plaintext password to be encrypted and stored in
- the file. Only used with the -<em>b</em> flag.
-
-<strong>EXIT STATUS</strong>
- <strong>htpasswd</strong> returns a zero status ("true") if the username and
- password have been successfully added or updated in the
- <em>passwdfile</em>. <strong>htpasswd</strong> returns 1 if it encounters some prob-
- lem accessing files, 2 if there was a syntax problem with
- the command line, 3 if the password was entered interac-
- tively and the verification entry didn't match, 4 if its
- operation was interrupted, 5 if a value is too long (user-
- name, filename, password, or final computed record), and 6
- if the username contains illegal characters (see the <strong>RES-</strong>
- <strong>TRICTIONS</strong> section).
-
-<strong>EXAMPLES</strong>
- <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong>
-
- Adds or modifies the password for user <em>jsmith</em>. The user
- is prompted for the password. If executed on a Windows
- system, the password will be encrypted using the modi-
- fied Apache MD5 algorithm; otherwise, the system's
- <em>crypt</em>() routine will be used. If the file does not
- exist, <strong>htpasswd</strong> will do nothing except return an error.
-
- <strong>htpasswd -c /home/doe/public_html/.htpasswd jane</strong>
-
- Creates a new file and stores a record in it for user
- <em>jane</em>. The user is prompted for the password. If the
- file exists and cannot be read, or cannot be written,
- it is not altered and <strong>htpasswd</strong> will display a message
- and return an error status.
-
- <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong>
-
- Encrypts the password from the command line (<em>Pwd4Steve</em>)
- using the MD5 algorithm, and stores it in the specified
- file.
-
-<strong>SECURITY CONSIDERATIONS</strong>
- Web password files such as those managed by <strong>htpasswd</strong> should
- <strong>not</strong> be within the Web server's URI space -- that is, they
- should not be fetchable with a browser.
-
- The use of the -<em>b</em> option is discouraged, since when it is
- used the unencrypted password appears on the command line.
-
-<strong>RESTRICTIONS</strong>
- On the Windows and MPE platforms, passwords encrypted with
- <strong>htpasswd</strong> are limited to no more than 255 characters in
- length. Longer passwords will be truncated to 255 charac-
- ters.
-
- The MD5 algorithm used by <strong>htpasswd</strong> is specific to the Apache
- software; passwords encrypted using it will not be usable
- with other Web servers.
-
- Usernames are limited to 255 bytes and may not include the
- character ':'.
-
-<strong>SEE ALSO</strong>
- <strong>httpd(8)</strong> and the scripts in support/SHA1 which come with the
- distribution.
-
-</pre>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.en b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.en
index 480fd700ca3..0b94754d6dc 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.en
+++ b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.en
@@ -183,3 +183,188 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: htpasswd - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: htpasswd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ htpasswd - Create and update user authentication files
+
+<strong>SYNOPSIS</strong>
+ <strong>htpasswd</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <strong>htpasswd</strong> -<strong>b</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <em>password</em>
+ <strong>htpasswd</strong> -<strong>n</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username</em>
+ <strong>htpasswd</strong> -<strong>nb</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username password</em>
+
+<strong>DESCRIPTION</strong>
+ <strong>htpasswd</strong> is used to create and update the flat-files used to
+ store usernames and password for basic authentication of
+ HTTP users. If <strong>htpasswd</strong> cannot access a file, such as not
+ being able to write to the output file or not being able to
+ read the file in order to update it, it returns an error
+ status and makes no changes.
+
+ Resources available from the <strong>httpd</strong> Apache web server can be
+ restricted to just the users listed in the files created by
+ <strong>htpasswd.</strong> This program can only manage usernames and pass-
+ words stored in a flat-file. It can encrypt and display
+ password information for use in other types of data stores,
+ though. To use a DBM database see <strong>dbmmanage</strong>.
+
+ <strong>htpasswd</strong> encrypts passwords using either a version of MD5
+ modified for Apache, or the system's <em>crypt</em>() routine. Files
+ managed by <strong>htpasswd</strong> may contain both types of passwords;
+ some user records may have MD5-encrypted passwords while
+ others in the same file may have passwords encrypted with
+ <em>crypt</em>().
+
+ This manual page only lists the command line arguments. For
+ details of the directives necessary to configure user
+ authentication in <strong>httpd</strong> see the Apache manual, which is part
+ of the Apache distribution or can be found at
+ &lt;URL:http://www.apache.org/&gt;.
+
+<strong>OPTIONS</strong>
+ -b Use batch mode; <em>i</em>.<em>e</em>., get the password from the command
+ line rather than prompting for it. <strong>This option should</strong>
+ <strong>be used with extreme care, since the password is</strong>
+ <strong>clearly visible on the command line.</strong>
+
+ -c Create the <em>passwdfile</em>. If <em>passwdfile</em> already exists, it
+ is rewritten and truncated. This option cannot be com-
+ bined with the <strong>-n</strong> option.
+
+ -n Display the results on standard output rather than
+ updating a file. This is useful for generating pass-
+ word records acceptable to Apache for inclusion in
+ non-text data stores. This option changes the syntax
+ of the command line, since the <em>passwdfile</em> argument
+ (usually the first one) is omitted. It cannot be com-
+ bined with the <strong>-c</strong> option.
+
+ -m Use Apache's modified MD5 algorithm for passwords.
+ Passwords encrypted with this algorithm are transport-
+ able to any platform (Windows, Unix, BeOS, et cetera)
+ running Apache 1.3.9 or later. On Windows and TPF,
+ this flag is the default.
+
+ -d Use crypt() encryption for passwords. The default on
+ all platforms but Windows and TPF. Though possibly sup-
+ ported by <strong>htpasswd</strong> on all platforms, it is not sup-
+ ported by the <strong>httpd</strong> server on Windows and TPF.
+
+ -s Use SHA encryption for passwords. Faciliates migration
+ from/to Netscape servers using the LDAP Directory
+ Interchange Format (ldif).
+
+ -p Use plaintext passwords. Though <strong>htpasswd</strong> will support
+ creation on all platforms, the <strong>httpd</strong> deamon will only
+ accept plain text passwords on Windows and TPF.
+
+ <em>passwdfile</em>
+ Name of the file to contain the user name and password.
+ If -c is given, this file is created if it does not
+ already exist, or rewritten and truncated if it does
+ exist.
+
+ <em>username</em>
+ The username to create or update in <strong>passwdfile</strong>. If
+ <em>username</em> does not exist in this file, an entry is
+ added. If it does exist, the password is changed.
+
+ <em>password</em>
+ The plaintext password to be encrypted and stored in
+ the file. Only used with the -<em>b</em> flag.
+
+<strong>EXIT STATUS</strong>
+ <strong>htpasswd</strong> returns a zero status ("true") if the username and
+ password have been successfully added or updated in the
+ <em>passwdfile</em>. <strong>htpasswd</strong> returns 1 if it encounters some prob-
+ lem accessing files, 2 if there was a syntax problem with
+ the command line, 3 if the password was entered interac-
+ tively and the verification entry didn't match, 4 if its
+ operation was interrupted, 5 if a value is too long (user-
+ name, filename, password, or final computed record), and 6
+ if the username contains illegal characters (see the <strong>RES-</strong>
+ <strong>TRICTIONS</strong> section).
+
+<strong>EXAMPLES</strong>
+ <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong>
+
+ Adds or modifies the password for user <em>jsmith</em>. The user
+ is prompted for the password. If executed on a Windows
+ system, the password will be encrypted using the modi-
+ fied Apache MD5 algorithm; otherwise, the system's
+ <em>crypt</em>() routine will be used. If the file does not
+ exist, <strong>htpasswd</strong> will do nothing except return an error.
+
+ <strong>htpasswd -c /home/doe/public_html/.htpasswd jane</strong>
+
+ Creates a new file and stores a record in it for user
+ <em>jane</em>. The user is prompted for the password. If the
+ file exists and cannot be read, or cannot be written,
+ it is not altered and <strong>htpasswd</strong> will display a message
+ and return an error status.
+
+ <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong>
+
+ Encrypts the password from the command line (<em>Pwd4Steve</em>)
+ using the MD5 algorithm, and stores it in the specified
+ file.
+
+<strong>SECURITY CONSIDERATIONS</strong>
+ Web password files such as those managed by <strong>htpasswd</strong> should
+ <strong>not</strong> be within the Web server's URI space -- that is, they
+ should not be fetchable with a browser.
+
+ The use of the -<em>b</em> option is discouraged, since when it is
+ used the unencrypted password appears on the command line.
+
+<strong>RESTRICTIONS</strong>
+ On the Windows and MPE platforms, passwords encrypted with
+ <strong>htpasswd</strong> are limited to no more than 255 characters in
+ length. Longer passwords will be truncated to 255 charac-
+ ters.
+
+ The MD5 algorithm used by <strong>htpasswd</strong> is specific to the Apache
+ software; passwords encrypted using it will not be usable
+ with other Web servers.
+
+ Usernames are limited to 255 bytes and may not include the
+ character ':'.
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong> and the scripts in support/SHA1 which come with the
+ distribution.
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.html b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.html
index 90086a0b833..23cf747cc67 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.html
@@ -187,3 +187,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: htpasswd - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: htpasswd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ htpasswd - Create and update user authentication files
+
+<strong>SYNOPSIS</strong>
+ <strong>htpasswd</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <strong>htpasswd</strong> -<strong>b</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <em>password</em>
+ <strong>htpasswd</strong> -<strong>n</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username</em>
+ <strong>htpasswd</strong> -<strong>nb</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username password</em>
+
+<strong>DESCRIPTION</strong>
+ <strong>htpasswd</strong> is used to create and update the flat-files used to
+ store usernames and password for basic authentication of
+ HTTP users. If <strong>htpasswd</strong> cannot access a file, such as not
+ being able to write to the output file or not being able to
+ read the file in order to update it, it returns an error
+ status and makes no changes.
+
+ Resources available from the <strong>httpd</strong> Apache web server can be
+ restricted to just the users listed in the files created by
+ <strong>htpasswd.</strong> This program can only manage usernames and pass-
+ words stored in a flat-file. It can encrypt and display
+ password information for use in other types of data stores,
+ though. To use a DBM database see <strong>dbmmanage</strong>.
+
+ <strong>htpasswd</strong> encrypts passwords using either a version of MD5
+ modified for Apache, or the system's <em>crypt</em>() routine. Files
+ managed by <strong>htpasswd</strong> may contain both types of passwords;
+ some user records may have MD5-encrypted passwords while
+ others in the same file may have passwords encrypted with
+ <em>crypt</em>().
+
+ This manual page only lists the command line arguments. For
+ details of the directives necessary to configure user
+ authentication in <strong>httpd</strong> see the Apache manual, which is part
+ of the Apache distribution or can be found at
+ &lt;URL:http://www.apache.org/&gt;.
+
+<strong>OPTIONS</strong>
+ -b Use batch mode; <em>i</em>.<em>e</em>., get the password from the command
+ line rather than prompting for it. <strong>This option should</strong>
+ <strong>be used with extreme care, since the password is</strong>
+ <strong>clearly visible on the command line.</strong>
+
+ -c Create the <em>passwdfile</em>. If <em>passwdfile</em> already exists, it
+ is rewritten and truncated. This option cannot be com-
+ bined with the <strong>-n</strong> option.
+
+ -n Display the results on standard output rather than
+ updating a file. This is useful for generating pass-
+ word records acceptable to Apache for inclusion in
+ non-text data stores. This option changes the syntax
+ of the command line, since the <em>passwdfile</em> argument
+ (usually the first one) is omitted. It cannot be com-
+ bined with the <strong>-c</strong> option.
+
+ -m Use Apache's modified MD5 algorithm for passwords.
+ Passwords encrypted with this algorithm are transport-
+ able to any platform (Windows, Unix, BeOS, et cetera)
+ running Apache 1.3.9 or later. On Windows and TPF,
+ this flag is the default.
+
+ -d Use crypt() encryption for passwords. The default on
+ all platforms but Windows and TPF. Though possibly sup-
+ ported by <strong>htpasswd</strong> on all platforms, it is not sup-
+ ported by the <strong>httpd</strong> server on Windows and TPF.
+
+ -s Use SHA encryption for passwords. Faciliates migration
+ from/to Netscape servers using the LDAP Directory
+ Interchange Format (ldif).
+
+ -p Use plaintext passwords. Though <strong>htpasswd</strong> will support
+ creation on all platforms, the <strong>httpd</strong> deamon will only
+ accept plain text passwords on Windows and TPF.
+
+ <em>passwdfile</em>
+ Name of the file to contain the user name and password.
+ If -c is given, this file is created if it does not
+ already exist, or rewritten and truncated if it does
+ exist.
+
+ <em>username</em>
+ The username to create or update in <strong>passwdfile</strong>. If
+ <em>username</em> does not exist in this file, an entry is
+ added. If it does exist, the password is changed.
+
+ <em>password</em>
+ The plaintext password to be encrypted and stored in
+ the file. Only used with the -<em>b</em> flag.
+
+<strong>EXIT STATUS</strong>
+ <strong>htpasswd</strong> returns a zero status ("true") if the username and
+ password have been successfully added or updated in the
+ <em>passwdfile</em>. <strong>htpasswd</strong> returns 1 if it encounters some prob-
+ lem accessing files, 2 if there was a syntax problem with
+ the command line, 3 if the password was entered interac-
+ tively and the verification entry didn't match, 4 if its
+ operation was interrupted, 5 if a value is too long (user-
+ name, filename, password, or final computed record), and 6
+ if the username contains illegal characters (see the <strong>RES-</strong>
+ <strong>TRICTIONS</strong> section).
+
+<strong>EXAMPLES</strong>
+ <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong>
+
+ Adds or modifies the password for user <em>jsmith</em>. The user
+ is prompted for the password. If executed on a Windows
+ system, the password will be encrypted using the modi-
+ fied Apache MD5 algorithm; otherwise, the system's
+ <em>crypt</em>() routine will be used. If the file does not
+ exist, <strong>htpasswd</strong> will do nothing except return an error.
+
+ <strong>htpasswd -c /home/doe/public_html/.htpasswd jane</strong>
+
+ Creates a new file and stores a record in it for user
+ <em>jane</em>. The user is prompted for the password. If the
+ file exists and cannot be read, or cannot be written,
+ it is not altered and <strong>htpasswd</strong> will display a message
+ and return an error status.
+
+ <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong>
+
+ Encrypts the password from the command line (<em>Pwd4Steve</em>)
+ using the MD5 algorithm, and stores it in the specified
+ file.
+
+<strong>SECURITY CONSIDERATIONS</strong>
+ Web password files such as those managed by <strong>htpasswd</strong> should
+ <strong>not</strong> be within the Web server's URI space -- that is, they
+ should not be fetchable with a browser.
+
+ The use of the -<em>b</em> option is discouraged, since when it is
+ used the unencrypted password appears on the command line.
+
+<strong>RESTRICTIONS</strong>
+ On the Windows and MPE platforms, passwords encrypted with
+ <strong>htpasswd</strong> are limited to no more than 255 characters in
+ length. Longer passwords will be truncated to 255 charac-
+ ters.
+
+ The MD5 algorithm used by <strong>htpasswd</strong> is specific to the Apache
+ software; passwords encrypted using it will not be usable
+ with other Web servers.
+
+ Usernames are limited to 255 bytes and may not include the
+ character ':'.
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong> and the scripts in support/SHA1 which come with the
+ distribution.
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.ja.jis
index 33a051aef6a..1e363f82f02 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/programs/htpasswd.html.ja.jis
@@ -182,3 +182,187 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Manual Page: htpasswd - Apache HTTP Server</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.3 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: htpasswd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>$BL>>N(B</strong>
+ htpasswd - $B%f!<%6G'>Z%U%!%$%k$N:n@.$H99?7(B
+
+<strong>$B=q<0(B</strong>
+ <strong>htpasswd</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <strong>htpasswd</strong> -<strong>b</strong> [ -<strong>c</strong> ] [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>passwdfile username</em>
+ <em>password</em>
+ <strong>htpasswd</strong> -<strong>n</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username</em>
+ <strong>htpasswd</strong> -<strong>nb</strong> [ -<strong>m</strong> | -<strong>d</strong> | -<strong>s</strong> | -<strong>p</strong> ] <em>username password</em>
+
+<strong>$B2r@b(B</strong>
+ <strong>htpasswd </strong>$B$O!"(BHTTP $B%f!<%6$N4pK\G'>Z$N$?$a%f!<%6L>$H(B
+ $B%Q%9%o!<%I$r5-O?$9$k$?$a$N%U%i%C%H%U%!%$%k$N:n@.$H99?7$K;HMQ$5$l$^$9!#(B
+ <strong>htpasswd</strong>$B$,=PNO%U%!%$%k$K=q$-9~$a$J$$!"$^$?99?7$9$k$?$a$K(B
+ $BFI$_$H$k$3$H$,$G$-$J$$$J$I!"%U%!%$%k$K%"%/%;%9$9$k$3$H$,$G$-$J$$>l9g!"(B
+ $B%(%i!<%9%F!<%?%9$rJV$7!"JQ99$r9T$$$^$;$s!#(B
+
+ <strong>httpd</strong> Apache $B%&%'%V%5!<%P$O(B $B%j%=!<%9$N;HMQ$r(B <strong>htpasswd</strong>
+ $B$K$h$C$F:n@.$5$l$k%U%!%$%k$K%j%9%H$5$l$?%f!<%6$@$1$K@)8B$9$k(B
+ $B$3$H$,$G$-$^$9!#$3$N%W%m%0%i%`$O%U%i%C%H%U%!%$%k$K5-O?$5$l$?(B
+ $B%f!<%6L>$H%Q%9%o!<%I$N4IM}$N$_$r9T$J$&$3$H$,$G$-$^$9!#(B
+ $B$H$O8@$C$F$b!"B>$N%?%$%W$N%G!<%?$N5-O?$N$?$a$K;HMQ$7$F$b(B
+ $B%Q%9%o!<%I>pJs$r0E9f2=$7$FI=<($9$k$3$H$,$G$-$^$9!#(B
+ DBM $B%G!<%?%Y!<%9$r;HMQ$9$k$?$a$K$O(B <strong>dbmmanage</strong> $B$r8+$F$/$@$5$$!#(B
+
+ <strong>htpasswd</strong> $B$O(B Apache $BMQ$K2~B$$5$l$?%P!<%8%g%s$N(B MD5 $B$+$^$?$O(B
+ $B%7%9%F%`$N(B <em>crypt()</em> $B%k!<%A%s$r;HMQ$7$F%Q%9%o!<%I$r0E9f2=$7$^$9!#(B
+ <strong>htpasswd</strong> $B$G4IM}$5$l$?%U%!%$%k$ON>J}$N%?%$%W$N%Q%9%o!<%I(B
+ $B$r4^$`$+$b$7$l$^$;$s(B; $B$"$k%f!<%6%l%3!<%I$,(B MD5 $B$G0E9f2=$5$l$?(B
+ $B%Q%9%o!<%I$G$"$k$N$KBP$7!"F1$8%U%!%$%k$NB>$N%f!<%6$O(B <em>crypt()</em> $B$K$h$j(B
+ $B0E9f2=$5$l$?%Q%9%o!<%I$G$"$k$+$b$7$l$^$;$s!#(B
+
+ $B$3$N%^%K%e%"%k%Z!<%8$O%3%^%s%I%i%$%s$N0z?t$r5s$2$F$$$k$@$1$G$9!#(B
+ <strong>httpd</strong> $B$N%f!<%6G'>Z@_Dj$KI,MW$J%G%#%l%/%F%#%V(B $B$N>\:Y$O!"(B
+ Apache $BG[I[J*$d(B &lt;URL:http://www.apache.org/&gt; $B$G8+$D$1$k$3$H$,$G$-$k(B
+ Apache $B%^%K%e%"%k$r;2>H$7$F$/$@$5$$!#(B
+
+
+<strong>$B%*%W%7%g%s(B</strong>
+ -b $B%P%C%A%b!<%I$N;HMQ(B <em>$B$9$J$o$A(B</em> $B!"%W%m%s%W%H$G$O$J$/(B
+ $B%3%^%s%I%i%$%s$+$i%Q%9%o!<%I$rF@$^$9!#(B<strong>$B%Q%9%o!<%I$,(B</strong>
+ <strong>$B%3%^%s%I%i%$%s>e$GL@3N$KL\$K8+$($k$N$G!"(B</strong>
+ <strong>$B$3$N%*%W%7%g%s$O6K$a$FCm0U$7$F;HMQ$5$l$k$Y$-$G$9!#(B</strong>
+
+ -c <em>$B%Q%9%o!<%I%U%!%$%k(B</em>$B$r:n@.$7$^$9!#(B<em>$B%Q%9%o!<%I%U%!%$%k(B</em>
+ $B$,$9$G$K$"$k>l9g!">e=q$-$5$l$F@Z$j<N$F$i$l$^$9!#(B $B$3$N%*%W%7%g%s$O(B
+ <strong>-n </strong>$B%*%W%7%g%s$HAH$_9g$o$;$k$3$H$,$G$-$^$;$s!#(B
+
+ -n $B%U%!%$%k$r99?7$9$k$N$G$O$J$/I8=`=PNO$K7k2L$rI=<($7$^$9!#(B
+ $BHs%F%-%9%H%G!<%?$,4^$^$l$F$$$F(B Apache $B$K<u$1F~$l$i$l$k(B
+ $B%Q%9%o!<%I%l%3!<%I$r@8@.$9$k$N$KM-1W$G$9!#(B
+ $B$3$N%*%W%7%g%s$O(B<em>$B%Q%9%o!<%I%U%!%$%k(B</em>$B$N0z?t(B
+ ($BDL>o$O:G=i$N$b$N(B)$B$,>JN,$5$l$k$N$G!"%3%^%s%I%i%$%s$NJ8K!$,(B
+ $B@Z$jBX$o$j$^$9!#(B
+ <strong>-c </strong>$B%*%W%7%g%s$HAH$_9g$o$;$k$3$H$O$G$-$^$;$s!#(B
+
+ -m $B%Q%9%o!<%I$K(B Apache $BMQ$K2~B$$5$l$?(B MD5 $B%"%k%4%j%:%`$r;HMQ(B
+ $B$7$^$9!#$3$N%"%k%4%j%:%`$K$h$j0E9f2=$5$l$?%Q%9%o!<%I$O!"(B
+ Apache 1.3.9 $B$^$?$O$=$l0J9_$,F0$$$F$$$k$"$i$f$k%W%i%C%H(B
+ $B%[!<%`(B (Windows, Unix, BeOS, $B$=$NB>(B) $B$K0\?"2DG=$G$9!#(B
+ Windows $B$H(B TPF $B$G$O$3$N%U%i%0$,%G%U%)%k%H$G$9!#(B
+
+ -d $B%Q%9%o!<%I$K(B crypt() $B0E9f2=$r;HMQ$7$^$9!#(BWindows $B$H(B TPF
+ $B0J30$N$9$Y$F$N%W%i%C%H%U%)!<%`$G%G%U%)%k%H$G$9!#(B
+ $B$*$=$i$/$9$Y$F$N%W%i%C%H%U%)!<%`$G$N(B <strong>htpasswd</strong>
+ $B$K$h$j%5%]!<%H$5$l$^$9$,!"(BWindows $B$H(B TPF $B$N(B <strong>httpd</strong>
+ $B%5!<%P$K$h$k%5%]!<%H$O$"$j$^$;$s!#(B
+
+ -s $B%Q%9%o!<%I$K(B SHA $B0E9f2=$r;HMQ$7$^$9!#(BLDAP $B%G%#%l%/%H%j(B
+ $BJQ49%U%)!<%^%C%H(B (ldif) $B$r;HMQ$9$k(B Netscape $B%5!<%P(B
+ $B$+$i$N(B/$B$X$N(B $B0\9T$rMF0W$K$7$^$9!#(B
+
+ -p $B%W%l!<%s%F%-%9%H%Q%9%o!<%I$r;HMQ$7$^$9!#(B <strong>htpasswd</strong>
+ $B$,$9$Y$F$N%W%i%C%H%U%)!<%`$G$N:n@.$r%5%]!<%H$7$F$b(B <strong>httpd</strong>
+ $B%G!<%b%s$O(B Windows $B$H(B TPF $B>e$G$O!"%W%l!<%s%F%-%9%H$N%Q%9%o!<%I(B
+ $B$N$_<uIU$1$k$G$7$g$&!#(B
+
+ <em>passwdfile</em>
+ $B%f!<%6L>$H%Q%9%o!<%I$,4^$^$l$F$$$k%U%!%$%kL>$G$9!#(B
+ $B$b$7(B -c $B$,M?$($i$l$?>l9g!"%U%!%$%k$,B8:_$7$J$$$J$i$P(B
+ $B%U%!%$%k$r:n@.$7!"$^$?B8:_$7$F$$$k$J$i!">e=q$-$5$l$^$9!#(B
+
+ <em>username</em>
+ <strong>passwdfile</strong> $B$K:n@.$^$?$O99?7$9$k%f!<%6L>$G$9!#(B
+ <em>username</em> $B$,B8:_$7$J$$>l9g$O%(%s%H%j$rDI2C$7$^$9!#(B
+ $BB8:_$9$k>l9g$K$O%Q%9%o!<%I$rJQ99$7$^$9!#(B
+
+ <em>password</em>
+ $B%U%!%$%k$K0E9f2=$5$l$F5-O?$5$l$k%W%l!<%s%F%-%9%H$N(B
+ $B%Q%9%o!<%I$G$9!#(B -<em>b</em> $B%U%i%0$G$N$_;HMQ$5$l$^$9!#(B
+
+<strong>$B=*N;%9%F!<%?%9(B</strong>
+ $B%f!<%6L>$H%Q%9%o!<%I$,<sHx$h$/(B <em>passwdfile</em> $B$KDI2C$^$?$O99?7(B
+ $B$5$l$?>l9g!"(B<strong>htpasswd</strong> $B$O%<%m%9%F!<%?%9(B ("$B??(B") $B$rJV$7$^$9!#(B
+ <strong>htpasswd</strong> $B$O!"%U%!%$%k%"%/%;%9$NLdBj$KAx6x$7$?>l9g$O(B 1$B!"(B
+ $B%3%^%s%I%i%$%s$K4X$9$kJ8K!$NLdBj$,$"$C$?>l9g$O(B 2$B!"(B
+ $BBPOC<0$G%Q%9%o!<%I$rF~NO$7$?:]$K3NG'$N%(%s%H%j$,%^%C%A$7$J$+$C$?>l9g$O(B 3$B!"(B
+ $BA`:n$,CfCG$5$l$?>l9g$O(B 4$B!"(B($B%f!<%6L>!"%U%!%$%kL>!"%Q%9%o!<%I!"$^$?$O(B
+ $B:G8e$K7W;;$5$l$?%l%3!<%I(B) $B$K$*$$$FCM$,D9$9$.$k>l9g$O(B 5$B!"(B
+ $B%f!<%6L>$KIT@5$JJ8;z$,4^$^$l$F$$$k(B(<strong>RESTRICTIONS</strong>
+ $B%;%/%7%g%s$r8+$F$/$@$5$$(B) $B>l9g$O(B 6 $B$rJV$7$^$9!#(B
+
+<strong>$BNc(B</strong>
+ <strong>htpasswd /usr/local/etc/apache/.htpasswd-users jsmith</strong>
+
+ $B%f!<%6(B <em>jsmith</em> $B$N%Q%9%o!<%I$rDI2C$^$?$O=$@5$7$^$9!#(B
+ $B%f!<%6$O%Q%9%o!<%I$NF~NO$rB%$5$l$^$9!#(BWindows $B%7%9%F%`>e$G(B
+ $B<B9T$5$l$?>l9g!"%Q%9%o!<%I$O(B Apache MD5 $B%"%k%4%j%:%`$r;HMQ$7$F(B
+ $B0E9f2=$5$l$k$G$7$g$&!#B>$N>l9g$O!"%7%9%F%`$N(B <em>crypt()</em>
+ $B%k!<%A%s$,;HMQ$5$l$k$G$7$g$&!#%U%!%$%k$,B8:_$7$J$$>l9g!"(B
+ <strong>htpasswd</strong> $B$O%(%i!<$rJV$90J30$K$O2?$b$7$J$$$G$7$g$&!#(B
+
+ <strong>htpasswd -c /home/doe/public_html/.htpasswd jane</strong>
+
+ $B?7$7$$%U%!%$%k$r:n@.$7!"%f!<%6(B <em>jane</em> $B$N%l%3!<%I$r5-O?$7$^$9!#(B
+ $B%f!<%6$O%Q%9%o!<%I$NF~NO$rB%$5$l$^$9!#(B
+ $B%U%!%$%k$,B8:_$9$k$1$l$IFI$a$J$$$^$?$O=q$-9~$_$,$G$-$J$$>l9g$O(B
+ $BJQ99$5$l$:!"(B<strong>htpasswd</strong> $B$O%a%C%;!<%8$rI=<($7$F(B
+ $B%(%i!<%9%F!<%?%9$rJV$9$G$7$g$&!#(B
+
+ <strong>htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve</strong>
+
+ MD5 $B%"%k%4%j%:%`$r;H$C$F%3%^%s%I%i%$%s$+$i$N%Q%9%o!<%I(B
+ (<em>Pwd4Steve</em>) $B$r0E9f2=$7!";XDj$5$l$?%U%!%$%k$K5-O?$7$^$9!#(B
+
+<strong>$B%;%-%e%j%F%#$N=EMW@-(B</strong>
+ <strong>htpasswd</strong> $B$K$h$C$F4IM}$5$l$k$h$&$J%&%'%V%Q%9%o!<%I%U%!%$%k(B
+ $B$O%&%'%V%5!<%P$N(B URI $B$N>l=jFb$K$"$k$Y$-$G$O$"$j$^$;$s!#(B--
+ $B$9$J$o$A!"%&%'%V%V%i%&%6$K$h$C$F8F$S=P$72DG=$H$9$k$Y$-$G$O$"$j$^$;$s!#(B
+
+ -<em>b</em> $B%*%W%7%g%s$N;HMQ$9$kJ}K!$O!"0E9f2=$5$l$F$$$J$$%Q%9%o!<%I$,(B
+ $B%3%^%s%I%i%$%s$K8=$l$?$H$-$+$iM^;_$5$l$^$9!#(B
+
+<strong>$B@)8B(B</strong>
+ Windows $B$H(B MPE $B%W%i%C%H%U%)!<%`$G(B <strong>htpasswd</strong> $B$G0E9f2=$5$l$?(B
+ $B%Q%9%o!<%I$O(B 255 $BJ8;z$ND9$5$@$1$K@)8B$5$l$F$$$^$9!#(B
+ $B$h$jD9$$%Q%9%o!<%I$O(B 255 $BJ8;z$K@Z$j<N$F$i$l$k$G$7$g$&!#(B
+
+ <strong>htpasswd </strong>$B$K$h$C$F;HMQ$5$l$k(B MD5 $B%"%k%4%j%:%`$O(B Apache
+ $B%=%U%H%&%'%"$KFCM-$G!"$=$l$rMQ$$$F0E9f2=$5$l$?%Q%9%o!<%I$O(B
+ $BB>$N%&%'%V%5!<%P$G$O;HMQ$G$-$J$$$G$7$g$&!#(B
+
+ $B%f!<%6L>$O(B 255 $B%P%$%H$K@)8B$5$l!"%-%c%i%/%?(B ':' $B$r4^$^$l$J(B
+ $B$$$+$b$7$l$^$;$s!#(B
+
+<strong>$B4XO"9`L\(B</strong>
+ SHA1 $B%5%]!<%H$N(B <strong>httpd(8)</strong> $B$H%9%/%j%W%H$OG[I[J*$H6&$K(B
+ $B=PMh>e$,$j$^$9!#(B
+
+</pre>
+
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/programs/httpd.html b/usr.sbin/httpd/htdocs/manual/programs/httpd.html
index 9a0e9d2d473..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/httpd.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/httpd.html
@@ -1,141 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Manual Page: httpd - Apache HTTP Server</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#ffffff" text="#000000" link="#0000ff"
- vlink="#000080" alink="#ff0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="center">Manual Page: httpd</h1>
- <!-- This document was autogenerated from the man page -->
-<pre>
-<strong>NAME</strong>
- httpd - Apache hypertext transfer protocol server
-
-<strong>SYNOPSIS</strong>
- <strong>httpd</strong> [ -<strong>X</strong> ] [ -<strong>R</strong> <em>libexecdir</em> ] [ -<strong>d</strong> <em>serverroot</em> ] [ -<strong>f</strong> <em>config</em>
- ] [ -<strong>C</strong> <em>directive</em> ] [ -<strong>c</strong> <em>directive</em> ] [ -<strong>D</strong> <em>parameter</em> ]
-
- <strong>httpd</strong> [ -<strong>h</strong> ] [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ] [ -<strong>S</strong> ] [ -<strong>t</strong> ] [ -<strong>T</strong>
- ]
-
-<strong>DESCRIPTION</strong>
- <strong>httpd</strong> is the Apache HyperText Transfer Protocol (HTTP)
- server program. It is designed to be run as a standalone
- daemon process. When used like this it will create a pool of
- child processes to handle requests. To stop it, send a TERM
- signal to the initial (parent) process. The PID of this pro-
- cess is written to a file as given in the configuration
- file. Alternatively <strong>httpd</strong> may be invoked by the Internet
- daemon inetd(8) each time a connection to the HTTP service
- is made.
-
- This manual page only lists the command line arguments. For
- details of the directives necessary to configure <strong>httpd</strong> see
- the Apache manual, which is part of the Apache distribution
- or can be found at http://www.apache.org/. Paths in this
- manual may not reflect those compiled into <strong>httpd.</strong>
-
-<strong>OPTIONS</strong>
- -<strong>R</strong> <em>libexecdir</em>
- This option is only available if Apache was
- built with the <em>SHARED</em>_<em>CORE</em> rule enabled which
- forces the Apache core code to be placed into a
- dynamic shared object (DSO) file. This file is
- searched in a hardcoded path under ServerRoot
- per default. Use this option if you want to
- override it.
-
- -<strong>d</strong> <em>serverroot</em>
- Set the initial value for the ServerRoot direc-
- tive to <em>serverroot</em>. This can be overridden by
- the ServerRoot command in the configuration
- file. The default is <strong>/usr/local/apache</strong>.
-
- -<strong>f</strong> <em>config</em> Execute the commands in the file <em>config</em> on
- startup. If <em>config</em> does not begin with a /, then
- it is taken to be a path relative to the Server-
- Root. The default is <strong>conf/httpd.conf</strong>.
-
- -<strong>C</strong> <em>directive</em>
- Process the configuration <em>directive</em> before read-
- ing config files.
-
- -<strong>c</strong> <em>directive</em>
- Process the configuration <em>directive</em> after read-
- ing config files.
-
- -<strong>D</strong> <em>parameter</em>
- Sets a configuration <em>parameter</em> which can be used
- with &lt;IfDefine&gt;...&lt;/IfDefine&gt; sections in the
- configuration files to conditionally skip or
- process commands.
-
- -<strong>h </strong> Output a short summary of available command line
- options.
-
- -<strong>l </strong> Output a list of modules compiled into the
- server.
-
- -<strong>L </strong> Output a list of directives together with
- expected arguments and places where the direc-
- tive is valid.
-
- -<strong>S </strong> Show the settings as parsed from the config file
- (currently only shows the virtualhost settings).
-
- -<strong>t </strong> Run syntax tests for configuration files only.
- The program immediately exits after these syntax
- parsing with either a return code of 0 (Syntax
- OK) or return code not equal to 0 (Syntax
- Error).
-
- -<strong>T </strong> Same as option -<strong>t</strong> but does not check the config-
- ured document roots.
-
- -<strong>X </strong> Run in single-process mode, for internal debug-
- ging purposes only; the daemon does not detach
- from the terminal or fork any children. Do NOT
- use this mode to provide ordinary web service.
-
- -<strong>v </strong> Print the version of <strong>httpd</strong> , and then exit.
-
- -<strong>V </strong> Print the version and build parameters of <strong>httpd</strong>
- , and then exit.
-
-<strong>FILES</strong>
- <strong>/usr/local/apache/conf/httpd.conf</strong>
- <strong>/usr/local/apache/conf/srm.conf</strong>
- <strong>/usr/local/apache/conf/access.conf</strong>
- <strong>/usr/local/apache/conf/mime.types</strong>
- <strong>/usr/local/apache/conf/magic</strong>
- <strong>/usr/local/apache/logs/error_log</strong>
- <strong>/usr/local/apache/logs/access_log</strong>
- <strong>/usr/local/apache/logs/httpd.pid</strong>
-
-<strong>SEE ALSO</strong>
- <strong>inetd</strong>(8).
-
-</pre>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.en b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.en
index 9a0e9d2d473..107d60a02e4 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.en
+++ b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.en
@@ -139,3 +139,144 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: httpd - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: httpd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ httpd - Apache hypertext transfer protocol server
+
+<strong>SYNOPSIS</strong>
+ <strong>httpd</strong> [ -<strong>X</strong> ] [ -<strong>R</strong> <em>libexecdir</em> ] [ -<strong>d</strong> <em>serverroot</em> ] [ -<strong>f</strong> <em>config</em>
+ ] [ -<strong>C</strong> <em>directive</em> ] [ -<strong>c</strong> <em>directive</em> ] [ -<strong>D</strong> <em>parameter</em> ]
+
+ <strong>httpd</strong> [ -<strong>h</strong> ] [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ] [ -<strong>S</strong> ] [ -<strong>t</strong> ] [ -<strong>T</strong>
+ ]
+
+<strong>DESCRIPTION</strong>
+ <strong>httpd</strong> is the Apache HyperText Transfer Protocol (HTTP)
+ server program. It is designed to be run as a standalone
+ daemon process. When used like this it will create a pool of
+ child processes to handle requests. To stop it, send a TERM
+ signal to the initial (parent) process. The PID of this pro-
+ cess is written to a file as given in the configuration
+ file. Alternatively <strong>httpd</strong> may be invoked by the Internet
+ daemon inetd(8) each time a connection to the HTTP service
+ is made.
+
+ This manual page only lists the command line arguments. For
+ details of the directives necessary to configure <strong>httpd</strong> see
+ the Apache manual, which is part of the Apache distribution
+ or can be found at http://www.apache.org/. Paths in this
+ manual may not reflect those compiled into <strong>httpd.</strong>
+
+<strong>OPTIONS</strong>
+ -<strong>R</strong> <em>libexecdir</em>
+ This option is only available if Apache was
+ built with the <em>SHARED</em>_<em>CORE</em> rule enabled which
+ forces the Apache core code to be placed into a
+ dynamic shared object (DSO) file. This file is
+ searched in a hardcoded path under ServerRoot
+ per default. Use this option if you want to
+ override it.
+
+ -<strong>d</strong> <em>serverroot</em>
+ Set the initial value for the ServerRoot direc-
+ tive to <em>serverroot</em>. This can be overridden by
+ the ServerRoot command in the configuration
+ file. The default is <strong>/usr/local/apache</strong>.
+
+ -<strong>f</strong> <em>config</em> Execute the commands in the file <em>config</em> on
+ startup. If <em>config</em> does not begin with a /, then
+ it is taken to be a path relative to the Server-
+ Root. The default is <strong>conf/httpd.conf</strong>.
+
+ -<strong>C</strong> <em>directive</em>
+ Process the configuration <em>directive</em> before read-
+ ing config files.
+
+ -<strong>c</strong> <em>directive</em>
+ Process the configuration <em>directive</em> after read-
+ ing config files.
+
+ -<strong>D</strong> <em>parameter</em>
+ Sets a configuration <em>parameter</em> which can be used
+ with &lt;IfDefine&gt;...&lt;/IfDefine&gt; sections in the
+ configuration files to conditionally skip or
+ process commands.
+
+ -<strong>h </strong> Output a short summary of available command line
+ options.
+
+ -<strong>l </strong> Output a list of modules compiled into the
+ server.
+
+ -<strong>L </strong> Output a list of directives together with
+ expected arguments and places where the direc-
+ tive is valid.
+
+ -<strong>S </strong> Show the settings as parsed from the config file
+ (currently only shows the virtualhost settings).
+
+ -<strong>t </strong> Run syntax tests for configuration files only.
+ The program immediately exits after these syntax
+ parsing with either a return code of 0 (Syntax
+ OK) or return code not equal to 0 (Syntax
+ Error).
+
+ -<strong>T </strong> Same as option -<strong>t</strong> but does not check the config-
+ ured document roots.
+
+ -<strong>X </strong> Run in single-process mode, for internal debug-
+ ging purposes only; the daemon does not detach
+ from the terminal or fork any children. Do NOT
+ use this mode to provide ordinary web service.
+
+ -<strong>v </strong> Print the version of <strong>httpd</strong> , and then exit.
+
+ -<strong>V </strong> Print the version and build parameters of <strong>httpd</strong>
+ , and then exit.
+
+<strong>FILES</strong>
+ <strong>/usr/local/apache/conf/httpd.conf</strong>
+ <strong>/usr/local/apache/conf/srm.conf</strong>
+ <strong>/usr/local/apache/conf/access.conf</strong>
+ <strong>/usr/local/apache/conf/mime.types</strong>
+ <strong>/usr/local/apache/conf/magic</strong>
+ <strong>/usr/local/apache/logs/error_log</strong>
+ <strong>/usr/local/apache/logs/access_log</strong>
+ <strong>/usr/local/apache/logs/httpd.pid</strong>
+
+<strong>SEE ALSO</strong>
+ <strong>inetd</strong>(8).
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.html b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.html
index 3a98dcd3bd1..f844c5540aa 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.html
@@ -143,3 +143,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: httpd - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: httpd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ httpd - Apache hypertext transfer protocol server
+
+<strong>SYNOPSIS</strong>
+ <strong>httpd</strong> [ -<strong>X</strong> ] [ -<strong>R</strong> <em>libexecdir</em> ] [ -<strong>d</strong> <em>serverroot</em> ] [ -<strong>f</strong> <em>config</em>
+ ] [ -<strong>C</strong> <em>directive</em> ] [ -<strong>c</strong> <em>directive</em> ] [ -<strong>D</strong> <em>parameter</em> ]
+
+ <strong>httpd</strong> [ -<strong>h</strong> ] [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ] [ -<strong>S</strong> ] [ -<strong>t</strong> ] [ -<strong>T</strong>
+ ]
+
+<strong>DESCRIPTION</strong>
+ <strong>httpd</strong> is the Apache HyperText Transfer Protocol (HTTP)
+ server program. It is designed to be run as a standalone
+ daemon process. When used like this it will create a pool of
+ child processes to handle requests. To stop it, send a TERM
+ signal to the initial (parent) process. The PID of this pro-
+ cess is written to a file as given in the configuration
+ file. Alternatively <strong>httpd</strong> may be invoked by the Internet
+ daemon inetd(8) each time a connection to the HTTP service
+ is made.
+
+ This manual page only lists the command line arguments. For
+ details of the directives necessary to configure <strong>httpd</strong> see
+ the Apache manual, which is part of the Apache distribution
+ or can be found at http://www.apache.org/. Paths in this
+ manual may not reflect those compiled into <strong>httpd.</strong>
+
+<strong>OPTIONS</strong>
+ -<strong>R</strong> <em>libexecdir</em>
+ This option is only available if Apache was
+ built with the <em>SHARED</em>_<em>CORE</em> rule enabled which
+ forces the Apache core code to be placed into a
+ dynamic shared object (DSO) file. This file is
+ searched in a hardcoded path under ServerRoot
+ per default. Use this option if you want to
+ override it.
+
+ -<strong>d</strong> <em>serverroot</em>
+ Set the initial value for the ServerRoot direc-
+ tive to <em>serverroot</em>. This can be overridden by
+ the ServerRoot command in the configuration
+ file. The default is <strong>/usr/local/apache</strong>.
+
+ -<strong>f</strong> <em>config</em> Execute the commands in the file <em>config</em> on
+ startup. If <em>config</em> does not begin with a /, then
+ it is taken to be a path relative to the Server-
+ Root. The default is <strong>conf/httpd.conf</strong>.
+
+ -<strong>C</strong> <em>directive</em>
+ Process the configuration <em>directive</em> before read-
+ ing config files.
+
+ -<strong>c</strong> <em>directive</em>
+ Process the configuration <em>directive</em> after read-
+ ing config files.
+
+ -<strong>D</strong> <em>parameter</em>
+ Sets a configuration <em>parameter</em> which can be used
+ with &lt;IfDefine&gt;...&lt;/IfDefine&gt; sections in the
+ configuration files to conditionally skip or
+ process commands.
+
+ -<strong>h </strong> Output a short summary of available command line
+ options.
+
+ -<strong>l </strong> Output a list of modules compiled into the
+ server.
+
+ -<strong>L </strong> Output a list of directives together with
+ expected arguments and places where the direc-
+ tive is valid.
+
+ -<strong>S </strong> Show the settings as parsed from the config file
+ (currently only shows the virtualhost settings).
+
+ -<strong>t </strong> Run syntax tests for configuration files only.
+ The program immediately exits after these syntax
+ parsing with either a return code of 0 (Syntax
+ OK) or return code not equal to 0 (Syntax
+ Error).
+
+ -<strong>T </strong> Same as option -<strong>t</strong> but does not check the config-
+ ured document roots.
+
+ -<strong>X </strong> Run in single-process mode, for internal debug-
+ ging purposes only; the daemon does not detach
+ from the terminal or fork any children. Do NOT
+ use this mode to provide ordinary web service.
+
+ -<strong>v </strong> Print the version of <strong>httpd</strong> , and then exit.
+
+ -<strong>V </strong> Print the version and build parameters of <strong>httpd</strong>
+ , and then exit.
+
+<strong>FILES</strong>
+ <strong>/usr/local/apache/conf/httpd.conf</strong>
+ <strong>/usr/local/apache/conf/srm.conf</strong>
+ <strong>/usr/local/apache/conf/access.conf</strong>
+ <strong>/usr/local/apache/conf/mime.types</strong>
+ <strong>/usr/local/apache/conf/magic</strong>
+ <strong>/usr/local/apache/logs/error_log</strong>
+ <strong>/usr/local/apache/logs/access_log</strong>
+ <strong>/usr/local/apache/logs/httpd.pid</strong>
+
+<strong>SEE ALSO</strong>
+ <strong>inetd</strong>(8).
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.ja.jis
index 4f7a302976f..cae496aa43a 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/httpd.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/programs/httpd.html.ja.jis
@@ -136,3 +136,141 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Manual Page: httpd - Apache HTTP Server</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.3 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: httpd</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>$BL>>N(B</strong>
+ httpd - Apache $B%O%$%Q!<%F%-%9%HE>Aw%W%m%H%3%k(B (HTTP) $B%5!<%P(B
+
+<strong>$B=q<0(B</strong>
+ <strong>httpd</strong> [ -<strong>X</strong> ] [ -<strong>R</strong> <em>libexecdir</em> ] [ -<strong>d</strong> <em>serverroot</em> ] [ -<strong>f</strong> <em>config</em>
+ ] [ -<strong>C</strong> <em>directive</em> ] [ -<strong>c</strong> <em>directive</em> ] [ -<strong>D</strong> <em>parameter</em> ]
+
+ <strong>httpd</strong> [ -<strong>h</strong> ] [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ] [ -<strong>S</strong> ] [ -<strong>t</strong> ] [ -<strong>T</strong>
+ ]
+
+<strong>$B2r@b(B</strong>
+ <strong>httpd</strong> $B$O(B Apache $B%O%$%Q!<%F%-%9%HE>Aw%W%m%H%3%k(B (HTTP) $B%5!<%P(B
+ $B%W%m%0%i%`$G$9!#%9%?%s%I%"%m%s%G!<%b%s%W%m%;%9$H$7$F<B9T$9$k$h$&(B
+ $B@_7W$5$l$F$$$^$9!#$=$N$h$&$KMxMQ$5$l$k>l9g!"%j%/%(%9%H$r=hM}$9$k(B
+ $B$?$a$K;R%W%m%;%9$N%W!<%k$r:n@.$7$^$9!#Dd;_$5$;$k$?$a$K$O(B TERM
+ $B%7%0%J%k$r:G=i$N(B ($B?F(B) $B%W%m%;%9$XAw$C$F$/$@$5$$!#?F%W%m%;%9$N(B
+ PID $B$O!"@_Dj%U%!%$%kCf$G;XDj$5$l$?%U%!%$%k$K=q$-9~$^$l$^$9!#(B
+ <strong>httpd</strong> $B$O!"%9%?%s%I%"%m%s%G!<%b%s%W%m%;%9$H$7$F(B
+ $B$G$O$J$/!"(BHTTP $B%5!<%S%9$X@\B3$5$l$k$?$S$K%$%s%?!<%M%C%H%9!<%Q!<(B
+ $B%5!<%P(B inetd(8) $B$+$i5/F0$5$;$k$3$H$b$G$-$^$9!#(B
+
+ $B$3$N%^%K%e%"%k%Z!<%8$O%3%^%s%I%i%$%s$N0z?t$r%j%9%H$7$F$$$k$@$1$G$9!#(B
+ <strong>httpd</strong> $B$N@_Dj$KI,MW$J%G%#%l%/%F%#%V$N>\:Y$O!"(BApache $BG[I[J*$d(B
+ http://www.apache.org/ $B$G8+$D$1$k$3$H$,$G$-$k(B Apache $B%^%K%e%"%k$r(B
+ $B;2>H$7$F$/$@$5$$!#$3$N%^%K%e%"%k$N%Q%9$O!"(B<strong>httpd</strong> $B$K%3%s%Q%$%k$5$l$F$$$k$b$N$H$O0c$&$+$b$7$l$^$;$s!#(B
+
+<strong>$B%*%W%7%g%s(B</strong>
+ -<strong>R</strong> <em>libexecdir</em>
+ $B$3$N%*%W%7%g%s$O(B Apache $B$r(B <em>SHARED</em>_<em>CORE</em> $B%k!<%k$r2DG=$K(B
+ $B$7$F%S%k%I$7$?>l9g$N$_MxMQ2DG=$G$9!#$=$N>l9g!"(BApache $B%3%"%3!<%I(B
+ $B$KF0E*$J6&M-%*%V%8%'%/%H(B (DSO) $B%U%!%$%k$KCV$+$l$^$9!#(B
+ $B$=$N%U%!%$%k$O%G%U%)%k%H$G(B ServerRoot $BG[2<$N(B
+ $B%O!<%I%3!<%I$5$l$?%Q%9Cf$+$i8!:w$5$l$^$9!#(B
+ $B$=$l$r>e=q$-$7$?$$>l9g$K$3$N%*%W%7%g%s$r;HMQ$7$F$/$@$5$$!#(B
+
+ -<strong>d</strong> <em>serverroot</em>
+ ServerRoot $B%G%#%l%/%F%#%V$N=i4|CM$r(B <em>serverroot</em> $B$G@_Dj(B
+ $B$7$^$9!#$3$NCM$O@_Dj%U%!%$%k$N(B Server-Root $B%3%^%s%I$G(B
+ $B>e=q$-2DG=$G$9!#%G%U%)%k%H$O(B <strong>/usr/local/apache</strong> $B$G$9!#(B
+
+ -<strong>f</strong> <em>config</em>
+ $B5/F0;~$K!"(B<em>config</em> $B$G;XDj$5$l$?%U%!%$%kCf$N%3%^%s%I$r(B
+ $B<B9T$7$^$9!#(B<em>config</em> $B$,(B / $B$G;O$^$i$J$$>l9g!"(BServerRoot
+ $B$+$i$NAjBP%Q%9$H2r<a$7$^$9!#(B
+ $B%G%U%)%k%H$O(B <strong>conf/httpd.conf</strong> $B$G$9!#(B
+
+ -<strong>C</strong> <em>directive</em>
+ $B@_Dj%U%!%$%k$rFI$_$3$`A0$K(B <em>directive</em> $B$r=hM}$7$^$9!#(B
+
+ -<strong>c</strong> <em>directive</em>
+ $B@_Dj%U%!%$%k$rFI$_$3$s$@8e$K(B <em>directive</em> $B$r=hM}$7$^$9!#(B
+
+ -<strong>D</strong> <em>parameter</em>
+ $B@_Dj%U%!%$%k$G>r7o$K$h$C$F%3%^%s%I$r%9%-%C%W$^$?$O=hM}(B
+ $B$9$k(B &lt;IfDefine&gt;...&lt;/IfDefine&gt; $B%;%/%7%g%s$H6&$K;HMQ$9$k(B
+ $B$3$H$,$G$-$k(B <em>parameter</em> $B$r@_Dj$7$^$9!#(B
+
+ -<strong>h </strong>
+ $BMxMQ2DG=$J%3%^%s%I%i%$%s%*%W%7%g%s$NC;$$MWLs$r=PNO$7$^$9!#(B
+
+ -<strong>l </strong>
+ $B%5!<%P$K%3%s%Q%$%k$5$l$F$$$k%b%8%e!<%k$N%j%9%H$r=PNO$7$^$9!#(B
+
+ -<strong>L </strong>
+ $B%G%#%l%/%F%#%V$N%j%9%H$r4|BT$5$l$k0z?t$H%G%#%l%/%F%#%V$,(B
+ $BM-8z$J>l=j$H6&$K=PNO$7$^$9!#(B
+
+ -<strong>S </strong>
+ $B@_Dj%U%!%$%k$+$i2r@O$5$l$?@_Dj$rI=<($7$^$9(B
+ ($B8=:_$O%P!<%A%c%k%[%9%H$N@_Dj$N$_$rI=<($7$^$9(B)$B!#(B
+
+ -<strong>t </strong>
+ $B@_Dj%U%!%$%k$NJ8K!%F%9%H$N$_$r9T$J$$$^$9!#%W%m%0%i%`$O(B
+ $BJ8K!2r@O$K$h$j(B 0 $B$N%j%?!<%s%3!<%I(B ($BJ8K!(B OK) $B$+Hs(B 0 $B$N(B
+ $B=*N;%3!<%I(B ($BJ8K!%(%i!<(B) $B$rJV$7$F$9$0$K=*N;$7$^$9!#(B
+
+ -<strong>T </strong>
+ $B%*%W%7%g%s(B -<strong>t</strong> $B$HF1MM$G$9$,!"@_Dj$5$l$?%I%-%e%a%s%H(B
+ $B%k!<%H$r%A%'%C%/$7$^$;$s!#(B
+
+ -<strong>X </strong>
+ $BFbIt$N%G%P%C%0L\E*$N$?$a$N$_$N%7%s%0%k%W%m%;%9%b!<%I$G(B
+ $B<B9T$7$^$9!#%G!<%b%s$O%?!<%_%J%k$+$iN%$l$:!";R%W%m%;%9(B
+ $B$r(B fork $B$7$^$;$s!#DL>o$N%&%'%V%5!<%S%9$r9T$J$&>l9g!"(B
+ $B$3$N%b!<%I$r;HMQ$7$F$O$$$1$^$;$s!#(B
+
+ -<strong>v httpd</strong> $B$N%P!<%8%g%s$r=PNO$7$F=*N;$7$^$9!#(B
+
+ -<strong>V httpd</strong> $B$N%P!<%8%g%s$H%S%k%I%Q%i%a!<%?$r=PNO$7$F=*N;$7$^$9!#(B
+
+<strong>$B4XO"%U%!%$%k(B</strong>
+ <strong>/usr/local/apache/conf/httpd.conf</strong>
+ <strong>/usr/local/apache/conf/srm.conf</strong>
+ <strong>/usr/local/apache/conf/access.conf</strong>
+ <strong>/usr/local/apache/conf/mime.types</strong>
+ <strong>/usr/local/apache/conf/magic</strong>
+ <strong>/usr/local/apache/logs/error_log</strong>
+ <strong>/usr/local/apache/logs/access_log</strong>
+ <strong>/usr/local/apache/logs/httpd.pid</strong>
+
+<strong>$B4XO"9`L\(B</strong>
+ <strong>inetd</strong>(8)
+
+</pre>
+
+
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis
index 2e90a058864..97c7fdd7357 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/programs/index.html.ja.jis
@@ -1,74 +1,81 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
- <head>
- <title>Apache HTTP Server and Supporting Programs</title>
- </head>
-<!-- English revision: 1.2 -->
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <body
- bgcolor="#ffffff"
- text="#000000"
- link="#0000ff"
- vlink="#000080"
- alink="#ff0000"
- >
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache HTTP Server and Supporting Programs</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.3 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
+ <h1 align="center">$B%5!<%P$H%5%]!<%H%W%m%0%i%`(B</h1>
- <h1 align="center">$B%5!<%P$H%5%]!<%H%W%m%0%i%`(B</h1>
+ <p>$B$3$N%Z!<%8$G$O!"(BApache HTTP $B%5!<%P$H$H$b$KDs6!$5$l$F$$$k<B9T(B
+ $B%W%m%0%i%`$rA4$F:\$;$F$$$^$9!#(B</p>
-<p>$B$3$N%Z!<%8$G$O!"(BApache HTTP $B%5!<%P$H$H$b$KDs6!$5$l$F$$$k<B9T%W%m%0%i%`$r(B
-$BA4$F:\$;$F$$$^$9!#(B</p>
+ <dl>
+ <dt><a href="httpd.html">httpd</a></dt>
-<dl>
+ <dd>Apache $B%O%$%Q!<%F%-%9%HE>Aw%W%m%H%3%k%5!<%P(B</dd>
- <dt><a href="httpd.html">httpd</a></dt>
- <dd>Apache HTTP $B%5!<%P(B</dd>
+ <dt><a href="apachectl.html">apachectl</a></dt>
- <dt><a href="apachectl.html">apachectl</a></dt>
- <dd>Apache HTTP $B%5!<%P%3%s%H%m!<%k%$%s%?!<%U%'!<%9(B</dd>
+ <dd>Apache HTTP $B%5!<%P%3%s%H%m!<%k%$%s%?!<%U%'!<%9(B</dd>
- <dt><a href="ab.html">ab</a></dt>
- <dd>Apache HTTP $B%5!<%P%Y%s%A%^!<%/%D!<%k(B</dd>
+ <dt><a href="ab.html">ab</a></dt>
- <dt><a href="apxs.html">apxs</a></dt>
- <dd>APache $B3HD%%D!<%k(B</dd>
+ <dd>Apache HTTP $B%5!<%P%Y%s%A%^!<%/%D!<%k(B</dd>
- <dt><a href="dbmmanage.html">dbmmanage</a></dt>
- <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k(B DBM $B=q<0$G$N%f!<%6G'>ZMQ(B
-$B%U%!%$%k$N:n@.$H99?7(B</dd>
+ <dt><a href="apxs.html">apxs</a></dt>
- <dt><a href="htdigest.html">htdigest</a></dt>
- <dd>Digest $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd>
+ <dd>Apache $B3HD%%D!<%k(B</dd>
- <dt><a href="htpasswd.html">htpasswd</a></dt>
- <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd>
+ <dt><a href="dbmmanage.html">dbmmanage</a></dt>
- <dt><a href="logresolve.html">logresolve</a></dt>
- <dd>Apache $B%m%0%U%!%$%kFb$K$*$1$k(B IP $B%"%I%l%9$N%[%9%HL>2r7h(B</dd>
+ <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k(B DBM $B=q<0$G$N%f!<%6G'>ZMQ%U%!%$%k$N(B
+ $B:n@.$H99?7(B</dd>
- <dt><a href="rotatelogs.html">rotatelogs</a></dt>
- <dd>$B%5!<%P$r%-%k$7$J$$$G(B Apache $B%m%0$r%m!<%F!<%H$9$k(B</dd>
+ <dt><a href="htdigest.html">htdigest</a></dt>
- <dt><a href="suexec.html">suexec</a></dt>
- <dd>Apache $B$,(B Exec $B$9$k:]$N%f!<%6@ZBX(B</dd>
- <dt><a href="other.html">$B$=$NB>$N%W%m%0%i%`(B</a></dt>
+ <dd>Digest $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd>
-</dl>
+ <dt><a href="htpasswd.html">htpasswd</a></dt>
+ <dd>Basic $BG'>Z$K$*$$$FMxMQ$9$k%f!<%6G'>ZMQ%U%!%$%k$N:n@.$H99?7(B</dd>
- <hr />
+
+ <dt><a href="logresolve.html">logresolve</a></dt>
+
+ <dd>Apache $B%m%0%U%!%$%kFb$K$*$1$k(B IP $B%"%I%l%9$N%[%9%HL>2r7h(B</dd>
+
+
+ <dt><a href="rotatelogs.html">rotatelogs</a></dt>
+
+ <dd>$B%5!<%P$r!!(Bkill $B$7$J$$$G(B Apache $B%m%0$r%m!<%F!<%H$9$k(B</dd>
+
+ <dt><a href="suexec.html">suexec</a></dt>
+
+ <dd>Apache $B$,(B Exec $B$9$k:]$N%f!<%6@ZBX(B</dd>
+
+ <dt><a href="other.html">$B$=$NB>$N%W%m%0%i%`(B</a></dt>
+ </dl>
+ <hr />
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
- </body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/programs/suexec.html b/usr.sbin/httpd/htdocs/manual/programs/suexec.html
index 7485c4b3ae7..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/suexec.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/suexec.html
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Manual Page: suexec - Apache HTTP Server</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#ffffff" text="#000000" link="#0000ff"
- vlink="#000080" alink="#ff0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="center">Manual Page: suexec</h1>
- <!-- This document was autogenerated from the man page -->
-<pre>
-<strong>NAME</strong>
- suexec - Switch User For Exec
-
-<strong>SYNOPSIS</strong>
- No synopsis for usage, because this program is used inter-
- nally by Apache only.
-
-<strong>DESCRIPTION</strong>
- <strong>suexec</strong> is the "wrapper" support program for the suEXEC
- behavior for Apache. It is run from within Apache automat-
- ically to switch the user when an external program has to be
- run under a different user. For more information about
- suEXEC see the document `Apache suEXEC Support' under
- http://www.apache.org/docs/suexec.html .
-
-<strong>SEE ALSO</strong>
- <strong>httpd(8)</strong>
-
-</pre>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.en b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.en
index 7485c4b3ae7..9c4985313df 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.en
+++ b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.en
@@ -50,3 +50,55 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: suexec - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: suexec</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ suexec - Switch User For Exec
+
+<strong>SYNOPSIS</strong>
+ No synopsis for usage, because this program is used inter-
+ nally by Apache only.
+
+<strong>DESCRIPTION</strong>
+ <strong>suexec</strong> is the "wrapper" support program for the suEXEC
+ behavior for Apache. It is run from within Apache automat-
+ ically to switch the user when an external program has to be
+ run under a different user. For more information about
+ suEXEC see the document `Apache suEXEC Support' under
+ http://www.apache.org/docs/suexec.html .
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.html b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.html
index 71698f43667..de02a93b8d0 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.html
+++ b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.html
@@ -54,3 +54,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Manual Page: suexec - Apache HTTP Server</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: suexec</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>NAME</strong>
+ suexec - Switch User For Exec
+
+<strong>SYNOPSIS</strong>
+ No synopsis for usage, because this program is used inter-
+ nally by Apache only.
+
+<strong>DESCRIPTION</strong>
+ <strong>suexec</strong> is the "wrapper" support program for the suEXEC
+ behavior for Apache. It is run from within Apache automat-
+ ically to switch the user when an external program has to be
+ run under a different user. For more information about
+ suEXEC see the document `Apache suEXEC Support' under
+ http://www.apache.org/docs/suexec.html .
+
+<strong>SEE ALSO</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.ja.jis b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.ja.jis
index 212f2083ea4..e58228de18e 100644
--- a/usr.sbin/httpd/htdocs/manual/programs/suexec.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/programs/suexec.html.ja.jis
@@ -49,3 +49,54 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Manual Page: suexec - Apache HTTP Server</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.4 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">Manual Page: suexec</h1>
+ <!-- This document was autogenerated from the man page -->
+<pre>
+<strong>$BL>>N(B</strong>
+ suexec - Apache $B$,(B Exec $B$9$k:]$N%f!<%6@ZBX(B
+
+<strong>$B=q<0(B</strong>
+ $B;HMQJ}K!$N=q<0$O$"$j$^$;$s!#$J$<$J$i$3$N%W%m%0%i%`$O(B
+ Apache $BFbIt$G$N$_;HMQ$5$l$k$+$i$G$9!#(B
+
+<strong>$B2r@b(B</strong>
+ <strong>suexec</strong> $B$O(B Apache $B$N(B suEXEC $B:nMQ$N$?$a$N(B "wrapper" $B%5%]!<%H(B
+ $B%W%m%0%i%`$G$9!#30It$N%W%m%0%i%`$,0[$J$k%f!<%6$N2<$G<B9T$5$l(B
+ $B$J$1$l$P$J$i$J$$$H$-!"(BApache $BFb$+$i<+F0E*$K%f!<%6$N@ZBX$,<B9T(B
+ $B$5$l$^$9!#(B suEXEC $B$K$D$$$F$N99$J$k>pJs$O!"(B
+ http://www.apache.org/docs/suexec.html $B0J2<$N%I%-%e%a%s%H(B
+ `Apache suEXEC Support' $B$r8+$F$/$@$5$$!#(B
+
+<strong>$B4XO"9`L\(B</strong>
+ <strong>httpd(8)</strong>
+
+</pre>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/readme-tpf.html b/usr.sbin/httpd/htdocs/manual/readme-tpf.html
index 160f75e70d4..d63723afdd6 100644
--- a/usr.sbin/httpd/htdocs/manual/readme-tpf.html
+++ b/usr.sbin/httpd/htdocs/manual/readme-tpf.html
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>The Apache TPF Port</title>
</head>
@@ -12,7 +12,7 @@
<a id="top" name="top"></a>
<center>
- <h1>Overview of the Apache TPF Port</h1>
+ <h2>Overview of the Apache TPF Port</h2>
</center>
<hr />
@@ -205,7 +205,7 @@
<li>rfc1413.c&nbsp;</li>
- <li>rotatelogs.c <em>(requires PUT10)&nbsp;</em></li>
+ <li>rotatelogs.c <em>(requires PUT10; if PJ27214 implemented be sure to apply PJ28367)&nbsp;</em></li>
<li>util.c&nbsp;</li>
diff --git a/usr.sbin/httpd/htdocs/manual/sections.html b/usr.sbin/httpd/htdocs/manual/sections.html
index 77ac6f987ba..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/sections.html
+++ b/usr.sbin/httpd/htdocs/manual/sections.html
@@ -1,165 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>How Directory, Location and Files sections work</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server</h3>
- </div>
-
-
-
- <h1 align="CENTER">How Directory, Location and Files sections
- work</h1>
-
- <p>The sections <a
- href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>,
- <a
- href="mod/core.html#location"><code>&lt;Location&gt;</code></a>
- and <a
- href="mod/core.html#files"><code>&lt;Files&gt;</code></a> can
- contain directives which only apply to specified directories,
- URLs or files respectively. Also htaccess files can be used
- inside a directory to apply directives to that directory. This
- document explains how these different sections differ and how
- they relate to each other when Apache decides which directives
- apply for a particular directory or request URL.</p>
-
- <h2>Directives allowed in the sections</h2>
-
- <p>Everything that is syntactically allowed in
- <code>&lt;Directory&gt;</code> is also allowed in
- <code>&lt;Location&gt;</code> (except a
- sub-<code>&lt;Files&gt;</code> section). Semantically, however
- some things, most notably <code>AllowOverride</code> and the
- two options <code>FollowSymLinks</code> and
- <code>SymLinksIfOwnerMatch</code>, make no sense in
- <code>&lt;Location&gt;</code>,
- <code>&lt;LocationMatch&gt;</code> or
- <code>&lt;DirectoryMatch&gt;</code>. The same for
- <code>&lt;Files&gt;</code> -- syntactically everything is fine,
- but semantically some things are different.</p>
-
- <h2>How the sections are merged</h2>
-
- <p>The order of merging is:</p>
-
- <ol>
- <li><code>&lt;Directory&gt;</code> (except regular
- expressions) and .htaccess done simultaneously (with
- .htaccess, if allowed, overriding
- <code>&lt;Directory&gt;</code>)</li>
-
- <li><code>&lt;DirectoryMatch&gt;</code>, and
- <code>&lt;Directory&gt;</code> with regular expressions</li>
-
- <li><code>&lt;Files&gt;</code> and
- <code>&lt;FilesMatch&gt;</code> done simultaneously</li>
-
- <li><code>&lt;Location&gt;</code> and
- <code>&lt;LocationMatch&gt;</code> done simultaneously</li>
- </ol>
-
- <p>Apart from <code>&lt;Directory&gt;</code>, each group is
- processed in the order that they appear in the configuration
- files. <code>&lt;Directory&gt;</code> (group 1 above) is
- processed in the order shortest directory component to longest.
- If multiple <code>&lt;Directory&gt;</code> sections apply to
- the same directory they they are processed in the configuration
- file order. The configuration files are read in the order
- httpd.conf, srm.conf and access.conf. Configurations included
- via the <code>Include</code> directive will be treated as if
- they were inside the including file at the location of the
- <code>Include</code> directive.</p>
-
- <p>Sections inside <code>&lt;VirtualHost&gt;</code> sections
- are applied <em>after</em> the corresponding sections outside
- the virtual host definition. This allows virtual hosts to
- override the main server configuration. (Note: this only works
- correctly from 1.2.2 and 1.3a2 onwards. Before those releases
- sections inside virtual hosts were applied <em>before</em> the
- main server).</p>
-
- <p>Later sections override earlier ones.</p>
-
- <h2>Notes about using sections</h2>
-
- <p>The general guidelines are:</p>
-
- <ul>
- <li>If you are attempting to match objects at the filesystem
- level then you must use <code>&lt;Directory&gt;</code> and/or
- <code>&lt;Files&gt;</code>.</li>
-
- <li>If you are attempting to match objects at the URL level
- then you must use <code>&lt;Location&gt;</code></li>
- </ul>
-
- <p>But a notable exception is:</p>
-
- <ul>
- <li>proxy control is done via <code>&lt;Directory&gt;</code>.
- This is a legacy mistake because the proxy existed prior to
- <code>&lt;Location&gt;</code>. A future version of the config
- language should probably switch this to
- <code>&lt;Location&gt;</code>.</li>
- </ul>
-
- <p>Note about .htaccess parsing:</p>
-
- <ul>
- <li>Modifying .htaccess parsing during Location doesn't do
- anything because .htaccess parsing has already occurred.</li>
- </ul>
-
- <p><code>&lt;Location&gt;</code> and symbolic links:</p>
-
- <ul>
- <li>It is not possible to use "<code>Options
- FollowSymLinks</code>" or "<code>Options
- SymLinksIfOwnerMatch</code>" inside a
- <code>&lt;Location&gt;</code>,
- <code>&lt;LocationMatch&gt;</code> or
- <code>&lt;DirectoryMatch&gt;</code> section (the options are
- simply ignored). Using the options in question is only
- possible inside a <code>&lt;Directory&gt;</code> section (or
- a <code>.htaccess</code> file).</li>
- </ul>
-
- <p><code>&lt;Files&gt;</code> and <code>Options</code>:</p>
-
- <ul>
- <li>Apache won't check for it, but using an
- <code>Options</code> directive inside a
- <code>&lt;Files&gt;</code> section has no effect.</li>
- </ul>
-
- <p>Another note:</p>
-
- <ul>
- <li>There is actually a
- <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
- sequence performed just before the name translation phase
- (where <code>Aliases</code> and <code>DocumentRoots</code>
- are used to map URLs to filenames). The results of this
- sequence are completely thrown away after the translation has
- completed.</li>
- </ul>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server</h3>
- <a href="./"><img src="images/index.gif" alt="Index" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/sections.html.en b/usr.sbin/httpd/htdocs/manual/sections.html.en
index 63e899c445b..139adf57503 100644
--- a/usr.sbin/httpd/htdocs/manual/sections.html.en
+++ b/usr.sbin/httpd/htdocs/manual/sections.html.en
@@ -163,3 +163,168 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>How Directory, Location and Files sections work</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">How Directory, Location and Files sections
+ work</h1>
+
+ <p>The sections <a
+ href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>,
+ <a
+ href="mod/core.html#location"><code>&lt;Location&gt;</code></a>
+ and <a
+ href="mod/core.html#files"><code>&lt;Files&gt;</code></a> can
+ contain directives which only apply to specified directories,
+ URLs or files respectively. Also htaccess files can be used
+ inside a directory to apply directives to that directory. This
+ document explains how these different sections differ and how
+ they relate to each other when Apache decides which directives
+ apply for a particular directory or request URL.</p>
+
+ <h2>Directives allowed in the sections</h2>
+
+ <p>Everything that is syntactically allowed in
+ <code>&lt;Directory&gt;</code> is also allowed in
+ <code>&lt;Location&gt;</code> (except a
+ sub-<code>&lt;Files&gt;</code> section). Semantically, however
+ some things, most notably <code>AllowOverride</code> and the
+ two options <code>FollowSymLinks</code> and
+ <code>SymLinksIfOwnerMatch</code>, make no sense in
+ <code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code> or
+ <code>&lt;DirectoryMatch&gt;</code>. The same for
+ <code>&lt;Files&gt;</code> -- syntactically everything is fine,
+ but semantically some things are different.</p>
+
+ <h2>How the sections are merged</h2>
+
+ <p>The order of merging is:</p>
+
+ <ol>
+ <li><code>&lt;Directory&gt;</code> (except regular
+ expressions) and .htaccess done simultaneously (with
+ .htaccess, if allowed, overriding
+ <code>&lt;Directory&gt;</code>)</li>
+
+ <li><code>&lt;DirectoryMatch&gt;</code>, and
+ <code>&lt;Directory&gt;</code> with regular expressions</li>
+
+ <li><code>&lt;Files&gt;</code> and
+ <code>&lt;FilesMatch&gt;</code> done simultaneously</li>
+
+ <li><code>&lt;Location&gt;</code> and
+ <code>&lt;LocationMatch&gt;</code> done simultaneously</li>
+ </ol>
+
+ <p>Apart from <code>&lt;Directory&gt;</code>, each group is
+ processed in the order that they appear in the configuration
+ files. <code>&lt;Directory&gt;</code> (group 1 above) is
+ processed in the order shortest directory component to longest.
+ If multiple <code>&lt;Directory&gt;</code> sections apply to
+ the same directory they are processed in the configuration
+ file order. The configuration files are read in the order
+ httpd.conf, srm.conf and access.conf. Configurations included
+ via the <code>Include</code> directive will be treated as if
+ they were inside the including file at the location of the
+ <code>Include</code> directive.</p>
+
+ <p>Sections inside <code>&lt;VirtualHost&gt;</code> sections
+ are applied <em>after</em> the corresponding sections outside
+ the virtual host definition. This allows virtual hosts to
+ override the main server configuration. (Note: this only works
+ correctly from 1.2.2 and 1.3a2 onwards. Before those releases
+ sections inside virtual hosts were applied <em>before</em> the
+ main server).</p>
+
+ <p>Later sections override earlier ones.</p>
+
+ <h2>Notes about using sections</h2>
+
+ <p>The general guidelines are:</p>
+
+ <ul>
+ <li>If you are attempting to match objects at the filesystem
+ level then you must use <code>&lt;Directory&gt;</code> and/or
+ <code>&lt;Files&gt;</code>.</li>
+
+ <li>If you are attempting to match objects at the URL level
+ then you must use <code>&lt;Location&gt;</code></li>
+ </ul>
+
+ <p>But a notable exception is:</p>
+
+ <ul>
+ <li>proxy control is done via <code>&lt;Directory&gt;</code>.
+ This is a legacy mistake because the proxy existed prior to
+ <code>&lt;Location&gt;</code>. A future version of the config
+ language should probably switch this to
+ <code>&lt;Location&gt;</code>.</li>
+ </ul>
+
+ <p>Note about .htaccess parsing:</p>
+
+ <ul>
+ <li>Modifying .htaccess parsing during Location doesn't do
+ anything because .htaccess parsing has already occurred.</li>
+ </ul>
+
+ <p><code>&lt;Location&gt;</code> and symbolic links:</p>
+
+ <ul>
+ <li>It is not possible to use "<code>Options
+ FollowSymLinks</code>" or "<code>Options
+ SymLinksIfOwnerMatch</code>" inside a
+ <code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code> or
+ <code>&lt;DirectoryMatch&gt;</code> section (the options are
+ simply ignored). Using the options in question is only
+ possible inside a <code>&lt;Directory&gt;</code> section (or
+ a <code>.htaccess</code> file).</li>
+ </ul>
+
+ <p><code>&lt;Files&gt;</code> and <code>Options</code>:</p>
+
+ <ul>
+ <li>Apache won't check for it, but using an
+ <code>Options</code> directive inside a
+ <code>&lt;Files&gt;</code> section has no effect.</li>
+ </ul>
+
+ <p>Another note:</p>
+
+ <ul>
+ <li>There is actually a
+ <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
+ sequence performed just before the name translation phase
+ (where <code>Aliases</code> and <code>DocumentRoots</code>
+ are used to map URLs to filenames). The results of this
+ sequence are completely thrown away after the translation has
+ completed.</li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/sections.html.html b/usr.sbin/httpd/htdocs/manual/sections.html.html
index d6ee901c52c..ea65e459381 100644
--- a/usr.sbin/httpd/htdocs/manual/sections.html.html
+++ b/usr.sbin/httpd/htdocs/manual/sections.html.html
@@ -167,3 +167,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>How Directory, Location and Files sections work</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">How Directory, Location and Files sections
+ work</h1>
+
+ <p>The sections <a
+ href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>,
+ <a
+ href="mod/core.html#location"><code>&lt;Location&gt;</code></a>
+ and <a
+ href="mod/core.html#files"><code>&lt;Files&gt;</code></a> can
+ contain directives which only apply to specified directories,
+ URLs or files respectively. Also htaccess files can be used
+ inside a directory to apply directives to that directory. This
+ document explains how these different sections differ and how
+ they relate to each other when Apache decides which directives
+ apply for a particular directory or request URL.</p>
+
+ <h2>Directives allowed in the sections</h2>
+
+ <p>Everything that is syntactically allowed in
+ <code>&lt;Directory&gt;</code> is also allowed in
+ <code>&lt;Location&gt;</code> (except a
+ sub-<code>&lt;Files&gt;</code> section). Semantically, however
+ some things, most notably <code>AllowOverride</code> and the
+ two options <code>FollowSymLinks</code> and
+ <code>SymLinksIfOwnerMatch</code>, make no sense in
+ <code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code> or
+ <code>&lt;DirectoryMatch&gt;</code>. The same for
+ <code>&lt;Files&gt;</code> -- syntactically everything is fine,
+ but semantically some things are different.</p>
+
+ <h2>How the sections are merged</h2>
+
+ <p>The order of merging is:</p>
+
+ <ol>
+ <li><code>&lt;Directory&gt;</code> (except regular
+ expressions) and .htaccess done simultaneously (with
+ .htaccess, if allowed, overriding
+ <code>&lt;Directory&gt;</code>)</li>
+
+ <li><code>&lt;DirectoryMatch&gt;</code>, and
+ <code>&lt;Directory&gt;</code> with regular expressions</li>
+
+ <li><code>&lt;Files&gt;</code> and
+ <code>&lt;FilesMatch&gt;</code> done simultaneously</li>
+
+ <li><code>&lt;Location&gt;</code> and
+ <code>&lt;LocationMatch&gt;</code> done simultaneously</li>
+ </ol>
+
+ <p>Apart from <code>&lt;Directory&gt;</code>, each group is
+ processed in the order that they appear in the configuration
+ files. <code>&lt;Directory&gt;</code> (group 1 above) is
+ processed in the order shortest directory component to longest.
+ If multiple <code>&lt;Directory&gt;</code> sections apply to
+ the same directory they are processed in the configuration
+ file order. The configuration files are read in the order
+ httpd.conf, srm.conf and access.conf. Configurations included
+ via the <code>Include</code> directive will be treated as if
+ they were inside the including file at the location of the
+ <code>Include</code> directive.</p>
+
+ <p>Sections inside <code>&lt;VirtualHost&gt;</code> sections
+ are applied <em>after</em> the corresponding sections outside
+ the virtual host definition. This allows virtual hosts to
+ override the main server configuration. (Note: this only works
+ correctly from 1.2.2 and 1.3a2 onwards. Before those releases
+ sections inside virtual hosts were applied <em>before</em> the
+ main server).</p>
+
+ <p>Later sections override earlier ones.</p>
+
+ <h2>Notes about using sections</h2>
+
+ <p>The general guidelines are:</p>
+
+ <ul>
+ <li>If you are attempting to match objects at the filesystem
+ level then you must use <code>&lt;Directory&gt;</code> and/or
+ <code>&lt;Files&gt;</code>.</li>
+
+ <li>If you are attempting to match objects at the URL level
+ then you must use <code>&lt;Location&gt;</code></li>
+ </ul>
+
+ <p>But a notable exception is:</p>
+
+ <ul>
+ <li>proxy control is done via <code>&lt;Directory&gt;</code>.
+ This is a legacy mistake because the proxy existed prior to
+ <code>&lt;Location&gt;</code>. A future version of the config
+ language should probably switch this to
+ <code>&lt;Location&gt;</code>.</li>
+ </ul>
+
+ <p>Note about .htaccess parsing:</p>
+
+ <ul>
+ <li>Modifying .htaccess parsing during Location doesn't do
+ anything because .htaccess parsing has already occurred.</li>
+ </ul>
+
+ <p><code>&lt;Location&gt;</code> and symbolic links:</p>
+
+ <ul>
+ <li>It is not possible to use "<code>Options
+ FollowSymLinks</code>" or "<code>Options
+ SymLinksIfOwnerMatch</code>" inside a
+ <code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code> or
+ <code>&lt;DirectoryMatch&gt;</code> section (the options are
+ simply ignored). Using the options in question is only
+ possible inside a <code>&lt;Directory&gt;</code> section (or
+ a <code>.htaccess</code> file).</li>
+ </ul>
+
+ <p><code>&lt;Files&gt;</code> and <code>Options</code>:</p>
+
+ <ul>
+ <li>Apache won't check for it, but using an
+ <code>Options</code> directive inside a
+ <code>&lt;Files&gt;</code> section has no effect.</li>
+ </ul>
+
+ <p>Another note:</p>
+
+ <ul>
+ <li>There is actually a
+ <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
+ sequence performed just before the name translation phase
+ (where <code>Aliases</code> and <code>DocumentRoots</code>
+ are used to map URLs to filenames). The results of this
+ sequence are completely thrown away after the translation has
+ completed.</li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/sections.html.ja.jis b/usr.sbin/httpd/htdocs/manual/sections.html.ja.jis
index 71bf442908a..887f06ba63f 100644
--- a/usr.sbin/httpd/htdocs/manual/sections.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/sections.html.ja.jis
@@ -163,3 +163,168 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>How Directory, Location and Files sections work</title>
+
+ </head>
+ <!-- English revision: 1.13 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center">Directory, Location, Files
+ $B%;%/%7%g%s$NF0:nJ}K!(B</h1>
+
+ <p>$B%;%/%7%g%s(B <a
+ href="mod/core.html#directory"><code>&lt;Directory&gt;</code></a>,
+ <a
+ href="mod/core.html#location"><code>&lt;Location&gt;</code></a>, <a
+ href="mod/core.html#files"><code>&lt;Files&gt;</code></a>
+ $B$K$O!"$=$l$>$l;XDj$5$l$?%G%#%l%/%H%j!"(BURL,
+ $B%U%!%$%k$K$N$_E,MQ$5$l$k%G%#%l%/%F%#%V$r=q$/$3$H$,$G$-$^$9!#(B
+ $B$^$?!"%G%#%l%/%H%j$K%G%#%l%/%F%#%V$rE,MQ$9$k$?$a$K%G%#%l%/%H%jCf$K(B
+ .htaccess $B%U%!%$%k$r;HMQ$9$k$3$H$b$G$-$^$9!#$3$N%I%-%e%a%s%H$O(B
+ $B$3$l$i$N%;%/%7%g%s$N0c$$$r@bL@$7!"$=$l$i$H!"%G%#%l%/%H%j$d(B
+ $B%j%/%(%9%H$5$l$?(B URL $B$K(B Apache $B$,$I$N%G%#%l%/%F%#%V$r(B
+ $BE,MQ$9$k$+$r7hDj$9$kJ}K!$H$N4X78$r@bL@$7$^$9!#(B</p>
+
+ <h2>$B%;%/%7%g%sCf$K5v2D$5$l$F$$$k%G%#%l%/%F%#%V(B</h2>
+
+ <p>$B9=J8>e(B <code>&lt;Directory&gt;</code>
+ $B$K=q$1$k$b$N$O$9$Y$F(B <code>&lt;Location&gt;</code>
+ $B$K$b=q$/$3$H$,$G$-$^$9(B (<code>&lt;Files&gt;</code>
+ $B%;%/%7%g%s$ONc30$G$9(B)$B!#$7$+$7!"Cf$K$O(B
+ <code>AllowOverride</code> $B$d(B <code>FollowSymLinks</code>
+ $B$H(B <code>SymLinksIfOwnerMatch</code>
+ $B$H$$$&Fs$D$N%*%W%7%g%s$N$h$&$K!"(B<code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code>,
+ <code>&lt;DirectoryMatch&gt;</code> $BCf$G$O0UL#$N$J$$$b$N$b$"$j$^$9!#(B
+ $BF1MM$N$3$H$,(B <code>&lt;Files&gt;</code>
+ $B$K$b8@$($^$9!#9=J8E*$K$O$9$Y$FBg>fIW$G$9$,!"(B
+ $B0UL#E*$K$O$=$&$G$J$$$b$N$b$"$j$^$9!#(B</p>
+
+ <h2>$B%;%/%7%g%s$N%^!<%8J}K!(B</h2>
+
+ <p>$B%^!<%8$N=gHV$O0J2<$N$h$&$K$J$C$F$$$^$9(B:</p>
+
+ <ol>
+ <li><code>&lt;Directory&gt;</code> ($B@55,I=8=L5$7(B) $B$H(B
+ .htaccess $B$rF1;~$K(B (.htaccess $B$,5v2D$5$l$F$$$l$P!"$=$l$,(B
+ <code>&lt;Directory&gt;</code> $B$r(B $B>e=q$-$7$^$9(B)
+ </li>
+
+ <li><code>&lt;DirectoryMatch&gt;</code> $B$H@55,I=8=$N$"$k(B
+ <code>&lt;Directory&gt;</code></li>
+
+ <li><code>&lt;Files&gt;</code> $B$H(B
+ <code>&lt;FilesMatch&gt;</code> $B$rF1;~$K(B</li>
+
+ <li><code>&lt;Location&gt;</code> $B$H(B
+ <code>&lt;LocationMatch&gt;</code> $B$rF1;~$K(B</li>
+ </ol>
+
+ <p><code>&lt;Directory&gt;</code>
+ $B0J30$O!"$=$l$>$l$N%0%k!<%W$O@_Dj%U%!%$%k$K8=$l$?=gHV$K=hM}$5$l$^$9!#(B
+ <code>&lt;Directory&gt;</code> ($B>e$N%0%k!<%W(B 1)
+ $B$O%G%#%l%/%H%j$,C;$$$b$N$+$iD9$$$b$N$X$H=hM}$5$l$^$9!#J#?t$N(B
+ <code>&lt;Directory&gt;</code> $B%;%/%7%g%s$,F1$8%G%#%l%/%H%j$K(B
+ $BE,MQ$5$l$k>l9g$O!"@_Dj%U%!%$%kCf$N=gHV$K=>$C$F=hM}$5$l$^$9!#(B
+ $B@_Dj%U%!%$%k$O(B httpd.conf, srm.conf, access.conf
+ $B$N=g$K=hM}$5$l$^$9!#(B<code>Include</code>
+ $B$K$h$C$FA^F~$5$l$?@_Dj$O(B $BA^F~$7$F$$$k%U%!%$%k$N(B
+ <code>Include</code>
+ $B%G%#%l%/%F%#%V$N0LCV$K$"$C$?$+$N$h$&$K07$o$l$^$9!#(B</p>
+
+ <p><code>&lt;VirtualHost&gt;</code> $B%;%/%7%g%sCf$N%;%/%7%g%s$O(B
+ $B%P!<%A%c%k%[%9%H$NDj5A$N30B&$NBP1~$9$k%;%/%7%g%s$N(B
+ <em>$B8e(B</em>$B$KE,MQ$5$l$^$9!#$3$l$K$h$j%P!<%A%c%k%[%9%H$,(B
+ $B%a%$%s$N%5!<%P@_Dj$r>e=q$-$G$-$k$h$&$J$j$^$9!#(B($BCm0U(B: $B$3$l$O(B
+ 1.2.2 $B0J9_$H(B 1.3a2 $B0J9_$G$N$_@5$7$/F0:n$7$^$9!#(B
+ $B$3$l$i$N%j%j!<%9$h$jA0$N$b$N$O%P!<%A%c%k%[%9%H$NCf$N%;%/%7%g%s$O(B
+ $B%a%$%s%5!<%P$N(B<em>$BA0(B</em>$B$KE,MQ$5$l$F$$$^$7$?(B)$B!#(B</p>
+
+ <p>$B8e$N%;%/%7%g%s$N%G%#%l%/%F%#%V$,A0$N%;%/%7%g%s$N$b$N$r>e=q$-$7$^$9!#(B</p>
+
+ <h2>$B%;%/%7%g%s$r;H$&:]$NCm0U(B</h2>
+
+ <p>$B0lHLE*$J%,%$%I%i%$%s$O(B:</p>
+
+ <ul>
+ <li>$B%U%!%$%k%7%9%F%`%l%Y%k$G%*%V%8%'%/%H$N%^%C%A$r9T$J$&$H$-$O!"(B
+ <code>&lt;Directory&gt;</code> $B$H(B <code>&lt;Files&gt;</code>
+ $B$r;H$&I,MW$,$"$j$^$9!#(B</li>
+
+ <li>URL $B%l%Y%k$G%*%V%8%'%/%H$N%^%C%A$r9T$J$&$H$-$O(B
+ <code>&lt;Location&gt;</code> $B$r;H$&I,MW$,$"$j$^$9!#(B</li>
+ </ul>
+
+ <p>$B=EMW$JNc30$O(B:</p>
+
+ <ul>
+ <li>$B%W%m%-%7$N@)8f$O(B <code>&lt;Directory&gt;</code>
+ $B$rDL$7$F9T$J$o$l$^$9!#$3$l$O%W%m%-%7$,(B
+ <code>&lt;Location&gt;</code>
+ $B$h$jA0$+$iB8:_$7$?$3$H$K$h$k%_%9$G$9!#>-Mh$N@_Dj8@8l$G$O$*$=$i$/(B
+ <code>&lt;Location&gt;</code> $B$K@Z$jBX$($i$l$k$G$7$g$&!#(B</li>
+ </ul>
+
+ <p>.htaccess $B%U%!%$%k$N2r@O$K4X$9$kCm0U(B:</p>
+
+ <ul>
+ <li>Location $BCf$G(B .htaccess $B$N2r@OJ}K!$rJQ99$7$F$b!"(B
+ $B2?$bJQ$o$j$^$;$s!#(B.htaccess $B$N2r@O$O4{$K=*$o$C$F$$$k$+$i$G$9!#(B</li>
+ </ul>
+
+ <p><code>&lt;Location&gt;</code> $B$H%7%s%\%j%C%/%j%s%/(B:</p>
+
+ <ul>
+ <li>&quot;<code>Options FollowSymLinks</code>&quot; $B$d(B
+ &quot;<code>Options SymLinksIfOwnerMatch</code>&quot; $B$O(B
+ <code>&lt;Location&gt;</code>,
+ <code>&lt;LocationMatch&gt;</code>,
+ <code>&lt;DirectoryMatch&gt;</code>
+ $B%;%/%7%g%s$G$O;H$&$3$H$,$G$-$^$;$s(B
+ ($B$=$l$i$N%*%W%7%g%s$OC1$KL5;k$5$l$^$9(B)$B!#$=$l$i$N%*%W%7%g%s$O(B
+ <code>&lt;Directory&gt;</code> $B%;%/%7%g%s(B ($B$b$7$/$O(B
+ <code>.htaccess</code> $B%U%!%$%k(B) $B$NCf$G$N$_;HMQ2DG=$G$9!#(B</li>
+ </ul>
+
+ <p><code>&lt;Files&gt;</code> $B$H(B <code>Options</code>:</p>
+
+ <ul>
+ <li>Apache $B$O$3$N>u67$O%A%'%C%/$7$^$;$s$,!"(B
+ <code>&lt;Files&gt;</code> $B%;%/%7%g%s$NCf$G(B <code>Options</code>
+ $B%G%#%l%/%F%#%V$r;HMQ$7$F$b8z2L$O$"$j$^$;$s!#(B</li>
+ </ul>
+
+ <p>$BB>$NCm0U(B:</p>
+
+ <ul>
+ <li>$B<B:]$K$O!"L>A0$rJQ49$9$kCJ3,(B (URL
+ $B$r%U%!%$%kL>$K%^%C%W$9$k$?$a$K(B <code>Alias</code> $B$d(B
+ <code>DocumentRoot</code> $B$,;HMQ$5$l$k$H$3$m(B) $B$ND>A0$K(B
+ <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code>
+ $B$,9T$J$o$l$^$9!#(B
+ $B$3$l$i$rE,MQ$7$?7k2L$OJQ49$,=*$o$C$?8e$K40A4$K<N$F$i$l$^$9!#(B
+ </li>
+ </ul>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/server-wide.html.ja.jis b/usr.sbin/httpd/htdocs/manual/server-wide.html.ja.jis
index 28ac3f34e46..117b11b6c2e 100644
--- a/usr.sbin/httpd/htdocs/manual/server-wide.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/server-wide.html.ja.jis
@@ -1,230 +1,279 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Server-Wide Configuration</title>
-</head>
-<!-- English revision: 1.7 -->
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Server-Wide Configuration</title>
+
+ </head>
+ <!-- English revision: 1.10 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server</h3>
</div>
-<h1 align="center">$B%5!<%PA4BN$N@_Dj(B</h1>
-
-<p>$B$3$N%I%-%e%a%s%H$G$O(B<a href="mod/core.html">$B%3%"(B</a>$B%5!<%P$N(B
-$B%G%#%l%/%F%#%V$NCf$G!"4pK\F0:n$r@_Dj$9$k$?$a$N$b$N$r@bL@$7$^$9!#(B</p>
-
-<ul>
-<li><a href="#identification">$B%5!<%P(B ID</a></li>
-<li><a href="#locations">$B%U%!%$%k$N0LCV(B</a></li>
-<li><a href="#process">$B%W%m%;%9@8@.(B</a></li>
-<li><a href="#network">$B%M%C%H%o!<%/@_Dj(B</a></li>
-<li><a href="#resource">$B%j%=!<%9$N@)8B(B</a></li>
-</ul>
-
-<hr>
-
-<h2><a name="identification">$B%5!<%P(B ID</a></h2>
-
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="mod/core.html#servername">ServerName</a><br>
-<a href="mod/core.html#serveradmin">ServerAdmin</a><br>
-<a href="mod/core.html#serversignature">ServerSignature</a><br>
-<a href="mod/core.html#servertokens">ServerTokens</a><br>
-<a href="mod/core.html#usecanonicalname">UseCanonicalName</a><br>
-</td></tr></table>
-
-<p><code>ServerAdmin</code> $B%G%#%l%/%F%#%V$H(B <code>ServerTokens</code>
-$B%G%#%l%/%F%#%V$O!"%(%i!<%a%C%;!<%8$J$I$N%5!<%P$,:n$k%I%-%e%a%s%H$K!"(B
-$B$I$N$h$&$J%5!<%P$N>pJs$rI=<($9$k$+$r@)8f$7$^$9!#(B<code>ServerTokens</code>
-$B%G%#%l%/%F%#%V$O!"(BServer HTTP $B%l%9%]%s%9%X%C%@%U%#!<%k%I$NCM$r(B
-$B@_Dj$7$^$9!#(B</p>
-
-<p><code>ServerName</code> $B%G%#%l%/%F%#%V$H(B <code>UseCanonicalName</code>
-$B%G%#%l%/%F%#%V$O!"%5!<%P$,<+J,<+?H$r;2>H$9$k(B URL $B$r:n$k$H$-$K(B
-$B;H$o$l$^$9!#$?$H$($P!"%/%i%$%"%s%H$,%G%#%l%/%H%j$rMW5a$7$F!"(B
-$B$=$N%G%#%l%/%H%jL>$N:G8e$K%9%i%C%7%e$,IU$$$F$$$J$$$h$&$J>l9g$K$O!"(B
-$B%I%-%e%a%s%H$NAjBPE*$J;2>H$r@5$7$/2r7h$G$-$k$h$&$K$9$k$?$a$K!"(B
-Apache $B$O:G8e$N%9%i%C%7%e$r4^$s$@40A4$J%Q%9$K%/%i%$%"%s%H$r(B
-$B%j%@%$%l%/%H$5$;$kI,MW$,$"$j$^$9!#(B</p>
-
-<hr>
-
-<h2><a name="locations">$B%U%!%$%k$N0LCV(B</a></h2>
-
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="mod/core.html#coredumpdirectory">CoreDumpDirectory</a><br>
-<a href="mod/core.html#documentroot">DocumentRoot</a><br>
-<a href="mod/core.html#errorlog">ErrorLog</a><br>
-<a href="mod/core.html#lockfile">Lockfile</a><br>
-<a href="mod/core.html#pidfile">PidFile</a><br>
-<a href="mod/core.html#scoreboardfile">ScoreBoardFile</a><br>
-<a href="mod/core.html#serverroot">ServerRoot</a><br>
-</td></tr></table>
-
-<p>$B$3$l$i$N%G%#%l%/%F%#%V$O(B Apache $B$,E,@Z$JF0:n$r$9$k$?$a$KI,MW$J(B
-$B3F<o%U%!%$%k$N0LCV$r@)8f$7$^$9!#%Q%9$,%9%i%C%7%e(B "/" $B$G;O$^$C$F$$$J$$(B
-$B$H$-$O!"%U%!%$%k$O(B <code>ServerRoot</code> $B$+$i$NAjBP%Q%9$H$7$F(B
-$BC5$5$l$^$9!#(Broot $B0J30$N%f!<%6$,=q$-9~$_2DG=$J%Q%9$K%U%!%$%k$r(B
-$BCV$/>l9g$OCm0U$,I,MW$G$9!#>\:Y$O(B<a
-href="misc/security_tips.html">$B!V%;%-%e%j%F%#>pJs!W(B</a>$B$r(B
-$B;2>H$7$F$/$@$5$$!#(B</p>
-
-<hr>
-
-<h2><a name="process">$B%W%m%;%9@8@.(B</a></h2>
-
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="mod/core.html#bs2000account">BS2000Account</a><br>
-<a href="mod/core.html#group">Group</a><br>
-<a href="mod/core.html#maxclients">MaxClients</a><br>
-<a href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a><br>
-<a href="mod/core.html#maxspareservers">MaxSpareServers</a><br>
-<a href="mod/core.html#minspareservers">MinSpareServers</a><br>
-<a href="mod/core.html#servertype">ServerType</a><br>
-<a href="mod/core.html#startservers">StartServers</a><br>
-<a href="mod/core.html#threadsperchild">ThreadsPerChild</a><br>
-<a href="mod/core.html#user">User</a><br>
-</td></tr></table>
-
-<p><code>ServerType</code> $B$K?d>)$5$l$F$$$kCM$G$"$k(B <code>Standalone</code>
-$B$,@_Dj$5$l$F$$$k>l9g$O!"(BUnix $B>e$G$N(B Apache $B$O(B pre-forking $B%5!<%P$G$9!#(B
-$B$=$3$G$O0l$D$N@)8fMQ%W%m%;%9$,;R%W%m%;%9$r5/F0$9$k@UG$$r;}$A$^$9!#(B
-$B$=$7$F!";R%W%m%;%9$O%W%m%;%9$,@8B8$7$F$$$k4V(B listen $B$7!"@\B3$5$l$?$i$=$N%3%M%/%7%g%s$KBP$9$k=hM}$r9T$J$$$^$9!#(B
-Apache $B$O%j%/%(%9%H$,Mh$?$H$-$K$9$0$K1~Ez$G$-$k$h$&$K!"(B
-$B>o$KJ#?t$N(B<em>$B%9%Z%"(B</em>$B%5!<%P%W%m%;%9!"$^$?$O%"%$%I%k%5!<%P%W%m%;%9$r0];}$7$h$&$H(B
-$B$7$^$9!#$3$&$9$k$3$H$G!"%j%/%(%9%H$,07$o$l$kA0$K?7$7$$;R%W%m%;%9$,(B fork
-$B$5$l$k$N$r%/%i%$%"%s%H$,BT$DI,MW$,$J$/$J$j$^$9!#(B</p>
-
-<p><code>StartServers</code>, <code>MinSpareServers</code>,
-<code>MaxSpareServers</code>, <code>MaxServers</code> $B$O!"(B
-$B?F%W%m%;%9$,%j%/%(%9%H$r07$&$3$H$K$J$k;R%W%m%;%9$r:n@.$9$kJ}K!$r@)8f$7$^$9!#(B
-$BDL>o!"(BApache $B$OHs>o$K<+@)E*$G$9$N$G!"$[$H$s$I$N%5%$%H$G$O(B
-$B%G%U%)%k%HCM$+$iJQ99$9$kI,MW$O$"$j$^$;$s!#$?$@!"F1;~$K(B 256 $B$rD6$($k(B
-$B%j%/%(%9%H$r07$&%5%$%H$O(B <code>MaxClients</code> $B$rA}$d$9I,MW$,$"$k$G$7$g$&!#(B
-$B0lJ}!"%a%b%j$N>/$J$$%5%$%H$G$O!"%5!<%P$,%9%i%C%7%s%0(B ($B%a%b%j$r%G%#%9%/$K(B
-$B%9%o%C%W$7$?$j!"%a%b%j$KLa$7$?$j$9$k$N$r7+$jJV$9(B) $B$rKI$0$?$a$K(B <code>MaxClients</code>
-$B$r8:$i$9I,MW$,$"$k$G$7$g$&!#%W%m%;%9:n@.$r%A%e!<%s$9$k$?$a$N>\$7$$>pJs$O(B
-<a href="misc/perf-tuning.html">$B@-G=$N>pJs(B</a>$B%I%-%e%a%s%H$r(B
-$B;2>H$7$F$/$@$5$$!#(B</p>
-
-<p>Unix $B$G$ODL>o!"?F%W%m%;%9$O(B 80 $BHV%]!<%H$r%P%$%s%I$9$k$?$a$K(B root $B$G(B
-$B5/F0$5$l$^$9$,!";R%W%m%;%9$O(B Apache $B$+$i$h$jFC8"$N>/$J$$%f!<%6$H$7$F(B
-$B5/F0$5$l$^$9!#(B<code>User</code> $B%G%#%l%/%F%#%V$H(B <code>Group</code>
-$B%G%#%l%/%F%#%V$O!"(BApache $B$N;R%W%m%;%9$K@_Dj$5$l$kFC8"$r@_Dj$9$k$?$a$K(B
-$B;HMQ$5$l$^$9!#;R%W%m%;%9$ODs6!$9$k$9$Y$F$N%3%s%F%s%D$rFI$a$J$1$l$P(B
-$B$$$1$^$;$s$,!"$=$l0J>e$NFC8"$O>/$J$1$l$P>/$J$$J}$,K>$^$7$$$G$9!#(B
-$B$^$?!"(B<a href="suexec.html">suexec</a> $B$,;HMQ$5$l$F$$$J$$$H!"(B
-CGI $B%9%/%j%W%H$,7Q>5$9$kFC8"$K$b$3$l$i$N%G%#%l%/%F%#%V$N@_Dj$,E,MQ$5$l$^$9!#(B</p>
-
-<p><code>MaxRequestsPerChild</code> $B$O!"%5!<%P$,8E$$%W%m%;%9$r(B kill $B$7$F(B
-$B?7$7$$%W%m%;%9$r5/F0$9$k$3$H$G!"%W%m%;%9$r:FMxMQ$9$kIQEY$r@_Dj$7$^$9!#(B</p>
-
-<p>Windows $B$G$O!"(BApache $B$O@)8f%W%m%;%90l$D$H;R%W%m%;%90l$D$G(B
-$B%9%?!<%H$7$^$9!#;R%W%m%;%9$O%j%/%(%9%H$K1~$($k$?$a$KJ#?t$N%9%l%C%I$r(B
-$B:n@.$7$^$9!#%9%l%C%I$N?t$O(B <code>ThreadsPerChild</code> $B%G%#%l%/%F%#%V$G(B
-$B@)8f$7$^$9!#(B</p>
-
-<hr>
-
-<h2><a name="network">$B%M%C%H%o!<%/@_Dj(B</a></h2>
-
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="mod/core.html#bindaddress">BindAddress</a><br>
-<a href="mod/core.html#keepalive">KeepAlive</a><br>
-<a href="mod/core.html#keepalivetimeout">KeepAliveTimeout</a><br>
-<a href="mod/core.html#listen">Listen</a><br>
-<a href="mod/core.html#listenbacklog">ListenBackLog</a><br>
-<a href="mod/core.html#acceptfilter">AcceptFilter</a><br>
-<a href="mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a><br>
-<a href="mod/core.html#port">Port</a><br>
-<a href="mod/core.html#sendbuffersize">SendBufferSize</a><br>
-<a href="mod/core.html#timeout">TimeOut</a><br>
-</td></tr></table>
-
-<p>Apache $B$O5/F0$9$k$H!"%m!<%+%k%^%7%s$N2?$i$+$N%]!<%HHV9f$H%"%I%l%9$K(B
-$B%3%M%/%H$7!"%j%/%(%9%H$rBT$A$^$9!#%G%U%)%k%H$G$O!"%^%7%s$K(B
-$B3d$jEv$F$i$l$F$$$k$9$Y$F$N%"%I%l%9$G%5!<%P@_Dj$N(B
-<code>Port</code> $B%G%#%l%/%F%#%V$G;XDj$5$l$F$$$k%]!<%HHV9f$r(B listen $B$7$^$9!#(B
-$BFs$D0J>e$N%]!<%H$r(B listen $B$7$?$j!"A*Br$5$l$?%"%I%l%9$N$_$r(B listen $B$7$?$j!"(B
-$B$=$NAH$_9g$o$;$r(B listen $B$7$?$j$9$k$h$&$K$b$G$-$^$9!#(B
-$B0c$&(B IP $B%"%I%l%9!"%[%9%HL>!"%]!<%HHV9f$K$h$C$F(B Apache $B$N1~Ez$r(B
-$B7hDj$9$k(B<a href="vhosts/">$B%P!<%A%c%k%[%9%H(B</a>$B5!G=$HAH$_9g$o$;$F(B
-$B;H$o$l$k$3$H$,$h$/$"$j$^$9!#(B</p>
-
-<p>Apache $B$,(B listen $B$9$k%"%I%l%9$H%]!<%HHV9f$r;XDj!"$b$7$/$O@)8B$9$k(B
-$B%G%#%l%/%F%#%V$OFs$D$"$j$^$9!#(B<code>BindAddress</code> $B%G%#%l%/%F%#%V$O(B
-$B%5!<%P$,0l$D$N(B IP $B%"%I%l%9$@$1$r(B listen $B$5$;$k$?$a$K;HMQ$5$l$^$9!#(B
-<code>Listen</code> $B%G%#%l%/%F%#%V$O(B Apache $B$,(B listen $B$9$k(B IP $B%"%I%l%9$H(B
-$B%]!<%HHV9f$NAH!"$^$?$O$I$A$i$+0lJ}$rJ#?t;XDj$9$k$?$a$K;HMQ$5$l$^$9!#(B</p>
-
-<p><code>ListenBackLog</code> $B%G%#%l%/%F%#%V!"(B<code>SendBufferSize</code>
-$B%G%#%l%/%F%#%V!"(B<code>TimeOut</code> $B%G%#%l%/%F%#%V$O!"(BApache $B$H(B
-$B%M%C%H%o!<%/$H$N4X78$rD4@0$7$^$9!#(B <!-- [code]AcceptFilter[/code] controls
-a BSD specific filter optimization. See the BSD section on
-[a href="misc/perf-tuning.html"]performance hints[/a] documentation. -->
-</p>
-
-<p><code>KeepAlive</code> $B%G%#%l%/%F%#%V!"(B<code>KeepAliveTimeout</code>
-$B%G%#%l%/%F%#%V!"(B<code>MaxKeepAliveRequests</code> $B%G%#%l%/%F%#%V$O!"(B
-Apache $B$,(B persistent connection $B$r$I$N$h$&$K07$&$+$r@)8f$7$^$9!#(B</p>
-
-<hr>
-<h2><a name="resource">$B%j%=!<%9$N@)8B(B</a></h2>
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="mod/core.html#limitrequestbody">LimitRequestBody</a><br>
-<a href="mod/core.html#limitrequestfields">LimitRequestFields</a><br>
-<a href="mod/core.html#limitrequestfieldsize">LimitRequestFieldsize</a><br>
-<a href="mod/core.html#limitrequestline">LimitRequestLine</a><br>
-<a href="mod/core.html#rlimitcpu">RLimitCPU</a><br>
-<a href="mod/core.html#rlimitmem">RLimitMEM</a><br>
-<a href="mod/core.html#rlimitnproc">RLimitNPROC</a><br>
-<a href="mod/core.html#threadstacksize">ThreadStackSize</a><br>
-</td></tr></table>
-
-<p><code>LimitRequest</code>* $B%G%#%l%/%F%#%V$O(B Apache $B$,(B
-$B%/%i%$%"%s%H$+$i$N%j%/%(%9%HFI$_9~$_$G;H$&%j%=!<%9$r@)8B$9$k$?$a$K(B
-$B;H$o$l$^$9!#$3$l$i$NCM$r@)8B$9$k$3$H$G!"$$$/$D$+$N%5!<%S%95qH]967b$O(B
-$B1F6A$rOB$i$2$k$3$H$,$G$-$^$9!#(B</p>
-
-<p><code>RLimit</code>* $B%G%#%l%/%F%#%V$O!"(BApache $B$N;R%W%m%;%9$+$i(B
-fork $B$5$l$?%W%m%;%9$,;HMQ$9$k%j%=!<%9$r@)8B$9$k$?$a$K(B
-$B;H$o$l$^$9!#FC$K!"$3$l$O(B CGI $B%9%/%j%W%H$H(B SSI exec $B%3%^%s%I$G(B
-$B;H$o$l$k%j%=!<%9$r@)8f$7$^$9!#(B</p>
-
-<p><code>ThreadStackSize</code> $B$O(B Netware $B$G$N$_!"%9%?%C%/$NBg$-$5$r(B
-$B@)8f$9$k$?$a$K;H$o$l$^$9!#(B</p>
+ <h1 align="center">$B%5!<%PA4BN$N@_Dj(B</h1>
+
+ <p>$B$3$N%I%-%e%a%s%H$G$O(B<a href="mod/core.html">$B%3%"(B</a>$B%5!<%P$N(B
+ $B%G%#%l%/%F%#%V$NCf$G!"4pK\F0:n$r@_Dj$9$k$?$a$N$b$N$r@bL@$7$^$9!#(B
+ </p>
+
+ <ul>
+ <li><a href="#identification">$B%5!<%P(B ID</a></li>
+
+ <li><a href="#locations">$B%U%!%$%k$N0LCV(B</a></li>
+
+ <li><a href="#process">$B%W%m%;%9@8@.(B</a></li>
+
+ <li><a href="#network">$B%M%C%H%o!<%/@_Dj(B</a></li>
+
+ <li><a href="#resource">$B%j%=!<%9$N@)8B(B</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="identification" name="identification">$B%5!<%P(B ID</a></h2>
+
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a href="mod/core.html#servername">ServerName</a><br />
+ <a
+ href="mod/core.html#serveradmin">ServerAdmin</a><br />
+ <a
+ href="mod/core.html#serversignature">ServerSignature</a><br />
+ <a
+ href="mod/core.html#servertokens">ServerTokens</a><br />
+ <a href="mod/core.html#usecanonicalname">UseCanonicalName</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p><code>ServerAdmin</code> $B%G%#%l%/%F%#%V$H(B <code>ServerTokens</code>
+ $B%G%#%l%/%F%#%V$O!"%(%i!<%a%C%;!<%8$J$I$N%5!<%P$,:n$k%I%-%e%a%s%H$K!"(B
+ $B$I$N$h$&$J%5!<%P$N>pJs$rI=<($9$k$+$r@)8f$7$^$9!#(B
+ <code>ServerTokens</code> $B%G%#%l%/%F%#%V$O!"(BServer HTTP
+ $B%l%9%]%s%9%X%C%@%U%#!<%k%I$NCM$r@_Dj$7$^$9!#(B</p>
+
+ <p><code>ServerName</code> $B%G%#%l%/%F%#%V$H(B
+ <code>UseCanonicalName</code> $B%G%#%l%/%F%#%V$O!"(B
+ $B%5!<%P$,<+J,<+?H$r;2>H$9$k(B URL $B$r:n$k$H$-$K;H$o$l$^$9!#$?$H$($P!"(B
+ $B%/%i%$%"%s%H$,%G%#%l%/%H%j$rMW5a$7$F!"$=$N%G%#%l%/%H%jL>$N:G8e$K(B
+ $B%9%i%C%7%e$,IU$$$F$$$J$$$h$&$J>l9g$K$O!"%I%-%e%a%s%H$NAjBPE*$J(B
+ $B;2>H$r@5$7$/2r7h$G$-$k$h$&$K$9$k$?$a$K!"(BApache $B$O:G8e$N%9%i%C%7%e(B
+ $B$r4^$s$@40A4$J%Q%9$K%/%i%$%"%s%H$r%j%@%$%l%/%H$5$;$kI,MW$,$"$j$^$9!#(B
+ </p>
<hr />
+ <h2><a id="locations" name="locations">$B%U%!%$%k$N0LCV(B</a></h2>
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a
+ href="mod/core.html#coredumpdirectory">CoreDumpDirectory</a><br />
+ <a
+ href="mod/core.html#documentroot">DocumentRoot</a><br />
+ <a href="mod/core.html#errorlog">ErrorLog</a><br />
+ <a href="mod/core.html#lockfile">Lockfile</a><br />
+ <a href="mod/core.html#pidfile">PidFile</a><br />
+ <a
+ href="mod/core.html#scoreboardfile">ScoreBoardFile</a><br />
+ <a href="mod/core.html#serverroot">ServerRoot</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p>$B$3$l$i$N%G%#%l%/%F%#%V$O(B Apache $B$,E,@Z$JF0:n$r$9$k$?$a$KI,MW$J(B
+ $B3F<o%U%!%$%k$N0LCV$r@)8f$7$^$9!#%Q%9$,%9%i%C%7%e(B "/"
+ $B$G;O$^$C$F$$$J$$$H$-$O!"%U%!%$%k$O(B <code>ServerRoot</code>
+ $B$+$i$NAjBP%Q%9$H$7$FC5$5$l$^$9!#(B
+ root $B0J30$N%f!<%6$,=q$-9~$_2DG=$J%Q%9$K%U%!%$%k$rCV$/>l9g$OCm0U$,I,MW$G$9!#(B
+ $B>\:Y$O(B<a href="misc/security_tips.html">$B!V%;%-%e%j%F%#>pJs!W(B</a>$B$r(B
+ $B;2>H$7$F$/$@$5$$!#(B</p>
+ <hr />
+
+ <h2><a id="process" name="process">$B%W%m%;%9@8@.(B</a></h2>
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a
+ href="mod/core.html#bs2000account">BS2000Account</a><br />
+ <a href="mod/core.html#group">Group</a><br />
+ <a href="mod/core.html#maxclients">MaxClients</a><br />
+ <a
+ href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a><br />
+ <a
+ href="mod/core.html#maxspareservers">MaxSpareServers</a><br />
+ <a
+ href="mod/core.html#minspareservers">MinSpareServers</a><br />
+ <a href="mod/core.html#servertype">ServerType</a><br />
+ <a
+ href="mod/core.html#startservers">StartServers</a><br />
+ <a
+ href="mod/core.html#threadsperchild">ThreadsPerChild</a><br />
+ <a href="mod/core.html#user">User</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p><code>ServerType</code> $B$K?d>)$5$l$F$$$kCM$G$"$k(B
+ <code>Standalone</code> $B$,@_Dj$5$l$F$$$k>l9g$O!"(BUnix $B>e$G$N(B Apache
+ $B$O(B pre-forking $B%5!<%P$G$9!#$=$3$G$O0l$D$N@)8fMQ%W%m%;%9$,;R%W%m%;%9$r(B
+ $B5/F0$9$k@UG$$r;}$A$^$9!#$=$7$F!";R%W%m%;%9$O%W%m%;%9$,@8B8$7$F$$$k4V(B
+ listen $B$7!"@\B3$5$l$?$i$=$N%3%M%/%7%g%s$KBP$9$k=hM}$r9T$J$$$^$9!#(B
+ Apache $B$O%j%/%(%9%H$,Mh$?$H$-$K$9$0$K1~Ez$G$-$k$h$&$K!">o$KJ#?t$N(B
+ <em>$B%9%Z%"(B</em>$B%5!<%P%W%m%;%9!"$^$?$O%"%$%I%k%5!<%P%W%m%;%9$r0];}(B
+ $B$7$h$&$H$7$^$9!#$3$&$9$k$3$H$G!"%j%/%(%9%H$,07$o$l$kA0$K?7$7$$;R%W%m%;%9$,(B
+ fork $B$5$l$k$N$r%/%i%$%"%s%H$,BT$DI,MW$,$J$/$J$j$^$9!#(B</p>
+
+ <p><code>StartServers</code>, <code>MinSpareServers</code>,
+ <code>MaxSpareServers</code>, <code>MaxServers</code> $B$O!"(B
+ $B?F%W%m%;%9$,%j%/%(%9%H$r07$&$3$H$K$J$k;R%W%m%;%9$r:n@.$9$kJ}K!$r@)8f$7$^$9!#(B
+ $BDL>o!"(BApache $B$OHs>o$K<+@)E*$G$9$N$G!"$[$H$s$I$N%5%$%H$G$O(B
+ $B%G%U%)%k%HCM$+$iJQ99$9$kI,MW$O$"$j$^$;$s!#$?$@!"F1;~$K(B 256 $B$rD6$($k(B
+ $B%j%/%(%9%H$r07$&%5%$%H$O(B <code>MaxClients</code> $B$rA}$d$9I,MW$,$"$k$G$7$g$&!#(B
+ $B0lJ}!"%a%b%j$N>/$J$$%5%$%H$G$O!"%5!<%P$,%9%i%C%7%s%0(B ($B%a%b%j$r%G%#%9%/$K(B
+ $B%9%o%C%W$7$?$j!"%a%b%j$KLa$7$?$j$9$k$N$r7+$jJV$9(B) $B$rKI$0$?$a$K(B
+ <code>MaxClients</code> $B$r8:$i$9I,MW$,$"$k$G$7$g$&!#(B
+ $B%W%m%;%9:n@.$r%A%e!<%s$9$k$?$a$N>\$7$$>pJs$O(B
+ <a href="misc/perf-tuning.html">$B@-G=$N>pJs(B</a>
+ $B%I%-%e%a%s%H$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+
+ <p>Unix $B$G$ODL>o!"?F%W%m%;%9$O(B 80 $BHV%]!<%H$r%P%$%s%I$9$k$?$a$K(B
+ root $B$G5/F0$5$l$^$9$,!";R%W%m%;%9$O(B Apache $B$+$i$h$jFC8"$N>/$J$$(B
+ $B%f!<%6$H$7$F5/F0$5$l$^$9!#(B<code>User</code> $B%G%#%l%/%F%#%V$H(B
+ <code>Group</code>$B%G%#%l%/%F%#%V$O!"(BApache $B$N;R%W%m%;%9$K@_Dj$5$l$k(B
+ $BFC8"$r@_Dj$9$k$?$a$K;HMQ$5$l$^$9!#;R%W%m%;%9$ODs6!$9$k$9$Y$F$N(B
+ $B%3%s%F%s%D$rFI$a$J$1$l$P$$$1$^$;$s$,!"(B
+ $B$=$l0J>e$NFC8"$O>/$J$1$l$P>/$J$$J}$,K>$^$7$$$G$9!#(B
+ $B$^$?!"(B<a href="suexec.html">suexec</a> $B$,;HMQ$5$l$F$$$J$$$H$-$O!"(B
+ CGI $B%9%/%j%W%H$,7Q>5$9$kFC8"$K$b$3$l$i$N%G%#%l%/%F%#%V$N(B
+ $B@_Dj$,E,MQ$5$l$^$9!#(B</p>
+
+ <p><code>MaxRequestsPerChild</code> $B$O!"%5!<%P$,8E$$%W%m%;%9$r(B
+ kill $B$7$F?7$7$$%W%m%;%9$r5/F0$9$k$3$H$G!"(B
+ $B%W%m%;%9$r:FMxMQ$9$kIQEY$r@_Dj$7$^$9!#(B</p>
+
+ <p>Windows $B$G$O!"(BApache $B$O@)8f%W%m%;%90l$D$H;R%W%m%;%90l$D$G%9%?!<%H(B
+ $B$7$^$9!#;R%W%m%;%9$O%j%/%(%9%H$K1~$($k$?$a$KJ#?t$N%9%l%C%I$r:n@.$7$^$9!#(B
+ $B%9%l%C%I$N?t$O(B <code>ThreadsPerChild</code> $B%G%#%l%/%F%#%V$G@)8f$7$^$9!#(B
+ </p>
+ <hr />
+
+ <h2><a id="network" name="network">$B%M%C%H%o!<%/@_Dj(B</a></h2>
+
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a href="mod/core.html#bindaddress">BindAddress</a><br />
+ <a href="mod/core.html#keepalive">KeepAlive</a><br />
+ <a
+ href="mod/core.html#keepalivetimeout">KeepAliveTimeout</a><br />
+ <a href="mod/core.html#listen">Listen</a><br />
+ <a
+ href="mod/core.html#listenbacklog">ListenBackLog</a><br />
+ <a
+ href="mod/core.html#acceptfilter">AcceptFilter</a><br />
+ <a href="mod/core.html#acceptmutex">AcceptMutex</a><br />
+ <a
+ href="mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a><br />
+ <a href="mod/core.html#port">Port</a><br />
+ <a
+ href="mod/core.html#sendbuffersize">SendBufferSize</a><br />
+ <a href="mod/core.html#timeout">TimeOut</a><br />
+ </td>
+ </tr>
+ </table>
+
+
+ <p>Apache $B$O5/F0$9$k$H!"%m!<%+%k%^%7%s$N2?$i$+$N%]!<%HHV9f$H(B
+ $B%"%I%l%9$K%3%M%/%H$7!"%j%/%(%9%H$rBT$A$^$9!#%G%U%)%k%H$G$O!"(B
+ $B%^%7%s$K3d$jEv$F$i$l$F$$$k$9$Y$F$N%"%I%l%9$G%5!<%P@_Dj$N(B
+ <code>Port</code> $B%G%#%l%/%F%#%V$G;XDj$5$l$F$$$k%]!<%HHV9f$r(B listen
+ $B$7$^$9!#Fs$D0J>e$N%]!<%H$r(B listen $B$7$?$j!"A*Br$5$l$?%"%I%l%9$N$_$r(B
+ listen $B$7$?$j!"$=$NAH$_9g$o$;$r(B listen $B$7$?$j$9$k$h$&$K$b$G$-$^$9!#(B
+ $B0c$&(B IP $B%"%I%l%9!"%[%9%HL>!"%]!<%HHV9f$K$h$C$F(B Apache $B$N1~Ez$r(B
+ $B7hDj$9$k(B<a href="vhosts/">$B%P!<%A%c%k%[%9%H(B</a>$B5!G=$HAH$_9g$o$;$F(B
+ $B;H$o$l$k$3$H$,$h$/$"$j$^$9!#(B
+ </p>
+
+ <p>Apache $B$,(B listen $B$9$k%"%I%l%9$H%]!<%HHV9f$r;XDj!"(B
+ $B$b$7$/$O@)8B$9$k%G%#%l%/%F%#%V$OFs$D$"$j$^$9!#(B
+ <code>BindAddress</code> $B%G%#%l%/%F%#%V$O%5!<%P$,0l$D$N(B IP
+ $B%"%I%l%9$@$1$r(B listen $B$5$;$k$?$a$K;HMQ$5$l$^$9!#(B
+ <code>Listen</code> $B%G%#%l%/%F%#%V$O(B Apache $B$,(B listen $B$9$k(B IP $B%"%I%l%9$H(B
+ $B%]!<%HHV9f$NAH!"$^$?$O$I$A$i$+0lJ}$rJ#?t;XDj$9$k$?$a$K;HMQ$5$l$^$9!#(B</p>
+
+ <p><code>ListenBackLog</code> $B%G%#%l%/%F%#%V!"(B<code>SendBufferSize</code>
+ $B%G%#%l%/%F%#%V!"(B<code>TimeOut</code> $B%G%#%l%/%F%#%V$O!"(BApache $B$H(B
+ $B%M%C%H%o!<%/$H$N4X78$rD4@0$7$^$9!#(B<code>AcceptFilter</code>
+ $B$O(B BSD $BFCM-$N%U%#%k%?$N:GE,2=$r@)8f$7$^$9!#(B
+ <a href="misc/perf-bsd44.html">$B@-G=$K4X$9$k%R%s%H(B</a>$B$N(B BSD $B$N@a$r(B
+ $B8+$F$/$@$5$$!#(B<code>AcceptMutex</code> $B$O$I$N$h$&$K(B accept $B;~$N(B
+ $BGSB>@)8f$r9T$J$&$+$r@)8f$7$^$9!#$3$l$,0lBN2?$G!"$J$<I,MW$G$"$k$+$O!"(B
+ <a href="misc/perf-tuning.html">$B0lHLE*$J@-G=$K4X$9$k%R%s%H(B</a>
+ $B$r8+$F$/$@$5$$!#(B</p>
+
+ <p><code>KeepAlive</code> $B%G%#%l%/%F%#%V!"(B<code>KeepAliveTimeout</code>
+ $B%G%#%l%/%F%#%V!"(B<code>MaxKeepAliveRequests</code> $B%G%#%l%/%F%#%V$O!"(B
+ Apache $B$,(B persistent connection $B$r$I$N$h$&$K07$&$+$r@)8f$7$^$9!#(B</p>
+ <hr />
+
+ <h2><a id="resource" name="resource">$B%j%=!<%9$N@)8B(B</a></h2>
+
+
+ <table border="1">
+ <tr>
+ <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a
+ href="mod/core.html#limitrequestbody">LimitRequestBody</a><br />
+ <a
+ href="mod/core.html#limitrequestfields">LimitRequestFields</a><br />
+ <a
+ href="mod/core.html#limitrequestfieldsize">LimitRequestFieldsize</a><br />
+ <a
+ href="mod/core.html#limitrequestline">LimitRequestLine</a><br />
+ <a href="mod/core.html#rlimitcpu">RLimitCPU</a><br />
+ <a href="mod/core.html#rlimitmem">RLimitMEM</a><br />
+ <a href="mod/core.html#rlimitnproc">RLimitNPROC</a><br />
+ <a
+ href="mod/core.html#threadstacksize">ThreadStackSize</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p><code>LimitRequest</code>* $B%G%#%l%/%F%#%V$O(B Apache $B$,(B
+ $B%/%i%$%"%s%H$+$i$N%j%/%(%9%HFI$_9~$_$G;H$&%j%=!<%9$r@)8B$9$k$?$a$K(B
+ $B;H$o$l$^$9!#$3$l$i$NCM$r@)8B$9$k$3$H$G!"$$$/$D$+$N%5!<%S%95qH]967b$N(B
+ $B1F6A$rOB$i$2$k$3$H$,$G$-$^$9!#(B</p>
+
+ <p><code>RLimit</code>* $B%G%#%l%/%F%#%V$O!"(BApache $B$N;R%W%m%;%9$+$i(B
+ fork $B$5$l$?%W%m%;%9$,;HMQ$9$k%j%=!<%9$r@)8B$9$k$?$a$K(B
+ $B;H$o$l$^$9!#FC$K!"$3$l$O(B CGI $B%9%/%j%W%H$H(B SSI exec $B%3%^%s%I$G(B
+ $B;H$o$l$k%j%=!<%9$r@)8f$7$^$9!#(B</p>
+
+ <p><code>ThreadStackSize</code> $B$O(B Netware $B$G$N$_!"(B
+ $B%9%?%C%/$NBg$-$5$r@)8f$9$k$?$a$K;H$o$l$^$9!#(B</p>
+ <hr />
+
<h3 align="CENTER">Apache HTTP Server</h3>
<a href="./"><img src="images/index.gif" alt="Index" /></a>
-</body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis b/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis
index c1ab782164e..92e9fe6c359 100644
--- a/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/suexec.html.ja.jis
@@ -1,18 +1,17 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache suEXEC Support</title>
-</head>
-<!-- English revision:1.24 -->
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#ffffff"
- text="#000000"
- link="#0000ff"
- vlink="#000080"
- alink="#ff0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache suEXEC Support</title>
+
+ </head>
+ <!-- English revision:1.25 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server</h3>
@@ -20,370 +19,442 @@
-<h1 align="center">Apache suEXEC Support</h1>
-
-<ol>
- <li><big><strong>$BL\<!(B</strong></big></li>
- <li><a href="#what">suEXEC $B$H$O(B?</a></li>
- <li><a href="#before">$B;O$a$kA0$K(B</a></li>
- <li><a href="#model">suEXEC $B$N%;%-%e%j%F%#%b%G%k(B</a></li>
- <li><a href="#install">suEXEC $B$N@_Dj$H%$%s%9%H!<%k(B</a></li>
- <li><a href="#enable">suEXEC $B$NM-8z2=$HL58z2=(B</a></li>
- <li><a href="#usage">suEXEC $B$N;HMQ(B</a></li>
- <li><a href="#debug">suEXEC $B$N%G%P%C%0(B</a></li>
- <li><a href="#jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a></li>
-</ol>
-
-<h3><a name="what">suEXEC $B$H$O(B?</a></h3>
-<p align="left">
-Apache 1.2 $B$GF3F~$5$l$?(B <strong>suEXEC</strong> $B5!G=$K$h$j!"(B
-Apache $B%f!<%6$O(B Web $B%5!<%P$r<B9T$7$F$$$k%f!<%6(B ID $B$H(B
-$B0[$J$k%f!<%6(B ID $B$G(B <strong>CGI</strong> $B%W%m%0%i%`$d(B <strong>SSI</strong>
-$B%W%m%0%i%`$r<B9T$9$k$3$H$,$G$-$^$9!#(B
-CGI $B%W%m%0%i%`$^$?$O(B SSI $B%W%m%0%i%`$r<B9T$9$k>l9g!"DL>o$O(B web $B%5!<%P$H(B
-$BF1$8%f!<%6$G<B9T$5$l$^$9!#(B
-</p>
-
-<p align="left">
-$BE,@Z$K;HMQ$9$k$H!"$3$N5!G=$K$h$j%f!<%6$,8DJL$N(B CGI $B$d(B SSI
-$B%W%m%0%i%`$r3+H/$7<B9T$9$k$3$H$G@8$8$k%;%-%e%j%F%#>e$N4m81$r!"(B
-$B$+$J$j8:$i$9$3$H$,$G$-$^$9!#$7$+$7!"(BsuEXEC $B$N@_Dj$,ITE,@Z$@$H!"(B
-$BB?$/$NLdBj$,@8$8!"$"$J$?$N%3%s%T%e!<%?$K?7$7$$(B
-$B%;%-%e%j%F%#%[!<%k$r:n$C$F$7$^$&2DG=@-$,$"$j$^$9!#(B
-$B$"$J$?$,(B root $B$K(B setuid $B$5$l$?%W%m%0%i%`$H!"$=$l$i$+$i@8$8$k(B
-$B%;%-%e%j%F%#>e$NLdBj$N4IM}$K>\$7$/$J$$$h$&$J$i!"(BsuEXEC $B$N;HMQ$r(B
-$B8!F$$7$J$$$h$&$K6/$/?d>)$7$^$9!#(B
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="before">$B;O$a$kA0$K(B</a></h3>
-<p align="left">
-$B$3$NJ8=q$N@hF,$KHt$VA0$K!"(BApache $B%0%k!<%W$H(B
-$B$3$NJ8=q$G$N2>Dj$rCN$C$F$*$/$Y$-$G$7$g$&!#(B
-</p>
-
-<p align="left">
-$BBh(B 1 $B$K!"$"$J$?$,(B <strong>setuid</strong> $B$H(B
-<strong>setgid</strong> $BA`:n$,2DG=$J(B UNIX $BM3Mh$N(B
-$B%*%Z%l!<%F%#%s%0%7%9%F%`$r;H$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#(B
-$B$3$l$O!"$9$Y$F$N%3%^%s%INc$K$"$F$O$^$j$^$9!#(B
-$B$=$NB>$N%W%i%C%H%[!<%`$G$O!"$b$7(B suEXEC $B$,%5%]!<%H$5$l$F$$$?$H(B
-$B$7$F$b@_Dj$O0[$J$k$+$b$7$l$^$;$s!#(B
-</p>
-
-<p align="left">
-$BBh(B 2 $B$K!";HMQCf$N%3%s%T%e!<%?$N%;%-%e%j%F%#$K4X$9$k4pK\E*$J35G0$H!"(B
-$B$=$l$i$N4IM}$K$D$$$F$"$J$?$,>\$7$$$3$H$rA[Dj$7$F$$$^$9!#(B
-$B$3$l$O!"(B<strong>setuid/setgid</strong> $BA`:n!"(B
-$B$"$J$?$N%7%9%F%`>e$G$N$=$NA`:n$K$h$kMM!9$J8z2L!"(B
-$B%;%-%e%j%F%#%l%Y%k$K$D$$$F$"$J$?$,M}2r$7$F$$$k$H$$$&$3$H$r4^$_$^$9!#(B
-</p>
-
-<p align="left">
-$BBh(B 3 $B$K!"(B<strong>$B2~B$$5$l$F$$$J$$(B</strong> suEXEC $B%3!<%I$N(B
-$B;HMQ$rA[Dj$7$F$$$^$9!#(B
-suEXEC $B$N%3!<%I$O!"B?$/$N%Y!<%?%F%9%?$@$1$G$J$/!"3+H/<T$K$h$C$F$b(B
-$BCm0U?<$/@:::$5$l%F%9%H$5$l$F$$$^$9!#(B
-$B$=$l$i$NCm0U$K$h$j!"4J7i$G?.Mj$G$-$k0BA4$J%3!<%I$N4pHW$,(B
-$BJ]>Z$5$l$^$9!#$3$N%3!<%I$r2~JQ$9$k$3$H$G!"M=4|$5$l$J$$LdBj$d(B
-$B?7$7$$%;%-%e%j%F%#>e$N4m81$,@8$8$k$3$H$,$"$j$^$9!#(B
-$B%;%-%e%j%F%#%W%m%0%i%_%s%0$N>\:Y$KDL$8$F$$$F!"(B
-$B:#8e$N8!F$$N$?$a$K@.2L$r(B Apache $B%0%k!<%W$H6&M-$7$h$&$H;W$&$N$G(B
-$B$J$1$l$P!"(BsuEXEC $B%3!<%I$OJQ$($J$$$3$H$r(B
-<strong>$B6/$/(B</strong>$B?d>)$7$^$9!#(B
-</p>
-
-<p align="left">
-$BBh(B 4 $B$K!"$3$l$,:G8e$G$9$,!"(BsuEXEC $B$r(B Apache $B$N%G%U%)%k%H(B
-$B%$%s%9%H!<%k$K(B<strong>$B4^$a$J$$(B</strong>$B$3$H$,(B
-Apache $B%0%k!<%W$G7hDj$5$l$F$$$^$9!#(B
-$B$3$l$O!"(BsuEXEC $B$N@_Dj$K$O4IM}<T$N>\:Y$K$o$?$k?5=E$JCm0U$,I,MW(B
-$B$@$+$i$G$9!#(BsuEXEC $B$NMM!9$J@_Dj$K$D$$$F8!F$$,=*$o$l$P!"(B
-$B4IM}<T$O(B suEXEC $B$rDL>o$N%$%s%9%H!<%kJ}K!$G%$%s%9%H!<%k$9$k(B
-$B$3$H$,$G$-$^$9!#$3$l$i$N@_DjCM$O!"(BsuEXEC $B5!G=$N;HMQCf$K(B
-$B%7%9%F%`%;%-%e%j%F%#$rE,@Z$KJ]$D$?$a$K!"4IM}<T$K$h$C$F(B
-$B?5=E$K7hDj$5$l;XDj$5$l$k$3$H$,I,MW$G$9!#(B
-$B$3$N>\:Y$J<j=g$K$h$j!"(B
-Apache $B%0%k!<%W$O!"(BsuEXEC $B$N%$%s%9%H!<%k$K$D$$$F!"(B
-$BCm0U?<$/==J,$K8!F$$7$F$=$l$r;HMQ$9$k$3$H$r7hDj$7$?>l9g$K(B
-$B8B$C$F$$$?$@$-$?$$$H9M$($F$$$^$9!#(B
-</p>
-
-<p align="left">
-$B$=$l$G$b?J$_$^$9$+(B? $B$h$m$7$$!#$G$O!"@h$X?J$_$^$7$g$&(B!
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="model">suEXEC $B%;%-%e%j%F%#%b%G%k(B</a></h3>
-<p align="left">
-suEXEC $B$N@_Dj$H%$%s%9%H!<%k$r;O$a$kA0$K!"$^$:(B
-$B<BAu$7$h$&$H$7$F$$$k%;%-%e%j%F%#%b%G%k$K$D$$$F(B
-$BO@$8$F$*$-$^$9!#$=$l$K$O!"(BsuEXEC $B$NFbIt$G9T$J$o$l$F$$$k$3$H!"(B
-$B%7%9%F%`$N%;%-%e%j%F%#$rJ]>Z$9$k$?$a$K7Y9p$5$l$k$3$H(B
-$B$r$h$/M}2r$7$F$*$$$?J}$,$h$$$G$7$g$&!#(B
-</p>
-
-<p align="left">
-<strong>suEXEC</strong> $B$O!"(BApache web $B%5!<%P$+$i(B
-$B8F$S=P$5$l$k(B setuid $B$5$l$?(B "wrapper" $B%W%m%0%i%`$,4pK\$H$J$C$F$$$^$9!#(B
-$B@_7W$7$?(B CGI$B!"$^$?$O(B SSI $B%W%m%0%i%`$X$N(B HTTP $B%j%/%(%9%H$,(B
-$B$"$k$H!"$3$N(B wrapper $B$,8F$S=P$5$l$^$9!#(B
-$B$3$N$h$&$J%j%/%(%9%H$,$"$k$H!"(BApache $B$O$=$N%W%m%0%i%`$,(B
-$B<B9T$5$l$k:]$N%W%m%0%i%`L>$H%f!<%6(B ID $B$H%0%k!<%W(B ID $B$r;XDj$7$F(B
-suEXEC wrapper $B$r<B9T$7$^$9!#(B
-</p>
-
-<p align="left">
-$B$=$l$+$i!"(Bwrapper $B$O@.8y$^$?$O<:GT$r7hDj$9$k$?$a(B
-$B0J2<$N=hM}$r9T$J$$$^$9!#(B
-$B$3$l$i$N>uBV$N$&$A0l$D$G$b<:GT$7$?>l9g!"%W%m%0%i%`$O<:GT$r(B
-$B%m%0$K5-O?$7$F%(%i!<$G=*N;$7$^$9!#$=$&$G$J$1$l$P!"(B
-$B8e$N=hM}$,B3$1$i$l$^$9!#(B
-</p>
-
-<ol>
- <li><strong>wrapper $B$,E,@Z$J?t$N0z?t$G8F$S=P$5$l$?$+(B?</strong>
- <blockquote>
- wrapper $B$OE,@Z$J?t$N0z?t$,M?$($i$l$?>l9g$K<B9T$5$l$^$9!#(B
- $BE,@Z$J?t$N0z?t$r<u$1<h$i$J$1$l$P!"967b$r$5$l$?$+(B
- $B$"$J$?$N(B Apache $B%P%$%J%j$N(B suEXEC $B$NItJ,$,(B
- $B$I$3$+$*$+$7$$2DG=@-$,$"$j$^$9!#(B
- </blockquote>
- </li>
- <li><strong>wrapper $B$r<B9T$7$F$$$k%f!<%6$O(B
-$B$3$N%7%9%F%`$N@5Ev$J%f!<%6$+(B?</strong>
- <blockquote>
- $B$3$l$O!"(Bwrapper $B$r<B9T$7$F$$$k%f!<%6$,(B
- $BK\Ev$K%7%9%F%`$NMxMQ<T$G$"$k$3$H$rJ]>Z$9$k$?$a$G$9!#(B
- </blockquote>
- </li>
- <li><strong>$B$3$N@5Ev$J%f!<%6$O(B wrapper $B$N<B9T$r5v2D$5$l$F$$$k$+(B?</strong>
- <blockquote>
- $B$3$N%f!<%6$O(B wrapper $B<B9T$r5v2D$5$l$?%f!<%6$G$9$+(B?
- $B$?$@0l?M$N%f!<%6(B (Apache $B%f!<%6(B) $B$@$1$,!"$3$N%W%m%0%i%`$N(B
- $B<B9T$r5v2D$5$l$^$9!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$N%W%m%0%i%`$,0BA4$G$J$$3,AX$N;2>H$r$7$F$$$k$+(B?</strong>
- <blockquote>
- $BBP>]$N%W%m%0%i%`$,(B '/' $B$+$i;O$^$k!"$^$?$O(B
- '..' $B$K$h$k;2>H$r9T$J$C$F$$$^$9$+(B? $B$3$l$i$O5v2D$5$l$^$;$s!#(B
- $BBP>]$N%W%m%0%i%`$O(B Apache $B$N(B web $B6u4VFb$K$J$1$l$P$J$j$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%f!<%6L>$O@5Ev$J$b$N$+(B?</strong>
- <blockquote>
- $BBP>]$H$J$k%f!<%6L>$OB8:_$7$F$$$^$9$+(B?
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%0%k!<%WL>$O@5Ev$J$b$N$+(B?</strong>
- <blockquote>
- $BBP>]$H$J$k%0%k!<%WL>$OB8:_$7$F$$$^$9$+(B?
- </blockquote>
- </li>
- <li><strong>$BL\E*$N%f!<%6$O%9!<%Q!<%f!<%6$G$O(B<em>$B$J$$(B</em>$B$+(B?</strong>
- <blockquote>
- $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B$K$h$k(B CGI/SSI $B%W%m%0%i%`$N(B
- $B<B9T$r5v2D$7$F$$$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%f!<%6(B ID $B$O!":G>.$N(B ID $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B?
- </strong>
- <blockquote>
- $B:G>.%f!<%6(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#(B
- $B$3$l$O!"(BCGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%f!<%6(B ID $B$N(B
- $B$H$j$&$k:G>.CM$G$9!#$3$l$O(B "system" $BMQ$N%"%+%&%s%H$r(B
- $BJD$a=P$9$N$KM-8z$G$9!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%0%k!<%W$O%9!<%Q!<%f!<%6$N%0%k!<%W$G$O(B<em>$B$J$$(B</em>$B$+(B?
- </strong>
- <blockquote>
- $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B%0%k!<%W$K$h$k(B CGI/SSI
- $B%W%m%0%i%`$N<B9T$r5v2D$7$F$$$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%0%k!<%W(B ID $B$O:G>.$N(B ID $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B?
- </strong>
- <blockquote>
- $B:G>.%0%k!<%W(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#(B
- $B$3$l$O!"(BCGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%0%k!<%W(B ID $B$N(B
- $B$H$j$&$k:G>.CM$G$9!#$3$l$O(B "system" $BMQ$N%0%k!<%W$r(B
- $BJD$a=P$9$N$KM-8z$G$9!#(B
- </blockquote>
- </li>
- <li><strong>wrapper $B$,@5>o$KBP>]$H$J$k%f!<%6$H%0%k!<%W$K$J$l$k$+(B?
- </strong>
- <blockquote>
- $B$3$3$G!"(Bsetuid $B$H(B setgid $B$N5/F0$K$h$j%W%m%0%i%`$OBP>]$H$J$k(B
- $B%f!<%6$H%0%k!<%W$K$J$j$^$9!#%0%k!<%W%"%/%;%9%j%9%H$O!"(B
- $B%f!<%6$,B0$7$F$$$k$9$Y$F$N%0%k!<%W$G=i4|2=$5$l$^$9!#(B
- </blockquote>
- </li>
- <li><strong>$B%W%m%0%i%`$,CV$+$l$k%G%#%l%/%H%j$OB8:_$7$F$$$k$+(B?
- </strong>
- <blockquote>
- $B%G%#%l%/%H%j$,B8:_$7$J$$$J$i!"$=$N%U%!%$%k$bB8:_$7$J$$(B
- $B$+$b$7$l$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$B%G%#%l%/%H%j$,(B Apache $B$N%I%-%e%a%s%H%D%j!<Fb$K$"$k$+(B?
- </strong>
- <blockquote>
- $B%j%/%(%9%H$,%5!<%PFb$N$b$N$G$"$l$P!"MW5a$5$l$?%G%#%l%/%H%j$,(B
- $B%5!<%P$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B?
- $B%j%/%(%9%H$,(B UserDir $B$N$b$N$G$"$l$P!"MW5a$5$l$?%G%#%l%/%H%j$,(B
- $B%f!<%6$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B?
- </blockquote>
- </li>
- <li><strong>$B%G%#%l%/%H%j$rB>$N%f!<%6$,=q$-9~$a$k$h$&$K$J$C$F(B
- <em>$B$$$J$$(B</em>$B$+(B?</strong>
- <blockquote>
- $B%G%#%l%/%H%j$rB>%f!<%6$K3+J|$7$J$$$h$&$K$7$^$9!#(B
- $B=jM-%f!<%6$@$1$,$3$N%G%#%l%/%H%j$NFbMF$r2~JQ$G$-$k$h$&$K$7$^$9!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%W%m%0%i%`$OB8:_$9$k$+(B?</strong>
- <blockquote>
- $BB8:_$7$J$1$l$P<B9T$G$-$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%W%m%0%i%`%U%!%$%k$,B>%"%+%&%s%H$+$i=q$-9~$a$k$h$&$K$J$C$F(B
- <em>$B$$$J$$(B</em>$B$+(B?</strong>
- <blockquote>
- $B=jM-<T0J30$K$O%W%m%0%i%`$rJQ99$9$k8"8B$OM?$($i$l$^$;$s!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%W%m%0%i%`$,(B setuid $B$^$?$O(B setgid
- $B$5$l$F(B<em>$B$$$J$$(B</em>$B$+(B?</strong>
- <blockquote>
- UID/GID $B$r:FEYJQ99$7$F$N%W%m%0%i%`<B9T$O$7$^$;$s(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%f!<%6(B/$B%0%k!<%W$,%W%m%0%i%`$N%f!<%6(B/$B%0%k!<%W$HF1$8$+(B?
- </strong>
- <blockquote>
- $B%f!<%6$,$=$N%U%!%$%k$N=jM-<T$G$9$+(B?
- </blockquote>
- </li>
- <li><strong>$B0BA4$JF0:n$rJ]>Z$9$k$?$a$N4D6-JQ?t%/%j%"$,2DG=$+(B?</strong>
- <blockquote>
- suEXEC $B$O!"0BA4$J4D6-JQ?t$N%j%9%H(B
- ($B$3$l$i$O@_Dj;~$K:n@.$5$l$^$9(B) $BFb$NJQ?t$H$7$F(B
- $BEO$5$l$k0BA4$J(B PATH $BJQ?t(B ($B@_Dj;~$K;XDj$5$l$^$9(B) $B$r(B
- $B@_Dj$9$k$3$H$G!"%W%m%;%9$N4D6-JQ?t$r%/%j%"$7$^$9!#(B
- </blockquote>
- </li>
- <li><strong>$BBP>]$H$J$k%W%m%0%i%`$r(B exec $B$7$F<B9T$G$-$k$+(B?</strong>
- <blockquote>
- $B$3$3$G(B suEXEC $B$,=*N;$7!"BP>]$H$J$k%W%m%0%i%`$,3+;O$5$l$^$9!#(B
- </blockquote>
- </li>
-</ol>
-
-<p align="left">
-$B$3$3$^$G$,(B suEXEC $B$N(B wrapper $B$K$*$1$k%;%-%e%j%F%#%b%G%k$NI8=`E*$JF0:n$G$9!#(B
-$B$b$&>/$787=E$K(B CGI/SSI $B@_7W$K$D$$$F$N?7$7$$@)8B$d5,Dj$r(B
-$B<h$jF~$l$k$3$H$b$G$-$^$9$,!"(BsuEXEC $B$O%;%-%e%j%F%#$KCm0U$7$F(B
-$B?5=E$K>/$7$:$D3+H/$5$l$F$-$^$7$?!#(B
-</p>
-
-<p align="left">
-$B$3$N%;%-%e%j%F%#%b%G%k$rMQ$$$F(B
-$B%5!<%P@_Dj;~$K$I$N$h$&$K5v$9$3$H$r@)8B$9$k$+!"(B
-$B$^$?!"(BsuEXEC $B$rE,@Z$K@_Dj$9$k$H$I$N$h$&$J%;%-%e%j%F%#>e$N(B
-$B4m81$rHr$1$i$l$k$+$K4X$9$k$h$j>\$7$$>pJs$K$D$$$F$O!"(B
-<a href="#jabberwock">"$B$H$+$2$KCm0U(B" (Beware the Jabberwock)</a>
- $B$N>O$r;2>H$7$F$/$@$5$$!#(B
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="install">suEXEC $B$N@_Dj$H%$%s%9%H!<%k(B</a></h3>
-<p align="left">
-$B$3$3$+$i3Z$7$/$J$j$^$9!#(BApache 1.2 $B$"$k$$$O(B <code>"src/Configure"</code>
-$B%9%/%j%W%H$G(B Apache 1.3 $B$r@_Dj$9$k$J$i!"(BsuEXEC $B%X%C%@%U%!%$%k$rJT=8$7$F(B
-$B%P%$%J%j$rE,@Z$J>l=j$K<j:n6H$G%$%s%9%H!<%k$7$J$1$l$P$J$j$^$;$s!#(B
-$B$3$N=hM}$K$D$$$F$O(B <a href="suexec_1_2.html">$BJL$NJ8=q(B</a>$B$K(B
-$B5-:\$5$l$F$$$^$9!#0J2<$N>O$G$O!"(BAutoConf-style $B%$%s%?%U%'!<%9(B
-(APACI) $B$r;H$C$?(B Apache 1.3 $B$G$N@_Dj$H%$%s%9%H!<%k$K(B
-$B$D$$$F=R$Y$F$$$^$9!#(B
-</p>
-
-<p align="left">
-<strong>APACI $B$N(B suEXEC $B@_Dj%*%W%7%g%s(B</strong><br>
-</p>
-
-<dl>
-<dt><code>--enable-suexec</code>
-<dd>$B$3$N%*%W%7%g%s$O!"%G%U%)%k%H$G$O%$%s%9%H!<%k$5$l$:!"M-8z$K$O$J$i$J$$(B
- suEXEC $B5!G=$rM-8z$K$7$^$9!#(BsuEXEC $B$r;H$&$h$&$K(B APACI $B$K(B
- $BMW5a$9$k$K$O!"(B--enable-suexec $B%*%W%7%g%s$K$"$o$;$F(B
- $B>/$J$/$H$b0l$D$O(B --suexec-xxxxx $B%*%W%7%g%s$,;XDj(B
- $B$5$l$J$1$l$P$J$j$^$;$s!#(B
-<dt><code>--suexec-caller=<em>UID</em></code>
-<dd>Apache $B$rDL>oF0:n$5$;$k(B
- <a href="mod/core.html#user">$B%f!<%6L>(B</a>$B$r;XDj$7$^$9!#(B
- $B$3$N%f!<%6$@$1$,(B suexec $B$N<B9T$r5v2D$5$l$?%f!<%6$K$J$j$^$9!#(B
-<dt><code>--suexec-docroot=<em>DIR</em></code>
-<dd>Apache $B$N%I%-%e%a%s%H%k!<%H$r@_Dj$7$^$9!#(B
- $B$3$l$,(B suEXEC $B$NF0:n$G;HMQ$9$k(B
- $BM#0l$N%G%#%l%/%H%j3,AX$K$J$j$^$9(B (UserDir $B$N;XDj$OJL(B)$B!#(B
- $B%G%U%)%k%H$G$O(B --datedir $B$K(B "/htdocs" $B$H$$$&%5%U%#%C%/%9$r(B
- $B$D$1$?$b$N$G$9!#(B"<code>--datadir=/home/apache</code>"
- $B$H$7$F@_Dj$9$k$H!"(B
- suEXEC wrapper $B$K$H$C$F(B "/home/apache/htdocs" $B$,%I%-%e%a%s%H(B
- $B%k!<%H$H$7$F;H$o$l$^$9!#(B
-<dt><code>--suexec-logfile=<em>FILE</em></code>
-<dd>suEXEC $B$N=hM}$H%(%i!<$,5-O?$5$l$k%U%!%$%kL>$r;XDj$7$^$9!#(B
- ($B4F::$d%G%P%C%0L\E*$KM-MQ(B)
- $B%G%U%)%k%H$G$O%m%0%U%!%$%k$O(B "suexec_log" $B$H$$$&L>A0$G!"(B
- $BI8=`$N%m%0%U%!%$%k%G%#%l%/%H%j(B (--logfiledir) $B$KCV$+$l$^$9!#(B
-<dt><code>--suexec-userdir=<em>DIR</em></code>
-<dd>suEXEC $B$,%"%/%;%9$r5v$5$l$k%f!<%6%[!<%`%G%#%l%/%H%jG[2<$N(B
- $B%5%V%G%#%l%/%H%j$r;XDj$7$^$9!#$3$N%G%#%l%/%H%j0J2<$NA4<B9T(B
- $B%U%!%$%k$O!"(B"$B0BA4$J(B" $B%W%m%0%i%`$K$J$k$h$&!"(BsuEXEC $B$,(B
- $B$=$N%f!<%6$H$7$F<B9T$G$-$k$h$&$K$7$^$9!#(B
- "$BC1=c$J(B" UserDir $B%G%#%l%/%F%#%V$r;H$C$F$$$k>l9g(B
- ($B$9$J$o$A(B "*" $B$r4^$^$J$$$b$N(B)$B!"$3$l$HF1$8CM$r@_Dj$9$Y$-$G$9!#(B
- Userdir $B%G%#%l%/%F%#%V$,$=$N%f!<%6$N%Q%9%o!<%I%U%!%$%kFb$N(B
- $B%[!<%`%G%#%l%/%H%j$HF1$8>l=j$r;X$7$F$$$J$1$l$P!"(B
- suEXEC $B$OE,@Z$KF0:n$7$^$;$s!#(B
- $B%G%U%)%k%H$O(B "public_html" $B$G$9!#(B
- <br>
- $B3F(B UserDir $B$,0[$J$C$?2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B
- $B$=$l$i$rA4$F0l$D$N?F%G%#%l%/%H%j$K4^$a$F!"$=$N?F%G%#%l%/%H%j$N(B
- $BL>A0$r$3$3$G;XDj$9$kI,MW$,$"$j$^$9!#(B
- <strong>$B$3$N$h$&$K;XDj$5$l$J$1$l$P(B
- "~userdir" cgi $B$X$N%j%/%(%9%H$,F0:n$7$^$;$s!#(B</strong>
-<dt><code>--suexec-uidmin=<em>UID</em></code>
-<dd>suEXEC $B$NBP>]%f!<%6$H$7$F5v$5$l$k(B UID $B$N:G>.CM$r;XDj$7$^$9!#(B
- $BBgDq$N%7%9%F%`$G$O(B 500 $B$+(B 100 $B$,0lHLE*$G$9!#(B
- $B%G%U%)%k%HCM$O(B 100 $B$G$9!#(B
-<dt><code>--suexec-gidmin=<em>GID</em></code>
-<dd>suEXEC $B$NBP>]%0%k!<%W$H$7$F5v$5$l$k(B GID $B$N:G>.CM$r;XDj$7$^$9!#(B
- $BBgDq$N%7%9%F%`$G$O(B 100 $B$,0lHLE*$J$N$G!"%G%U%)%k%HCM$H$7$F$b(B 100 $B$,;H$o$l$F$$$^$9!#(B
-<dt><code>--suexec-safepath=<em>PATH</em></code>
-<dd>CGI $B<B9T%U%!%$%k$KEO$5$l$k0BA4$J(B PATH $B4D6-JQ?t$G$9!#(B
- $B%G%U%)%k%HCM$O(B "/usr/local/bin:/usr/bin:/bin" $B$G$9!#(B
-</dl>
-
-<p align="left">
-<strong>suEXEC $B@_Dj$N3NG'(B</strong><br>
-suEXEC wrapper $B$r%3%s%Q%$%k$7$F%$%s%9%H!<%k$9$kA0$K!"(B
-$B@_DjFbMF$r(B --layout $B%*%W%7%g%s$G3NG'$G$-$^$9!#(B
-<br>
-$B=PNONc(B:
-</p>
+ <h1 align="center">Apache suEXEC Support</h1>
+ <ol>
+
+ <li><big><strong>$BL\<!(B</strong></big></li>
+
+ <li><a href="#what">suEXEC $B$H$O(B?</a></li>
+
+ <li><a href="#before">$B;O$a$kA0$K(B</a></li>
+
+ <li><a href="#model">suEXEC $B$N%;%-%e%j%F%#%b%G%k(B</a></li>
+
+ <li><a href="#install">suEXEC $B$N@_Dj$H%$%s%9%H!<%k(B</a></li>
+
+ <li><a href="#enable">suEXEC $B$NM-8z2=$HL58z2=(B</a></li>
+
+ <li><a href="#usage">suEXEC $B$N;HMQ(B</a></li>
+
+ <li><a href="#debug">suEXEC $B$N%G%P%C%0(B</a></li>
+
+ <li><a href="#jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a></li>
+
+ </ol>
+
+
+ <h3><a id="what" name="what">suEXEC $B$H$O(B?</a></h3>
+
+ <p align="left">Apache 1.2 $B$GF3F~$5$l$?(B <strong>suEXEC</strong>
+ $B5!G=$K$h$j!"(BApache $B%f!<%6$O(B Web $B%5!<%P$r<B9T$7$F$$$k%f!<%6(B ID $B$H$O(B
+ $B0[$J$k%f!<%6(B ID $B$G(B <strong>CGI</strong> $B%W%m%0%i%`$d(B <strong>SSI</strong>
+ $B%W%m%0%i%`$r<B9T$9$k$3$H$,$G$-$^$9!#(BCGI $B%W%m%0%i%`$^$?$O(B SSI
+ $B%W%m%0%i%`$r<B9T$9$k>l9g!"DL>o$O(B web $B%5!<%P$HF1$8%f!<%6$G<B9T$5$l$^$9!#(B
+ </p>
+
+ <p align="left">$BE,@Z$K;HMQ$9$k$H!"$3$N5!G=$K$h$j%f!<%6$,8DJL$N(B CGI
+ $B$d(B SSI $B%W%m%0%i%`$r3+H/$7<B9T$9$k$3$H$G@8$8$k%;%-%e%j%F%#>e$N4m81$r!"(B
+ $B$+$J$j8:$i$9$3$H$,$G$-$^$9!#$7$+$7!"(BsuEXEC $B$N@_Dj$,ITE,@Z$@$H!"(B
+ $BB?$/$NLdBj$,@8$8!"$"$J$?$N%3%s%T%e!<%?$K?7$7$$%;%-%e%j%F%#%[!<%k$r(B
+ $B:n$C$F$7$^$&2DG=@-$,$"$j$^$9!#$"$J$?$,(B root $B$K(B setuid
+ $B$5$l$?%W%m%0%i%`$H!"$=$l$i$+$i@8$8$k%;%-%e%j%F%#>e$NLdBj$N4IM}$K(B
+ $B>\$7$/$J$$$h$&$J$i!"(BsuEXEC $B$N;HMQ$r8!F$$7$J$$$h$&$K6/$/?d>)$7$^$9!#(B
+ </p>
+
+ <p align="center"><strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
+ </p>
+
+ <h3><a id="before" name="before">$B;O$a$kA0$K(B</a></h3>
+
+ <p align="left">$B$3$NJ8=q$N@hF,$KHt$VA0$K!"(BApache
+ $B%0%k!<%W$H$3$NJ8=q$G$N2>Dj$rCN$C$F$*$/$Y$-$G$7$g$&!#(B
+ </p>
+
+ <p align="left">$BBh(B 1 $B$K!"$"$J$?$,(B <strong>setuid</strong> $B$H(B
+ <strong>setgid</strong> $BA`:n$,2DG=$J(B UNIX
+ $BM3Mh$N%*%Z%l!<%F%#%s%0%7%9%F%`$r;H$C$F$$$k$3$H$rA[Dj$7$F$$$^$9!#(B
+ $B$3$l$O!"$9$Y$F$N%3%^%s%INc$K$"$F$O$^$j$^$9!#(B
+ $B$=$NB>$N%W%i%C%H%[!<%`$G$O!"$b$7(B suEXEC
+ $B$,%5%]!<%H$5$l$F$$$?$H$7$F$b@_Dj$O0[$J$k$+$b$7$l$^$;$s!#(B</p>
+
+ <p align="left">$BBh(B 2 $B$K!"$"$J$?$,;HMQCf$N%3%s%T%e!<%?$N(B
+ $B%;%-%e%j%F%#$K4X$9$k4pK\E*$J35G0$H!"$=$l$i$N4IM}$K$D$$$F>\$7$$$3$H$r(B
+ $BA[Dj$7$F$$$^$9!#$3$l$O!"(B<strong>setuid/setgid</strong>
+ $BA`:n!"$"$J$?$N%7%9%F%`>e$G$N$=$NA`:n$K$h$kMM!9$J8z2L!"(B
+ $B%;%-%e%j%F%#%l%Y%k$K$D$$$F$"$J$?$,M}2r$7$F$$$k$H$$$&$3$H$r4^$_$^$9!#(B
+ </p>
+
+ <p align="left">$BBh(B 3 $B$K!"(B<strong>$B2~B$$5$l$F$$$J$$(B</strong> suEXEC
+ $B%3!<%I$N;HMQ$rA[Dj$7$F$$$^$9!#(BsuEXEC $B$N%3!<%I$O!"(B
+ $BB?$/$N%Y!<%?%F%9%?$@$1$G$J$/!"3+H/<T$K$h$C$F$bCm0U?<$/@:::$5$l(B
+ $B%F%9%H$5$l$F$$$^$9!#$=$l$i$NCm0U$K$h$j!"4J7i$G?.Mj$G$-$k0BA4$J(B
+ $B%3!<%I$N4pHW$,J]>Z$5$l$^$9!#$3$N%3!<%I$r2~JQ$9$k$3$H$G!"(B
+ $BM=4|$5$l$J$$LdBj$d?7$7$$%;%-%e%j%F%#>e$N4m81$,@8$8$k$3$H$,$"$j$^$9!#(B
+ $B%;%-%e%j%F%#%W%m%0%i%_%s%0$N>\:Y$KDL$8$F$$$F!"(B
+ $B:#8e$N8!F$$N$?$a$K@.2L$r(B Apache
+ $B%0%k!<%W$H6&M-$7$h$&$H;W$&$N$G$J$1$l$P!"(BsuEXEC
+ $B%3!<%I$OJQ$($J$$$3$H$r(B <strong>$B6/$/(B</strong>$B?d>)$7$^$9!#(B</p>
+
+ <p align="left">$BBh(B 4 $B$K!"$3$l$,:G8e$G$9$,!"(BsuEXEC $B$r(B Apache
+ $B$N%G%U%)%k%H%$%s%9%H!<%k$K$O(B<strong>$B4^$a$J$$(B</strong>$B$3$H$,(B
+ Apache $B%0%k!<%W$G7hDj$5$l$F$$$^$9!#$3$l$O!"(BsuEXEC
+ $B$N@_Dj$K$O4IM}<T$N>\:Y$K$o$?$k?5=E$JCm0U$,I,MW$@$+$i$G$9!#(B
+ suEXEC $B$NMM!9$J@_Dj$K$D$$$F8!F$$,=*$o$l$P!"4IM}<T$O(B suEXEC
+ $B$rDL>o$N%$%s%9%H!<%kJ}K!$G%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B
+ $B$3$l$i$N@_DjCM$O!"(BsuEXEC
+ $B5!G=$N;HMQCf$K%7%9%F%`%;%-%e%j%F%#$rE,@Z$KJ]$D$?$a$K!"(B
+ $B4IM}<T$K$h$C$F?5=E$K7hDj$5$l;XDj$5$l$k$3$H$,I,MW$G$9!#(B
+ $B$3$N>\:Y$J<j=g$K$h$j!"(BApache $B%0%k!<%W$O!"(BsuEXEC
+ $B$N%$%s%9%H!<%k$K$D$$$F!"Cm0U?<$/==J,$K8!F$$7$F$=$l$r;HMQ$9$k$3$H$r(B
+ $B7hDj$7$?>l9g$K8B$C$F$$$?$@$-$?$$$H9M$($F$$$^$9!#(B
+ </p>
+
+ <p align="left">$B$=$l$G$b?J$_$^$9$+(B? $B$h$m$7$$!#$G$O!"@h$X?J$_$^$7$g$&(B!</p>
+
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a id="model" name="model">suEXEC $B%;%-%e%j%F%#%b%G%k(B</a></h3>
+
+ <p align="left">suEXEC $B$N@_Dj$H%$%s%9%H!<%k$r;O$a$kA0$K!"(B
+ $B$^$:<BAu$7$h$&$H$7$F$$$k%;%-%e%j%F%#%b%G%k$K$D$$$FO@$8$F$*$-$^$9!#(B
+ $B$=$l$K$O!"(BsuEXEC $B$NFbIt$G9T$J$o$l$F$$$k$3$H!"(B
+ $B%7%9%F%`$N%;%-%e%j%F%#$rJ]>Z$9$k$?$a$K7Y9p$5$l$k$3$H$r(B
+ $B$h$/M}2r$7$F$*$$$?J}$,$h$$$G$7$g$&!#(B</p>
+
+ <p align="left"><strong>suEXEC</strong> $B$O!"(BApache web
+ $B%5!<%P$+$i8F$S=P$5$l$k(B setuid $B$5$l$?(B "wrapper"
+ $B%W%m%0%i%`$,4pK\$H$J$C$F$$$^$9!#@_7W$7$?(B CGI$B!"$^$?$O(B SSI
+ $B%W%m%0%i%`$X$N(B HTTP $B%j%/%(%9%H$,$"$k$H!"$3$N(B wrapper
+ $B$,8F$S=P$5$l$^$9!#$3$N$h$&$J%j%/%(%9%H$,$"$k$H!"(BApache
+ $B$O$=$N%W%m%0%i%`$,<B9T$5$l$k:]$N%W%m%0%i%`L>$H%f!<%6(B ID $B$H%0%k!<%W(B
+ ID $B$r;XDj$7$F(B suEXEC wrapper $B$r<B9T$7$^$9!#(B
+ </p>
+
+ <p align="left">$B$=$l$+$i!"(Bwrapper $B$O@.8y$^$?$O<:GT$r7hDj$9$k$?$a(B
+ $B0J2<$N=hM}$r9T$J$$$^$9!#$3$l$i$N>uBV$N$&$A0l$D$G$b<:GT$7$?>l9g!"(B
+ $B%W%m%0%i%`$O<:GT$r%m%0$K5-O?$7$F%(%i!<$G=*N;$7$^$9!#(B
+ $B$=$&$G$J$1$l$P!"8e$N=hM}$,B3$1$i$l$^$9!#(B</p>
+
+ <ol>
+ <li>
+ <strong>wrapper $B$,E,@Z$J?t$N0z?t$G8F$S=P$5$l$?$+(B?</strong>
+
+
+ <blockquote>
+ wrapper $B$OE,@Z$J?t$N0z?t$,M?$($i$l$?>l9g$K$N$_<B9T$5$l$^$9!#(B
+ $BE,@Z$J0z?t$N%U%)!<%^%C%H$O(B Apache Web $B%5!<%P$K2r<a$5$l$^$9!#(B
+ $BE,@Z$J?t$N0z?t$r<u$1<h$i$J$1$l$P!"967b$r$5$l$?$+(B
+ $B$"$J$?$N(B Apache $B%P%$%J%j$N(B suEXEC $B$NItJ,$,(B
+ $B$I$3$+$*$+$7$$2DG=@-$,$"$j$^$9!#(B
+ </blockquote>
+ </li>
+
+
+ <li>
+ <strong>wrapper
+ $B$r<B9T$7$F$$$k%f!<%6$O$3$N%7%9%F%`$N@5Ev$J%f!<%6$+(B?</strong>
+
+ <blockquote>
+ $B$3$l$O!"(Bwrapper $B$r<B9T$7$F$$$k%f!<%6$,(B
+ $BK\Ev$K%7%9%F%`$NMxMQ<T$G$"$k$3$H$rJ]>Z$9$k$?$a$G$9!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$B$3$N@5Ev$J%f!<%6$O(B wrapper
+ $B$N<B9T$r5v2D$5$l$F$$$k$+(B?</strong>
+
+ <blockquote>
+ $B$3$N%f!<%6$O(B wrapper $B<B9T$r5v2D$5$l$?%f!<%6$G$9$+(B?
+ $B$?$@0l?M$N%f!<%6(B (Apache $B%f!<%6(B) $B$@$1$,!"(B
+ $B$3$N%W%m%0%i%`$N<B9T$r5v2D$5$l$^$9!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$N%W%m%0%i%`$,0BA4$G$J$$3,AX$N;2>H$r$7$F$$$k$+(B?
+ </strong>
+
+ <blockquote>
+ $BBP>]$N%W%m%0%i%`$,(B '/' $B$+$i;O$^$k!"$^$?$O(B
+ '..' $B$K$h$k;2>H$r9T$J$C$F$$$^$9$+(B? $B$3$l$i$O5v2D$5$l$^$;$s!#(B
+ $BBP>]$N%W%m%0%i%`$O(B Apache $B$N(B web $B6u4VFb$K$J$1$l$P$J$j$^$;$s!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%f!<%6L>$O@5Ev$J$b$N$+(B?</strong>
+
+ <blockquote>
+ $BBP>]$H$J$k%f!<%6L>$OB8:_$7$F$$$^$9$+(B?
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%0%k!<%WL>$O@5Ev$J$b$N$+(B?</strong>
+
+ <blockquote>
+ $BBP>]$H$J$k%0%k!<%WL>$OB8:_$7$F$$$^$9$+(B?
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BL\E*$N%f!<%6$O%9!<%Q!<%f!<%6$G$O(B<em>$B$J$$(B</em>$B$+(B?
+ </strong>
+
+ <blockquote>
+ $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B$K$h$k(B CGI/SSI
+ $B%W%m%0%i%`$N<B9T$r5v2D$7$F$$$^$;$s!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%f!<%6(B ID $B$O!":G>.$N(B ID
+ $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B? </strong>
+
+ <blockquote>
+ $B:G>.%f!<%6(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#$3$l$O!"(B
+ CGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%f!<%6(B ID
+ $B$N$H$j$&$k:G>.CM$G$9!#$3$l$O(B
+ "system" $BMQ$N%"%+%&%s%H$rJD$a=P$9$N$KM-8z$G$9!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%0%k!<%W$O%9!<%Q!<%f!<%6$N%0%k!<%W$G$O(B
+ <em>$B$J$$(B</em>$B$+(B?</strong>
+
+ <blockquote>
+ $B:#$N$H$3$m!"(BsuEXEC $B$O(B 'root' $B%0%k!<%W$K$h$k(B CGI/SSI
+ $B%W%m%0%i%`$N<B9T$r5v2D$7$F$$$^$;$s!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%0%k!<%W(B ID $B$O:G>.$N(B ID
+ $BHV9f$h$j$b(B<em>$BBg$-$$(B</em>$B$+(B?</strong>
+
+ <blockquote>
+ $B:G>.%0%k!<%W(B ID $BHV9f$O@_Dj;~$K;XDj$5$l$^$9!#$3$l$O!"(B
+ CGI/SSI $B%W%m%0%i%`<B9T$r5v2D$5$l$k%0%k!<%W(B
+ ID $B$N$H$j$&$k:G>.CM$G$9!#(B
+ $B$3$l$O(B "system" $BMQ$N%0%k!<%W$rJD$a=P$9$N$KM-8z$G$9!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>wrapper $B$,@5>o$KBP>]$H$J$k%f!<%6$H%0%k!<%W$K$J$l$k$+(B?
+ </strong>
+
+ <blockquote>
+ $B$3$3$G!"(Bsetuid $B$H(B setgid
+ $B$N5/F0$K$h$j%W%m%0%i%`$OBP>]$H$J$k%f!<%6$H%0%k!<%W$K$J$j$^$9!#(B
+ $B%0%k!<%W%"%/%;%9%j%9%H$O!"(B
+ $B%f!<%6$,B0$7$F$$$k$9$Y$F$N%0%k!<%W$G=i4|2=$5$l$^$9!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$B%W%m%0%i%`$,CV$+$l$k%G%#%l%/%H%j$OB8:_$7$F$$$k$+(B?
+ </strong>
+
+ <blockquote>
+ $B%G%#%l%/%H%j$,B8:_$7$J$$$J$i!"$=$N%U%!%$%k$bB8:_$7$J$$$+$b$7$l$^$;$s!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$B%G%#%l%/%H%j$,(B Apache $B$N%I%-%e%a%s%H%D%j!<Fb$K$"$k$+(B?
+ </strong>
+
+ <blockquote>
+ $B%j%/%(%9%H$,%5!<%PFb$N$b$N$G$"$l$P!"(B
+ $BMW5a$5$l$?%G%#%l%/%H%j$,%5!<%P$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B?
+ $B%j%/%(%9%H$,(B UserDir $B$N$b$N$G$"$l$P!"(B
+ $BMW5a$5$l$?%G%#%l%/%H%j$,%f!<%6$N%I%-%e%a%s%H%k!<%HG[2<$K$"$j$^$9$+(B?
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$B%G%#%l%/%H%j$rB>$N%f!<%6$,=q$-9~$a$k$h$&$K$J$C$F(B
+ <em>$B$$$J$$(B</em>$B$+(B?</strong>
+
+ <blockquote>
+ $B%G%#%l%/%H%j$rB>%f!<%6$K3+J|$7$J$$$h$&$K$7$^$9!#(B
+ $B=jM-%f!<%6$@$1$,$3$N%G%#%l%/%H%j$NFbMF$r2~JQ$G$-$k$h$&$K$7$^$9!#(B
+ </blockquote>
+ </li>
+
+
+ <li>
+ <strong>$BBP>]$H$J$k%W%m%0%i%`$OB8:_$9$k$+(B?</strong>
+
+ <blockquote>
+ $BB8:_$7$J$1$l$P<B9T$G$-$^$;$s!#(B
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$BBP>]$H$J$k%W%m%0%i%`%U%!%$%k$,B>%"%+%&%s%H$+$i(B
+ $B=q$-9~$a$k$h$&$K$J$C$F(B<em>$B$$$J$$(B</em>$B$+(B?</strong>
+
+ <blockquote>
+ $B=jM-<T0J30$K$O%W%m%0%i%`$rJQ99$9$k8"8B$OM?$($i$l$^$;$s!#(B
+ </blockquote>
+ </li>
+
+
+ <li>
+ <strong>$BBP>]$H$J$k%W%m%0%i%`$,(B setuid $B$^$?$O(B setgid
+ $B$5$l$F(B<em>$B$$$J$$(B</em>$B$+(B?</strong>
+
+ <blockquote>
+ UID/GID $B$r:FEYJQ99$7$F$N%W%m%0%i%`<B9T$O$7$^$;$s(B
+ </blockquote>
+ </li>
+
+
+ <li>
+ <strong>$BBP>]$H$J$k%f!<%6(B/$B%0%k!<%W$,%W%m%0%i%`$N(B
+ $B%f!<%6(B/$B%0%k!<%W$HF1$8$+(B?</strong>
+
+ <blockquote>
+ $B%f!<%6$,$=$N%U%!%$%k$N=jM-<T$G$9$+(B?
+ </blockquote>
+ </li>
+
+ <li>
+ <strong>$B0BA4$JF0:n$rJ]>Z$9$k$?$a$N4D6-JQ?t%/%j%"$,2DG=$+(B?
+ </strong>
+
+ <blockquote>
+ suEXEC $B$O!"0BA4$J4D6-JQ?t$N%j%9%H(B
+ ($B$3$l$i$O@_Dj;~$K:n@.$5$l$^$9(B) $BFb$NJQ?t$H$7$FEO$5$l$k0BA4$J(B
+ PATH $BJQ?t(B ($B@_Dj;~$K;XDj$5$l$^$9(B) $B$r@_Dj$9$k$3$H$G!"(B
+ $B%W%m%;%9$N4D6-JQ?t$r%/%j%"$7$^$9!#(B
+ </blockquote>
+ </li>
+
+
+ <li>
+ <strong>$BBP>]$H$J$k%W%m%0%i%`$r(B exec $B$7$F<B9T$G$-$k$+(B?</strong>
+
+
+ <blockquote>
+ $B$3$3$G(B suEXEC $B$,=*N;$7!"BP>]$H$J$k%W%m%0%i%`$,3+;O$5$l$^$9!#(B
+ </blockquote>
+ </li>
+ </ol>
+
+ <p align="left">$B$3$3$^$G$,(B suEXEC $B$N(B wrapper
+ $B$K$*$1$k%;%-%e%j%F%#%b%G%k$NI8=`E*$JF0:n$G$9!#$b$&>/$787=E$K(B
+ CGI/SSI $B@_7W$K$D$$$F$N?7$7$$@)8B$d5,Dj$r<h$jF~$l$k$3$H$b$G$-$^$9$,!"(B
+ suEXEC $B$O%;%-%e%j%F%#$KCm0U$7$F?5=E$K>/$7$:$D3+H/$5$l$F$-$^$7$?!#(B
+ </p>
+
+ <p align="left">$B$3$N%;%-%e%j%F%#%b%G%k$rMQ$$$F(B
+ $B%5!<%P@_Dj;~$K$I$N$h$&$K5v$9$3$H$r@)8B$9$k$+!"$^$?!"(BsuEXEC
+ $B$rE,@Z$K@_Dj$9$k$H$I$N$h$&$J%;%-%e%j%F%#>e$N4m81$rHr$1$i$l$k$+$K(B
+ $B4X$9$k$h$j>\$7$$>pJs$K$D$$$F$O!"(B<a href="#jabberwock">"$B$H$+$2$KCm0U(B"
+ (Beware the Jabberwock)</a> $B$N>O$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+
+ <p align="center"><strong><a href="suexec.html"
+ >$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a name="install" id="install">suEXEC
+ $B$N@_Dj$H%$%s%9%H!<%k(B</a></h3>
+
+ <p align="left">$B$3$3$+$i3Z$7$/$J$j$^$9!#(BApache 1.2 $B$"$k$$$O(B
+ <code>"src/Configure"</code> $B%9%/%j%W%H$G(B Apache 1.3 $B$r@_Dj$9$k$J$i!"(B
+ suEXEC $B%X%C%@%U%!%$%k$rJT=8$7$F%P%$%J%j$rE,@Z$J>l=j$K<j:n6H$G(B
+ $B%$%s%9%H!<%k$7$J$1$l$P$J$j$^$;$s!#$3$N=hM}$K$D$$$F$O(B <a
+ href="suexec_1_2.html">$BJL$NJ8=q(B</a>$B$K5-:\$5$l$F$$$^$9!#(B
+ $B0J2<$N>O$G$O!"(BAutoConf-style $B%$%s%?%U%'!<%9(B (APACI) $B$r;H$C$?(B
+ Apache 1.3 $B$G$N@_Dj$H%$%s%9%H!<%k$K$D$$$F=R$Y$F$$$^$9!#(B
+ </p>
+
+ <p align="left"><strong>APACI $B$N(B suEXEC
+ $B@_Dj%*%W%7%g%s(B</strong><br />
+ </p>
+
+ <dl>
+ <dt><code>--enable-suexec</code></dt>
+
+ <dd>$B$3$N%*%W%7%g%s$O!"%G%U%)%k%H$G$O%$%s%9%H!<%k$5$l$:!"(B
+ $BM-8z$K$O$J$i$J$$(B suEXEC $B5!G=$rM-8z$K$7$^$9!#(B
+ suEXEC $B$r;H$&$h$&$K(B APACI $B$KMW5a$9$k$K$O!"(B--enable-suexec
+ $B%*%W%7%g%s$K$"$o$;$F>/$J$/$H$b0l$D$O(B --suexec-xxxxx
+ $B%*%W%7%g%s$,;XDj$5$l$J$1$l$P$J$j$^$;$s!#(B</dd>
+
+ <dt><code>--suexec-caller=<em>UID</em></code></dt>
+
+ <dd>Apache $B$rDL>oF0:n$5$;$k(B<a
+ href="mod/core.html#user">$B%f!<%6L>(B</a>$B$r;XDj$7$^$9!#(B
+ $B$3$N%f!<%6$@$1$,(B suexec $B$N<B9T$r5v2D$5$l$?%f!<%6$K$J$j$^$9!#(B</dd>
+
+ <dt><code>--suexec-docroot=<em>DIR</em></code></dt>
+
+ <dd>Apache $B$N%I%-%e%a%s%H%k!<%H$r@_Dj$7$^$9!#$3$l$,(B suEXEC
+ $B$NF0:n$G;HMQ$9$kM#0l$N%G%#%l%/%H%j3,AX$K$J$j$^$9(B (UserDir
+ $B$N;XDj$OJL(B)$B!#%G%U%)%k%H$G$O(B --datedir $B$K(B "/htdocs"
+ $B$H$$$&%5%U%#%C%/%9$r$D$1$?$b$N$G$9!#(B
+ "<code>--datadir=/home/apache</code>" $B$H$7$F@_Dj$9$k$H!"(B
+ suEXEC wrapper $B$K$H$C$F(B "/home/apache/htdocs"
+ $B$,%I%-%e%a%s%H%k!<%H$H$7$F;H$o$l$^$9!#(B</dd>
+
+ <dt><code>--suexec-logfile=<em>FILE</em></code></dt>
+
+ <dd>suEXEC $B$N=hM}$H%(%i!<$,5-O?$5$l$k%U%!%$%kL>$r;XDj$7$^$9!#(B
+ ($B4F::$d%G%P%C%0L\E*$KM-MQ(B)
+ $B%G%U%)%k%H$G$O%m%0%U%!%$%k$O(B "suexec_log" $B$H$$$&L>A0$G!"(B
+ $BI8=`$N%m%0%U%!%$%k%G%#%l%/%H%j(B (--logfiledir) $B$KCV$+$l$^$9!#(B
+ </dd>
+
+ <dt><code>--suexec-userdir=<em>DIR</em></code></dt>
+
+ <dd>suEXEC $B$,%"%/%;%9$r5v$5$l$k%f!<%6%[!<%`%G%#%l%/%H%jG[2<$N(B
+ $B%5%V%G%#%l%/%H%j$r;XDj$7$^$9!#(B
+ $B$3$N%G%#%l%/%H%j0J2<$NA4<B9T%U%!%$%k$O!"(B"$B0BA4$J(B"$B%W%m%0%i%`$K$J$k$h$&!"(B
+ suEXEC $B$,$=$N%f!<%6$H$7$F<B9T$G$-$k$h$&$K$7$^$9!#(B
+ "$BC1=c$J(B" UserDir $B%G%#%l%/%F%#%V$r;H$C$F$$$k>l9g(B
+ ($B$9$J$o$A(B "*" $B$r4^$^$J$$$b$N(B)$B!"$3$l$HF1$8CM$r@_Dj$9$Y$-$G$9!#(B
+ Userdir $B%G%#%l%/%F%#%V$,$=$N%f!<%6$N%Q%9%o!<%I%U%!%$%kFb$N(B
+ $B%[!<%`%G%#%l%/%H%j$HF1$8>l=j$r;X$7$F$$$J$1$l$P!"(B
+ suEXEC $B$OE,@Z$KF0:n$7$^$;$s!#%G%U%)%k%H$O(B "public_html" $B$G$9!#(B
+ <br />
+ $B3F(B UserDir $B$,0[$J$C$?2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B
+ $B$=$l$i$rA4$F0l$D$N?F%G%#%l%/%H%j$K4^$a$F!"(B
+ $B$=$N?F%G%#%l%/%H%j$NL>A0$r$3$3$G;XDj$9$kI,MW$,$"$j$^$9!#(B
+ <strong>$B$3$N$h$&$K;XDj$5$l$J$1$l$P(B "~userdir" cgi
+ $B$X$N%j%/%(%9%H$,F0:n$7$^$;$s!#(B</strong></dd>
+
+ <dt><code>--suexec-uidmin=<em>UID</em></code></dt>
+
+ <dd>suEXEC $B$NBP>]%f!<%6$H$7$F5v$5$l$k(B UID $B$N:G>.CM$r;XDj$7$^$9!#(B
+ $BBgDq$N%7%9%F%`$G$O(B 500 $B$+(B 100 $B$,0lHLE*$G$9!#(B
+ $B%G%U%)%k%HCM$O(B 100 $B$G$9!#(B</dd>
+
+ <dt><code>--suexec-gidmin=<em>GID</em></code></dt>
+
+ <dd>suEXEC $B$NBP>]%0%k!<%W$H$7$F5v$5$l$k(B GID
+ $B$N:G>.CM$r;XDj$7$^$9!#BgDq$N%7%9%F%`$G$O(B 100 $B$,0lHLE*$J$N$G!"(B
+ $B%G%U%)%k%HCM$H$7$F$b(B 100 $B$,;H$o$l$F$$$^$9!#(B</dd>
+
+ <dt><code>--suexec-safepath=<em>PATH</em></code></dt>
+
+ <dd>CGI $B<B9T%U%!%$%k$KEO$5$l$k0BA4$J(B PATH $B4D6-JQ?t$G$9!#(B
+ $B%G%U%)%k%HCM$O(B "/usr/local/bin:/usr/bin:/bin" $B$G$9!#(B
+ </dd>
+ </dl>
+
+ <p align="left"><strong>suEXEC $B@_Dj$N3NG'(B</strong>
+ <br />
+ suEXEC wrapper $B$r%3%s%Q%$%k$7$F%$%s%9%H!<%k$9$kA0$K!"@_DjFbMF$r(B
+ --layout $B%*%W%7%g%s$G3NG'$G$-$^$9!#(B<br />
+ $B=PNONc(B:</p>
<pre>
suEXEC setup:
suexec binary: /usr/local/apache/sbin/suexec
@@ -396,153 +467,151 @@ suEXEC wrapper $B$r%3%s%Q%$%k$7$F%$%s%9%H!<%k$9$kA0$K!"(B
minimum group ID: 100
</pre>
-<p align="left">
-<strong>suEXEC wrapper $B$N%3%s%Q%$%k$H%$%s%9%H!<%k(B</strong><br>
---enable-suexec $B%*%W%7%g%s$G(B suEXEC $B5!G=$rM-8z$K$9$k$H!"(B
-"make" $B%3%^%s%I$r<B9T$7$?;~$K(B suEXEC $B$N%P%$%J%j(B (Apache $B<+BN$b(B) $B$,(B
-$B<+F0E*$K:n@.$5$l$^$9!#(B
-<br>
-$B$9$Y$F$N9=@.MWAG$,:n@.$5$l$k$H!"$=$l$i$N%$%s%9%H!<%k$K$O(B
- "make install" $B%3%^%s%I$,<B9T$G$-$^$9!#%P%$%J%j%$%a!<%8$N(B "suexec" $B$O(B
---sbindir $B%*%W%7%g%s$G;XDj$5$l$?%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$^$9!#(B
-$B%G%U%)%k%H$N>l=j$O(B "/usr/local/apache/sbin/suexec" $B$G$9!#(B
-<br>
-$B%$%s%9%H!<%k;~$K$O(B <em><strong>root</em></strong> $B8"8B$,(B
-$BI,MW$J$N$GCm0U$7$F$/$@$5$$!#(B
-wrapper $B$,%f!<%6(B ID $B$r@_Dj$9$k$?$a$K!"(B
-$B=jM-<T(B <em><code>root</em></code> $B$G$N(B
-$B%;%C%H%f!<%6(B ID $B%S%C%H$r$=$N%U%!%$%k$N%b!<%I$K(B
-$B@_Dj$7$J$1$l$P$J$j$^$;$s!#(B
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="enable">suEXEC $B$NM-8z2=$HL58z2=(B</a></h3>
-<p align="left">
-$B5/F0;~$K!"(BApache $B$O(B "sbin" $B%G%#%l%/%H%j$G(B "suexec" $B$rC5$7$^$9(B
- ($B%G%U%)%k%H$O(B "/usr/local/apache/sbin/suexec") $B!#(B
-$BE,@Z$K@_Dj$5$l$?(B suEXEC $B$,$_$D$+$k$H!"%(%i!<%m%0$K(B
-$B0J2<$N%a%C%;!<%8$,=PNO$5$l$^$9!#(B
-</p>
-
+ <p align="left"><strong>suEXEC wrapper
+ $B$N%3%s%Q%$%k$H%$%s%9%H!<%k(B</strong><br />
+ --enable-suexec $B%*%W%7%g%s$G(B suEXEC $B5!G=$rM-8z$K$9$k$H!"(B
+ "make" $B%3%^%s%I$r<B9T$7$?;~$K(B suEXEC $B$N%P%$%J%j(B (Apache $B<+BN$b(B)
+ $B$,<+F0E*$K:n@.$5$l$^$9!#(B
+ <br />
+ $B$9$Y$F$N9=@.MWAG$,:n@.$5$l$k$H!"$=$l$i$N%$%s%9%H!<%k$K$O(B
+ "make install" $B%3%^%s%I$,<B9T$G$-$^$9!#%P%$%J%j%$%a!<%8$N(B "suexec"
+ $B$O(B --sbindir $B%*%W%7%g%s$G;XDj$5$l$?%G%#%l%/%H%j$K%$%s%9%H!<%k$5$l$^$9!#(B
+ $B%G%U%)%k%H$N>l=j$O(B "/usr/local/apache/sbin/suexec" $B$G$9!#(B<br />
+ $B%$%s%9%H!<%k;~$K$O(B <strong><em>root</em></strong>
+ $B8"8B$,I,MW$J$N$GCm0U$7$F$/$@$5$$!#(Bwrapper $B$,%f!<%6(B ID
+ $B$r@_Dj$9$k$?$a$K!"=jM-<T(B <code><em>root</em></code>
+ $B$G$N%;%C%H%f!<%6(B ID
+ $B%S%C%H$r$=$N%U%!%$%k$N%b!<%I$K@_Dj$7$J$1$l$P$J$j$^$;$s!#(B
+ </p>
+
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a id="enable" name="enable">suEXEC
+ $B$NM-8z2=$HL58z2=(B</a></h3>
+
+ <p align="left">$B5/F0;~$K!"(BApache $B$O(B "sbin" $B%G%#%l%/%H%j$G(B
+ "suexec" $B$rC5$7$^$9(B
+ ($B%G%U%)%k%H$O(B "/usr/local/apache/sbin/suexec") $B!#(B
+ $BE,@Z$K@_Dj$5$l$?(B suEXEC $B$,$_$D$+$k$H!"(B
+ $B%(%i!<%m%0$K0J2<$N%a%C%;!<%8$,=PNO$5$l$^$9!#(B</p>
<pre>
[notice] suEXEC mechanism enabled (wrapper: <em>/path/to/suexec</em>)
</pre>
-<p>
-$B%5!<%P5/F0;~$K$3$N%a%C%;!<%8$,=P$J$$>l9g!"BgDq$O%5!<%P$,(B
-$BA[Dj$7$?>l=j$G(B wrapper $B%W%m%0%i%`$,8+$D$+$i$J$+$C$?$+!"(B
-<em>setuid root</em> $B$H$7$F%$%s%9%H!<%k$5$l$F$$$J$$$+$G$9!#(B
-<br>
-suEXEC $B$N;EAH$_$r;HMQ$9$k$N$,=i$a$F$G!"(BApache $B$,4{$KF0:nCf(B
-$B$G$"$l$P!"(BApache $B$r(B kill $B$7$F!":F5/F0$7$J$1$l$P$J$j$^$;$s!#(B
-HUP $B%7%0%J%k$d(B USR1 $B%7%0%J%k$K$h$kC1=c$J:F5/F0$G$OIT==J,$G$9!#(B
-<br>
-suEXEC $B$rL58z$K$9$k>l9g$O!"(B"suexec" $B%U%!%$%k$r:o=|$7$F$+$i(B
-Apache $B$r(B kill $B$7$F:F5/F0$7$^$9!#(B
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="usage">suEXEC $B$N;HMQ(B</a></h3>
-<p align="left">
-<strong>$B2>A[%[%9%H(B:</strong><br>
-suEXEC wrapper $B$N;H$$J}$H$7$F!"(B
-<a href="mod/core.html#virtualhost">$B2>A[%[%9%H(B</a>$B@_Dj$G$N(B
-<a href="mod/core.html#user">User</a> $B%G%#%l%/%F%#%V$H(B
-<a href="mod/core.html#group">Group</a> $B%G%#%l%/%F%#%V(B
-$B$rDL$7$?$b$N$,$"$j$^$9!#$3$l$i$N%G%#%l%/%F%#%V$r(B
-$B%a%$%s%5!<%P$N%f!<%6(B ID $B$H0[$J$k$b$N$K$9$k$H!"(BCGI $B%j%=!<%9(B
-$B$X$N$9$Y$F$N%j%/%(%9%H$O!"$=$N(B <code>&lt;VirtualHost&gt;</code> $B$G(B
-$B;XDj$5$l$?(B <em>User</em> $B$H(B <em>Group</em> $B$H$7$F<B9T$5$l$^$9!#(B
-<code>&lt;VirtualHost&gt;</code> $B$G$=$l$i$N(B
-$B%G%#%l%/%F%#%V$N$I$A$i$+!"$^$?$ON>J}$,;XDj$5$l$F$$$J$$>l9g!"(B
-$B%a%$%s%5!<%P$N%f!<%6(B ID $B$,A[Dj$5$l$^$9!#(B
-<p>
-<strong>$B%f!<%6%G%#%l%/%H%j(B:</strong><br>
-suEXEC wrapper $B$O!"%j%/%(%9%H@h$N%f!<%6$H$7$F(B CGI $B$r<B9T$9$k$?$a$K$b(B
-$B;H$($^$9!#$3$l$O4|BT$9$k<B9T8"8B$N%f!<%6(B ID $B$NA0$K!"(B
-"<strong><code>~</code></strong>" $BJ8;z$r(B
-$BCV$/$3$H$G<B8=$5$l$^$9!#$3$N5!G=$rF0:n$5$;$k$?$a$KI,MW$J$3$H$O!"(B
-CGI $B$r$=$N%f!<%6$G<B9T$G$-$k$3$H!"$=$N%9%/%j%W%H$,(B
-$B>e5-$N(B<a href="#model">$B%;%-%e%j%F%#8!::(B</a>$B$r(B
-$B%Q%9$G$-$k$3$H$G$9!#(B
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3><a name="debug">suEXEC $B$N%G%P%C%0(B</a></h3>
-<p align="left">
-suEXEC wrapper $B$O!">e5-$G=R$Y$?(B --suexec-logfile $B%*%W%7%g%s$G(B
-$B;XDj$5$l$?%U%!%$%k$K%m%0>pJs$r5-O?$7$^$9!#(B
-wrapper $B$rE,@Z$K@_Dj!"%$%s%9%H!<%k$G$-$F$$$k$H;W$&>l9g!"(B
-$B$I$3$GLB$C$F$$$k$+8+$h$&$H$9$k$J$i$3$N%m%0$H%5!<%P$N(B
-$B%(%i!<%m%0$r8+$k$H$h$$$G$7$g$&!#(B
-</p>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
-
-<h3>
-<a name="jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a>
-</h3>
-<p align="left">
-<strong>$BCm0U(B!</strong> $B$3$N>O$O40A4$G$O$"$j$^$;$s!#(B
-$B$3$N>O$N:G?72~D{HG$K$D$$$F$O!"(B
-Apache $B%0%k!<%W$N(B<a href="http://www.apache.org/docs/suexec.html">
-$B%*%s%i%$%s%I%-%e%a%s%H(B</a>$BHG$r;2>H$7$F$/$@$5$$!#(B
-</p>
-
-<p align="left">
-$B%5!<%P$N@_Dj$K@)8B$r$b$&$1$k(B wrapper $B$K$D$$$F!"(B
-$B$$$/$D$+6=L#?<$$E@$,$"$j$^$9!#(BsuEXEC $B$K4X$9$k(B "$B%P%0(B" $B$r(B
-$BJs9p$9$kA0$K$3$l$i$r3NG'$7$F$/$@$5$$!#(B
-<ul>
- <li><strong>suEXEC $B$N6=L#?<$$E@(B</strong></li>
- <li>$B3,AX9=B$$N@)8B(B
+ <p>$B%5!<%P5/F0;~$K$3$N%a%C%;!<%8$,=P$J$$>l9g!"(B
+ $BBgDq$O%5!<%P$,A[Dj$7$?>l=j$G(B wrapper $B%W%m%0%i%`$,8+$D$+$i$J$+$C$?$+!"(B
+ <em>setuid root</em> $B$H$7$F%$%s%9%H!<%k$5$l$F$$$J$$$+$G$9!#(B
+ <br />
+ suEXEC $B$N;EAH$_$r;HMQ$9$k$N$,=i$a$F$G!"(BApache $B$,4{$KF0:nCf$G$"$l$P!"(B
+ Apache $B$r(B kill $B$7$F!":F5/F0$7$J$1$l$P$J$j$^$;$s!#(BHUP $B%7%0%J%k$d(B
+ USR1 $B%7%0%J%k$K$h$kC1=c$J:F5/F0$G$OIT==J,$G$9!#(B<br />
+ suEXEC $B$rL58z$K$9$k>l9g$O!"(B"suexec" $B%U%!%$%k$r:o=|$7$F$+$i(B
+ Apache $B$r(B kill $B$7$F:F5/F0$7$^$9!#(B
+ </p>
+
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a id="usage" name="usage">suEXEC $B$N;HMQ(B</a></h3>
+
+ <p align="left"><strong>$B2>A[%[%9%H(B:</strong><br />
+ suEXEC wrapper $B$N;H$$J}$H$7$F!"(B
+ <a href="mod/core.html#virtualhost">$B2>A[%[%9%H(B</a>$B@_Dj$G$N(B
+ <a href="mod/core.html#user">User</a> $B%G%#%l%/%F%#%V$H(B
+ <a href="mod/core.html#group">Group</a>
+ $B%G%#%l%/%F%#%V$rDL$7$?$b$N$,$"$j$^$9!#(B
+ $B$3$l$i$N%G%#%l%/%F%#%V$r%a%$%s%5!<%P$N%f!<%6(B ID
+ $B$H0[$J$k$b$N$K$9$k$H!"(BCGI $B%j%=!<%9$X$N$9$Y$F$N%j%/%(%9%H$O!"$=$N(B
+ <code>&lt;VirtualHost&gt;</code> $B$G;XDj$5$l$?(B <em>User</em> $B$H(B
+ <em>Group</em> $B$H$7$F<B9T$5$l$^$9!#(B<code>&lt;VirtualHost&gt;</code>
+ $B$G$=$l$i$N%G%#%l%/%F%#%V$N$I$A$i$+!"$^$?$ON>J}$,;XDj$5$l$F$$$J$$>l9g!"(B
+ $B%a%$%s%5!<%P$N%f!<%6(B ID $B$,A[Dj$5$l$^$9!#(B</p>
+
+ <p><strong>$B%f!<%6%G%#%l%/%H%j(B:</strong><br />
+ suEXEC wrapper $B$O!"%j%/%(%9%H@h$N%f!<%6$H$7$F(B CGI
+ $B$r<B9T$9$k$?$a$K$b;H$($^$9!#$3$l$O4|BT$9$k<B9T8"8B$N%f!<%6(B ID
+ $B$NA0$K!"(B"<strong><code>~</code></strong>"
+ $BJ8;z$rCV$/$3$H$G<B8=$5$l$^$9!#(B
+ $B$3$N5!G=$rF0:n$5$;$k$?$a$KI,MW$J$3$H$O!"(BCGI
+ $B$r$=$N%f!<%6$G<B9T$G$-$k$3$H!"$=$N%9%/%j%W%H$,>e5-$N(B<a
+ href="#model">$B%;%-%e%j%F%#8!::(B</a>$B$r%Q%9$G$-$k$3$H$G$9!#(B
+ </p>
+
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a id="debug" name="debug">suEXEC $B$N%G%P%C%0(B</a></h3>
+
+ <p align="left">suEXEC wrapper $B$O!">e5-$G=R$Y$?(B --suexec-logfile
+ $B%*%W%7%g%s$G;XDj$5$l$?%U%!%$%k$K%m%0>pJs$r5-O?$7$^$9!#(B
+ wrapper $B$rE,@Z$K@_Dj!"%$%s%9%H!<%k$G$-$F$$$k$H;W$&>l9g!"(B
+ $B$I$3$GLB$C$F$$$k$+8+$h$&$H$9$k$J$i$3$N%m%0$H%5!<%P$N(B
+ $B%(%i!<%m%0$r8+$k$H$h$$$G$7$g$&!#(B</p>
+
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+
+ <h3><a id="jabberwock"
+ name="jabberwock">$B$H$+$2$KCm0U(B: $B7Y9p$H;vNc(B</a></h3>
+
+ <p align="left"><strong>$BCm0U(B!</strong>
+ $B$3$N>O$O40A4$G$O$"$j$^$;$s!#$3$N>O$N:G?72~D{HG$K$D$$$F$O!"(B
+ Apache $B%0%k!<%W$N(B<a href="http://www.apache.org/docs/suexec.html">
+ $B%*%s%i%$%s%I%-%e%a%s%H(B</a>$BHG$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+
+ <p align="left">$B%5!<%P$N@_Dj$K@)8B$r$b$&$1$k(B wrapper $B$K$D$$$F!"(B
+ $B$$$/$D$+6=L#?<$$E@$,$"$j$^$9!#(BsuEXEC $B$K4X$9$k(B "$B%P%0(B"
+ $B$rJs9p$9$kA0$K$3$l$i$r3NG'$7$F$/$@$5$$!#(B</p>
+
+ <ul>
+ <li><strong>suEXEC $B$N6=L#?<$$E@(B</strong></li>
+
+ <li>$B3,AX9=B$$N@)8B(B
+
+
<blockquote>
- $B%;%-%e%j%F%#$H8zN($NM}M3$+$i!"(BsuEXEC $B$NA4$F$N%j%/%(%9%H$O(B
- $B2>A[%[%9%H$X$N%j%/%(%9%H$K$*$1$k:G>e0L$N%I%-%e%a%s%H%k!<%HFb$+!"(B
- $B%f!<%6%G%#%l%/%H%j$X$N%j%/%(%9%H$K$*$1$k8D!9$N%f!<%6$N:G>e0L$N(B
- $B%I%-%e%a%s%H%k!<%HFb$K;D$i$J$1$l$P$J$j$^$;$s!#(B
- $BNc$($P!";M$D$N2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B
- $B2>A[%[%9%H$N(B suEXEC $B$KM-Mx$J$h$&$K!"(B
- $B%a%$%s$N(B Apache $B%I%-%e%a%s%H3,AX$N30B&$K(B
- $BA4$F$N2>A[%[%9%H$N%I%-%e%a%s%H%k!<%H$r9=C[$9$kI,MW$,$"$j$^$9!#(B
- ($BNc$O8eF|5-:\(B)
+ $B%;%-%e%j%F%#$H8zN($NM}M3$+$i!"(BsuEXEC $B$NA4$F$N%j%/%(%9%H$O(B
+ $B2>A[%[%9%H$X$N%j%/%(%9%H$K$*$1$k:G>e0L$N%I%-%e%a%s%H%k!<%HFb$+!"(B
+ $B%f!<%6%G%#%l%/%H%j$X$N%j%/%(%9%H$K$*$1$k8D!9$N%f!<%6$N:G>e0L$N(B
+ $B%I%-%e%a%s%H%k!<%HFb$K;D$i$J$1$l$P$J$j$^$;$s!#(B
+ $BNc$($P!";M$D$N2>A[%[%9%H$r@_Dj$7$F$$$k>l9g!"(B
+ $B2>A[%[%9%H$N(B suEXEC $B$KM-Mx$J$h$&$K!"%a%$%s$N(B Apache
+ $B%I%-%e%a%s%H3,AX$N30B&$KA4$F$N2>A[%[%9%H$N%I%-%e%a%s%H%k!<%H$r(B
+ $B9=C[$9$kI,MW$,$"$j$^$9!#(B($BNc$O8eF|5-:\(B)
</blockquote>
- </li>
- <li>suEXEC $B$N(B PATH $B4D6-JQ?t(B
+ </li>
+
+ <li>suEXEC $B$N(B PATH $B4D6-JQ?t(B
+
+
<blockquote>
- $B$3$l$rJQ99$9$k$N$O4m81$G$9!#$3$N;XDj$K4^$^$l$k3F%Q%9$,(B
- $B?.Mj$G$-$k%G%#%l%/%H%j$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B
- $B@$3&$+$i$N%"%/%;%9$K$h$j!"C/$+$,%[%9%H>e$G%H%m%$$NLZGO(B
- $B$r<B9T$G$-$k$h$&$K$O$7$?$/$J$$$G$7$g$&!#(B
+ $B$3$l$rJQ99$9$k$N$O4m81$G$9!#$3$N;XDj$K4^$^$l$k3F%Q%9$,(B
+ <strong>$B?.Mj$G$-$k(B</strong>
+ $B%G%#%l%/%H%j$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B
+ $B@$3&$+$i$N%"%/%;%9$K$h$j!"C/$+$,%[%9%H>e$G%H%m%$$NLZGO(B
+ $B$r<B9T$G$-$k$h$&$K$O$7$?$/$J$$$G$7$g$&!#(B
</blockquote>
- </li>
- <li>suEXEC $B%3!<%I$N2~B$(B
+ </li>
+
+ <li>suEXEC $B%3!<%I$N2~B$(B
+
+
<blockquote>
- $B7+$jJV$7$^$9$,!"2?$r$d$m$&$H$7$F$$$k$+GD0.$;$:$K$3$l$r$d$k$H(B
- <strong>$BBg$-$JLdBj(B</strong>$B$r0z$-5/$3$7$+$M$^$;$s!#(B
- $B2DG=$J8B$jHr$1$F$/$@$5$$!#(B
+ $B7+$jJV$7$^$9$,!"2?$r$d$m$&$H$7$F$$$k$+GD0.$;$:$K$3$l$r$d$k$H(B
+ <strong>$BBg$-$JLdBj(B</strong>$B$r0z$-5/$3$7$+$M$^$;$s!#(B
+ $B2DG=$J8B$jHr$1$F$/$@$5$$!#(B
</blockquote>
- </li>
-</ul>
-
-<p align="center">
-<strong><a href="suexec.html">$BL\<!$KLa$k(B</a></strong>
-</p>
+ </li>
+ </ul>
- <hr />
+ <p align="center"><strong><a
+ href="suexec.html">$BL\<!$KLa$k(B</a></strong></p>
+ <hr />
<h3 align="CENTER">Apache HTTP Server</h3>
<a href="./"><img src="images/index.gif" alt="Index" /></a>
-</body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/examples.html b/usr.sbin/httpd/htdocs/manual/vhosts/examples.html
index 98addf2ebbf..6147e5ffc05 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/examples.html
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/examples.html
@@ -399,7 +399,7 @@
which resolve to the names <samp>server.domain.tld</samp>,
<samp>www.otherdomain1.tld</samp> and
<samp>www.otherdomain2.tld</samp> respectively. The address
- <samp>111.22.33.44</samp> should we used for a couple of
+ <samp>111.22.33.44</samp> should be used for a couple of
name-based vhosts and the other addresses for IP-based
vhosts.
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html
index b32289163ff..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html
@@ -1,83 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache Server Virtual Host Support</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 1.3</h3>
- </div>
-
-
- <h1 align="CENTER">File Descriptor Limits</h1>
-
- <p>When using a large number of Virtual Hosts, Apache may run
- out of available file descriptors (sometimes called <cite>file
- handles</cite> if each Virtual Host specifies different log
- files. The total number of file descriptors used by Apache is
- one for each distinct error log file, one for every other log
- file directive, plus 10-20 for internal use. Unix operating
- systems limit the number of file descriptors that may be used
- by a process; the limit is typically 64, and may usually be
- increased up to a large hard-limit.</p>
-
- <p>Although Apache attempts to increase the limit as required,
- this may not work if:</p>
-
- <ol>
- <li>Your system does not provide the setrlimit() system
- call.</li>
-
- <li>The setrlimit(RLIMIT_NOFILE) call does not function on
- your system (such as Solaris 2.3)</li>
-
- <li>The number of file descriptors required exceeds the hard
- limit.</li>
-
- <li>Your system imposes other limits on file descriptors,
- such as a limit on stdio streams only using file descriptors
- below 256. (Solaris 2)</li>
- </ol>
- In the event of problems you can:
-
- <ul>
- <li>Reduce the number of log files; don't specify log files
- in the VirtualHost sections, but only log to the main log
- files.</li>
-
- <li>
- If you system falls into 1 or 2 (above), then increase the
- file descriptor limit before starting Apache, using a
- script like
-
- <blockquote>
- <code>#!/bin/sh<br />
- ulimit -S -n 100<br />
- exec httpd</code>
- </blockquote>
- </li>
- </ul>
-
- <p>Please see the <a
- href="../misc/descriptors.html">Descriptors and Apache</a>
- document containing further details about file descriptor
- problems and how they can be solved on your operating
- system.</p>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.en b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.en
index b32289163ff..af389d6f773 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.en
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.en
@@ -81,3 +81,86 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache Server Virtual Host Support</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">File Descriptor Limits</h1>
+
+ <p>When using a large number of Virtual Hosts, Apache may run
+ out of available file descriptors (sometimes called <cite>file
+ handles</cite> if each Virtual Host specifies different log
+ files. The total number of file descriptors used by Apache is
+ one for each distinct error log file, one for every other log
+ file directive, plus 10-20 for internal use. Unix operating
+ systems limit the number of file descriptors that may be used
+ by a process; the limit is typically 64, and may usually be
+ increased up to a large hard-limit.</p>
+
+ <p>Although Apache attempts to increase the limit as required,
+ this may not work if:</p>
+
+ <ol>
+ <li>Your system does not provide the setrlimit() system
+ call.</li>
+
+ <li>The setrlimit(RLIMIT_NOFILE) call does not function on
+ your system (such as Solaris 2.3)</li>
+
+ <li>The number of file descriptors required exceeds the hard
+ limit.</li>
+
+ <li>Your system imposes other limits on file descriptors,
+ such as a limit on stdio streams only using file descriptors
+ below 256. (Solaris 2)</li>
+ </ol>
+ In the event of problems you can:
+
+ <ul>
+ <li>Reduce the number of log files; don't specify log files
+ in the VirtualHost sections, but only log to the main log
+ files.</li>
+
+ <li>
+ If you system falls into 1 or 2 (above), then increase the
+ file descriptor limit before starting Apache, using a
+ script like
+
+ <blockquote>
+ <code>#!/bin/sh<br />
+ ulimit -S -n 100<br />
+ exec httpd</code>
+ </blockquote>
+ </li>
+ </ul>
+
+ <p>Please see the <a
+ href="../misc/descriptors.html">Descriptors and Apache</a>
+ document containing further details about file descriptor
+ problems and how they can be solved on your operating
+ system.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.html b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.html
index b548c1606b8..248446d0044 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.html
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.html
@@ -85,3 +85,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Apache Server Virtual Host Support</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="CENTER">File Descriptor Limits</h1>
+
+ <p>When using a large number of Virtual Hosts, Apache may run
+ out of available file descriptors (sometimes called <cite>file
+ handles</cite> if each Virtual Host specifies different log
+ files. The total number of file descriptors used by Apache is
+ one for each distinct error log file, one for every other log
+ file directive, plus 10-20 for internal use. Unix operating
+ systems limit the number of file descriptors that may be used
+ by a process; the limit is typically 64, and may usually be
+ increased up to a large hard-limit.</p>
+
+ <p>Although Apache attempts to increase the limit as required,
+ this may not work if:</p>
+
+ <ol>
+ <li>Your system does not provide the setrlimit() system
+ call.</li>
+
+ <li>The setrlimit(RLIMIT_NOFILE) call does not function on
+ your system (such as Solaris 2.3)</li>
+
+ <li>The number of file descriptors required exceeds the hard
+ limit.</li>
+
+ <li>Your system imposes other limits on file descriptors,
+ such as a limit on stdio streams only using file descriptors
+ below 256. (Solaris 2)</li>
+ </ol>
+ In the event of problems you can:
+
+ <ul>
+ <li>Reduce the number of log files; don't specify log files
+ in the VirtualHost sections, but only log to the main log
+ files.</li>
+
+ <li>
+ If you system falls into 1 or 2 (above), then increase the
+ file descriptor limit before starting Apache, using a
+ script like
+
+ <blockquote>
+ <code>#!/bin/sh<br />
+ ulimit -S -n 100<br />
+ exec httpd</code>
+ </blockquote>
+ </li>
+ </ul>
+
+ <p>Please see the <a
+ href="../misc/descriptors.html">Descriptors and Apache</a>
+ document containing further details about file descriptor
+ problems and how they can be solved on your operating
+ system.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis
index 8896b8f1919..c37b52d74e3 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/fd-limits.html.ja.jis
@@ -80,3 +80,85 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache $B%5!<%P$N%P!<%A%c%k%[%9%H$N%5%]!<%H(B</title>
+ <!-- English revision: 1.4 -->
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server Version 1.3</h3>
+ </div>
+
+
+ <h1 align="center">$B%U%!%$%k5-=R;R$N8B3&(B</h1>
+
+ <p>$B$?$/$5$s$N%P!<%A%c%k%[%9%H$r1?MQ$9$k>l9g!"$b$7!"(B
+ $B3F%P!<%A%c%k%[%9%H$4$H$K0[$J$k%m%0%U%!%$%k$,;XDj$7$F$"$k$H!"(B
+ Apache $B$,%U%!%$%k5-=R;R(B (<cite>$B%U%!%$%k%O%s%I%k(B</cite>$B$H$b8F$P$l$^$9(B)
+ $B$r;H$$@Z$C$F$7$^$&$3$H$,$"$j$^$9!#(BApache $B$,;HMQ$9$k%U%!%$%k(B
+ $B5-=R;R$N?t$O!"3F%(%i!<%m%0%U%!%$%k$K$D$-(B 1 $B$D!"B>$N%m%0%U%!%$%k$N(B
+ $B%G%#%l%/%F%#%V$K$D$-(B 1 $B$D!"$5$i$KFbIt$G;HMQ$9$k(B 10 $B$+$i(B 20$B!"(B
+ $B$N9g7W$K$J$j$^$9!#(BUnix $B%*%Z%l!<%F%#%s%0%7%9%F%`$G$O%W%m%;%9$4$H$K(B
+ $B;HMQ2DG=$J%U%!%$%k5-=R;R$N?t$r@)8B$7$F$$$^$9!#$?$$$F$$$N>l9g$O(B 64 $B$G!"(B
+ $BIaDL$OBg$-$JCM$N%O!<%I%j%_%C%H$^$GA}$d$9$3$H$,$G$-$^$9!#(B</p>
+
+ <p>Apache $B$OI,MW$K1~$8$F>e8B$r3HBg$7$h$&$H;n$_$^$9$,!"(B
+ $B0J2<$N$h$&$J>l9g$K$O$&$^$/$$$+$J$$$+$b$7$l$^$;$s!#(B</p>
+
+ <ol>
+ <li>$BMxMQ$7$F$$$k%7%9%F%`$G(B setrlimit()
+ $B%7%9%F%`%3!<%k$,Ds6!$5$l$F$$$J$$!#(B</li>
+
+ <li>$B%7%9%F%`>e$G(B setrlimit(RLIMIT_NOFILE) $B$,F0:n$7$J$$(B
+ ($B$?$H$($P(B Solaris 2.3 $B$N$h$&$K(B)$B!#(B</li>
+
+ <li>$BMW5a$5$l$k%U%!%$%k5-=R;R$N?t$,(B
+ $B%O!<%I%j%_%C%H$rD6$($F$7$^$&!#(B</li>
+
+ <li>$B%7%9%F%`$K%U%!%$%k5-=R;R$K4X$7$FJL$N@)8B$,B8:_$7$F$7$^$C$F$$$k!#(B
+ $B$?$H$($P!"(Bstdio $B%9%H%j!<%`$G$O%U%!%$%k5-=R;R$r(B 256 $B0J>e;H$($J$$(B
+ (Solaris 2)$B!"$J$I!#(B</li>
+ </ol>
+ $BLdBj$,H/@8$7$?;~$K<h$jF@$kBP=hJ}K!$O<!$N$H$*$j(B:
+
+ <ul>
+ <li>$B%m%0%U%!%$%k$N?t$r8:$i$9!#(BVirtualHost
+ $B%;%/%7%g%s$G%m%0%U%!%$%k$r;XDj$;$:!"(B
+ $B%a%$%s$N%m%0%U%!%$%k$K$N$_5-O?$9$k!#(B</li>
+
+ <li>
+ $B$b$7!"A0=R$N(B 1 $B$^$?$O(B 2 $B$N>l9g$G$"$l$P!"(B
+ Apache $B$r5/F0$9$kA0$K%U%!%$%k5-=R;R$rA}$d$7$^$9!#(B
+ $B$?$H$($P<!$N$h$&$J%9%/%j%W%H$r;H$$$^$9!#(B
+
+ <blockquote>
+ <code>#!/bin/sh <br />
+ ulimit -S -n 100 <br />
+ exec httpd</code>
+ </blockquote>
+ </li>
+ </ul>
+
+ <p>$B%U%!%$%k5-=R;R$NLdBj$K$D$$$F$N>\:Y$d!"(B
+ $B%*%Z%l!<%F%#%s%0%7%9%F%`$4$H$N2r7hJ}K!$K$D$$$F$O!V(B<a
+ href="../misc/descriptors.html">$B%U%!%$%k5-=R;R$H(B
+ Apache</a>$B!W$NJ8=q$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
+ <a href="./"><img src="../images/index.gif" alt="Index" /></a>
+ <a href="../"><img src="../images/home.gif" alt="Home" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/index.html.ja.jis b/usr.sbin/httpd/htdocs/manual/vhosts/index.html.ja.jis
index f3f38097ee8..db1a0495703 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/index.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/index.html.ja.jis
@@ -1,77 +1,92 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</title>
-<!-- English revision: 1.7 -->
-</head>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</title>
+ <!-- English revision: 1.8 -->
+ </head>
+
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
-<h1 align="center">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</h1>
-
-<p><cite>$B%P!<%A%c%k%[%9%H(B</cite>$B$H$$$&MQ8l$O!"(B1 $BBf$N%^%7%s>e$G(B
-$B0l$D0J>e$N%5!<%P$r!"$=$l$>$lJL$N0c$&%[%9%HL>$G8+$;$k1?MQJ}K!$N$3$H$r;X$7$^$9!#(B
-$B$?$H$($P!"0l$D$N%5!<%P$r6&M-$9$kJ#?t$N2q<R$,!"(B
-$B%f!<%6$KM>7W$J%Q%9L>$rMW5a$;$:$K!"(B
-<samp>www.company1.com</samp> $B$d(B <samp>www.company2.com</samp>
-$B$H$$$C$?$=$l$>$l$K8GM-$N%I%a%$%sL>$G%&%'%V%5!<%P$K%"%/%;%9$G$-$k$h$&$K$7$?$$!"(B
-$B$H$$$C$?$3$H$O$7$P$7$P$"$j$^$9!#(B</p>
-
-<p>Apache $B$O!"FC$K<j$rF~$l$J$$>uBV$G(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r(B
-$B%5%]!<%H$7$?:G=i$N%5!<%P$N0l$D$G$9!#%P!<%8%g%s(B 1.1 $B0J9_$N(B Apache $B$G$O!"(B
-IP $B%Y!<%9$H%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$NN>J}$r%5%]!<%H$7$F$$$^$9!#(B
-$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$O!"%[%9%H%Y!<%9$"$k$$$OHs(B IP $B%Y!<%9$N(B
-$B%P!<%A%c%k%[%9%H$H8F$P$l$k$3$H$b$"$j$^$9!#(B</p>
-
-<p>$B0J2<$N%Z!<%8$G$O!"(BApache $B%P!<%8%g%s(B 1.3 $B0J9_$G$N%P!<%A%c%k%[%9%H$N(B
-$B%5%]!<%H$K$D$$$F$N>\:Y$r@bL@$7$^$9!#(B</p>
-
-<hr>
-
-<h2>$B%P!<%A%c%k%[%9%H$N%5%]!<%H(B</h2>
-
-<ul>
-<li><a href="name-based.html">$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</a>
-<li><a href="ip-based.html">IP $B%Y!<%9$N%P!<%A%c%k%[%9%H(B</a>
-<li><a href="examples.html">$B%P!<%A%c%k%[%9%H$N0lHLE*$J@_DjNc(B</a>
-<li><a href="details.html">$B%P!<%A%c%k%[%9%H$N%^%C%A%s%0$K$D$$$F$N>\:Y(B</a>
-<li><a href="fd-limits.html">$B%U%!%$%k5-=R;R$N8B3&(B</a>
-<li><a href="mass.html">$BBgNL$N%P!<%A%c%k%[%9%H$NF0E*$J@_Dj(B</a>
-</ul>
-
-<h2>$B@_Dj%G%#%l%/%F%#%V(B</h2>
-
-<ul>
-<li><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a>
-<li><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a>
-<li><a href="../mod/core.html#servername">ServerName</a>
-<li><a href="../mod/core.html#serveralias">ServerAlias</a>
-<li><a href="../mod/core.html#serverpath">ServerPath</a>
-</ul>
-
-<p>$B%P!<%A%c%k%[%9%H$N@_Dj$N%G%P%C%0$r$9$k$K$O(B
-Apache $B$N%3%^%s%I%i%$%s%9%$%C%A(B <code>-S</code> $B$,JXMx$G$9!#(B
-Apache $B$,@_Dj%U%!%$%k$r$I$&2r@O$7$?$+$K$D$$$F=PNO$7$^$9!#(B
-IP $B%"%I%l%9$H%5!<%PL>$rCm0U?<$/D4$Y$l$P!"(B
-$B@_Dj$N4V0c$$$r8+$D$1$k=u$1$K$J$k$G$7$g$&!#(B</p>
+
+ <h1 align="center">Apache $B%P!<%A%c%k%[%9%H@bL@=q(B</h1>
+
+ <p><cite>$B%P!<%A%c%k%[%9%H(B</cite>$B$H$$$&MQ8l$O!"(B1 $BBf$N%^%7%s>e$G(B
+ $B0l$D0J>e$N%5!<%P$r!"(B
+ $B$=$l$>$lJL$N0c$&%[%9%HL>$G8+$;$k1?MQJ}K!$N$3$H$r;X$7$^$9!#(B
+ $B$?$H$($P!"0l$D$N%5!<%P$r6&M-$9$kJ#?t$N2q<R$,!"(B
+ $B%f!<%6$KM>7W$J%Q%9L>$rMW5a$;$:$K!"(B<samp>www.company1.com</samp>
+ $B$d(B <samp>www.company2.com</samp> $B$H$$$C$?$=$l$>$l$K8GM-$N(B
+ $B%I%a%$%sL>$G%&%'%V%5!<%P$K%"%/%;%9$G$-$k$h$&$K$7$?$$!"(B
+ $B$H$$$C$?$3$H$O$7$P$7$P$"$j$^$9!#(B</p>
+
+ <p>Apache $B$O!"FC$K<j$rF~$l$J$$>uBV$G(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H(B
+ $B$r%5%]!<%H$7$?:G=i$N%5!<%P$N0l$D$G$9!#%P!<%8%g%s(B 1.1 $B0J9_$N(B Apache
+ $B$G$O!"(BIP $B%Y!<%9$H%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$NN>J}$r%5%]!<%H(B
+ $B$7$F$$$^$9!#%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$O!"%[%9%H%Y!<%9$"$k$$$OHs(B
+ IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$H8F$P$l$k$3$H$b$"$j$^$9!#(B</p>
+
+ <p>$B0J2<$N%Z!<%8$G$O!"(BApache $B%P!<%8%g%s(B 1.3
+ $B0J9_$G$N%P!<%A%c%k%[%9%H$N%5%]!<%H$K$D$$$F$N>\:Y$r@bL@$7$^$9!#(B</p>
<hr />
+ <h2>$B%P!<%A%c%k%[%9%H$N%5%]!<%H(B</h2>
+
+ <ul>
+ <li><a
+ href="name-based.html">$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</a></li>
+
+ <li><a href="ip-based.html">IP $B%Y!<%9$N%P!<%A%c%k%[%9%H(B</a></li>
+
+ <li><a
+ href="examples.html">$B%P!<%A%c%k%[%9%H$N0lHLE*$J@_DjNc(B</a></li>
+
+ <li><a
+ href="details.html">$B%P!<%A%c%k%[%9%H$N%^%C%A%s%0$K$D$$$F$N>\:Y(B</a></li>
+
+ <li><a href="fd-limits.html">$B%U%!%$%k5-=R;R$N8B3&(B</a></li>
+
+ <li><a
+ href="mass.html">$BBgNL$N%P!<%A%c%k%[%9%H$NF0E*$J@_Dj(B</a></li>
+ </ul>
+
+ <h2>$B@_Dj%G%#%l%/%F%#%V(B</h2>
+
+ <ul>
+ <li><a
+ href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></li>
+
+ <li><a
+ href="../mod/core.html#namevirtualhost">NameVirtualHost</a></li>
+
+ <li><a href="../mod/core.html#servername">ServerName</a></li>
+
+ <li><a href="../mod/core.html#serveralias">ServerAlias</a></li>
+
+ <li><a href="../mod/core.html#serverpath">ServerPath</a></li>
+ </ul>
+
+
+ <p>$B%P!<%A%c%k%[%9%H$N@_Dj$N%G%P%C%0$r$9$k$K$O(B
+ Apache $B$N%3%^%s%I%i%$%s%9%$%C%A(B <code>-S</code> $B$,JXMx$G$9!#(B
+ Apache $B$,@_Dj%U%!%$%k$r$I$&2r@O$7$?$+$K$D$$$F=PNO$7$^$9!#(B
+ IP $B%"%I%l%9$H%5!<%PL>$rCm0U?<$/D4$Y$l$P!"(B
+ $B@_Dj$N4V0c$$$r8+$D$1$k=u$1$K$J$k$G$7$g$&!#(B</p>
+ <hr />
+
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
-</body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis
index 8b41b008e0b..3eaa34fbe78 100644
--- a/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/vhosts/name-based.html.ja.jis
@@ -1,165 +1,200 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML><HEAD>
-<!-- English revision: 1.15 -->
-<TITLE>Apache $B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B</TITLE>
-</HEAD>
-
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+ <title>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.18 -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server Version 1.3</h3>
</div>
-<H1 ALIGN="CENTER">Apache $B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N%5%]!<%H(B</H1>
-<STRONG>$B;29M(B:</STRONG>
-<A HREF="ip-based.html">IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$N%5%]!<%H(B</A>
+ <p>$B$3$NJ8=q$G$OL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r$I$s$J$H$-!"(B
+ $B$^$?$I$&$d$C$F;H$&$N$+$H$$$&$3$H$r@bL@$7$^$9!#(B</p>
-<HR>
+ <ul>
+ <li><a href="#namevip">$BL>A0%Y!<%9(B $B$H(B IP-based
+ $B$N%P!<%A%c%k%[%9%H$NHf3S(B</a></li>
-<H2>$B%M!<%`%Y!<%9$H(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$NHf3S(B</H2>
+ <li><a href="#using">$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k(B</a></li>
-<P>$B=i4|$N%P!<%8%g%s$N(B HTTP $B$G$O(B ($BB>$NB?$/$N%W%m%H%3%k!"Nc$($P(B FTP $B$HF1MM(B)
-$B0l$D$N%5!<%P>e$G$N%P!<%A%c%k%[%9%H$4$H$K0[$J$C$?(B IP $B%"%I%l%9$,I,MW$G$7$?!#(B
-$B$$$/$D$+$N%W%i%C%H%U%)!<%`$G$O!"(B
-$B$3$l$,<B9T2DG=$J%P!<%A%c%k%[%9%H$N?t$r8BDj$7$F$7$^$&$3$H$K$J$j$^$7$?!#(B
-$B$^$?!"(BIP $B%"%I%l%9$N?t$K$O8B$j$,$"$k$H$$$&$3$H$K$D$$$F$N7|G0$+$i!"(B
-$B%l%8%9%H%i(B (ARIN, RIPE, APNIC) $B$O%P!<%A%c%k%[%9%H$4$H$K(B
-IP $B$r3d$jEv$F$k$h$&$J$3$H$OHr$1$k$h$&6/$/MW@A$7$F$$$^$9!#(B</P>
+ <li><a href="#compat">$B8E$$%V%i%&%6$H$N8_49@-(B</a></li>
+ </ul>
-<P><CODE>HTTP/1.1</CODE> $B%W%m%H%3%k$d!"(B
-<CODE>HTTP/1.0</CODE> $B$G$N0lHLE*$J3HD%$K$O!"(B
-$B$I$NL>A0$G%j%/%(%9%H$5$l$F$$$k$N$+$r%5!<%P$,H=JL$9$kJ}K!$,$"$j$^$9!#(B
-Apache 1.1 $B0J9_$G$O@N$+$i$N!V%[%9%HL>$4$H$K(B IP $B%"%I%l%9!W$H$$$&J}K!$K2C$($F!"(B
-$B$3$N%"%W%m!<%A$b%5%]!<%H$7$F$$$^$9!#(B</P>
-
-<P>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$NMxE@$H$7$F$O!"(B
-$B;v<B>eL58B$N?t$N%5!<%P$r1?MQ$G$-$k$H$$$&$3$H!"@_Dj$7MxMQ$9$k$N$,4JC1$J$3$H!"(B
-$BDI2C$N%O!<%I%&%'%"$d%=%U%H%&%'%"$,ITMW$J$3$H!"$H$$$&$N$,$"$j$^$9!#(B
-
-$B$b$C$H$bBg$-$JLdBjE@$H$7$F$O!"(B
-$B%/%i%$%"%s%H$O$3$N%W%m%H%3%k$r%5%]!<%H$7$J$1$l$P$$$1$J$$$H$$$&$3$H$G$9!#(B
-$B$[$H$s$I$9$Y$F$N%V%i%&%6$G%5%]!<%H$5$l$F$$$^$9$,!"(B
-$B%5%]!<%H$7$F$$$J$$%V%i%&%6$b>/$J$$$J$,$i$b0MA3$H$7$FB8:_$7$F$$$^$9!#(B
-$B$=$N$?$a$KLdBj$,H/@8$9$k$3$H$,$"$j$^$9!#$3$l$KBP$9$k2r7hJ}K!$K(B
-$B$J$jF@$k$b$N$O8e=R$7$^$9!#(B</P>
-
-<H2>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k(B</H2>
-
-<P>$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k$N$O$H$F$b4JC1$G$9!#(B
-$B8+$?L\$K$O=>Mh$N(B IP $B%Y!<%9$NJ}K!$K;w$F$$$^$9!#(B
-
-IP $B%Y!<%9$H%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N@_Dj$N=EMW$J0c$$$O!"(B
-<A HREF="../mod/core.html#namevirtualhost"><CODE>NameVirtualHost</CODE></A>
-$B%G%#%l%/%F%#%V$G!"%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$N%?!<%2%C%H$H$7$F;H$o$l$k(B
-IP $B%"%I%l%9$r;XDj$9$k$H$$$&$3$H$G$9!#(B</P>
-
-<P>$B$?$H$($P!"(B
-<SAMP>www.domain.tld</SAMP> $B$H(B <SAMP>www.otherdomain.tld</SAMP>
-$B$NN>J}$,(B <SAMP>111.22.33.44</SAMP> $B$H$$$&(B IP $B%"%I%l%9$r;X$7$F$$$k$H$7$^$7$g$&!#(B
-
-$B$=$N$h$&$J>l9g$O!"(BApache $B$N@_Dj%U%!%$%k$N0l$D(B
-($BDL>o$O(B <CODE>httpd.conf</CODE> $B$+(B <CODE>srm.conf</CODE> $B$N$I$A$i$+(B) $B$K(B
-$B0J2<$N$h$&$J%3!<%I$rDI2C$9$k$@$1$G$9(B:</P>
-
-<PRE>
- NameVirtualHost 111.22.33.44
+ <p>$B;29M(B: <a href="examples.html">$BI8=`E*$J%;%C%H%"%C%W$G$N(B
+ $B%P!<%A%c%k%[%9%H$NNc(B</a>$B!"(B <a href="ip-based.html">IP $B%Y!<%9$N(B
+ $B%P!<%A%c%k%[%9%H$N%5%]!<%H(B</a>$B!"(B <a href="details.html">
+ $B%P!<%A%c%k%[%9%H$N%^%C%A%s%0$N6qBNE*$J>\:Y(B</a> $B$H(B <a
+ href="mass.html">$BBgNL$N%P!<%A%c%k%[%9%H$rF0E*$K@_Dj$9$k(B</a>
+ </p>
+ <hr />
- &lt;VirtualHost 111.22.33.44&gt;
+ <h2><a id="namevip" name="namevip"
+ >$BL>A0%Y!<%9$H(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$NHf3S(B</a></h2>
+
+ <p>$B=i4|$N%P!<%8%g%s$N(B HTTP $B$G$O(B ($BB>$NB?$/$N%W%m%H%3%k!"Nc$($P(B FTP
+ $B$HF1MM(B) $B0l$D$N%5!<%P>e$G$N%P!<%A%c%k%[%9%H$4$H$K0[$J$C$?(B IP
+ $B%"%I%l%9$,I,MW$G$7$?!#$$$/$D$+$N%W%i%C%H%U%)!<%`$G$O!"$3$N$3$H$,(B
+ $B<B9T2DG=$J%P!<%A%c%k%[%9%H$N?t$r8BDj$7$F$7$^$&$3$H$K$J$j$^$7$?!#(B
+ $B$^$?!"(BIP $B%"%I%l%9$N?t$K$O8B$j$,$"$k$H$$$&$3$H$K$D$$$F$N7|G0$+$i!"(B
+ $B%l%8%9%H%i(B (ARIN, RIPE, APNIC) $B$O%P!<%A%c%k%[%9%H$4$H$K(B
+ IP $B$r3d$jEv$F$k$h$&$J$3$H$OHr$1$k$h$&6/$/MW@A$7$F$$$^$9!#(B</p>
+
+ <p>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$ODL>oC1=c$G!"$=$l$>$l$N%[%9%HL>$H(B
+ $B$=$l$KBP1~$9$k@53N$J(B IP $B%"%I%l%9$r(B DNS $B$G@_Dj$7!"0[$J$k(B
+ $B%[%9%HL>$r6hJL=PMh$k$h$&$K(B Apache HTTP $B%5!<%P$r@_Dj$9$k$@$1$G$9!#(B
+ $B$5$i$K!"L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$OITB-$9$k(B IP
+ $B%"%I%l%9$N<{MW$r4KOB$7$^$9!#$7$?$,$C$F!"(BIP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r(B
+ $BA*Br$9$Y$-FCDj$NM}M3$,$J$1$l$PL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$&$Y$-$G$9!#(B
+ IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r;HMQ$9$k$3$H$r9MN8$9$kM}M3$H$7$F!"(B</p>
+
+ <ul>
+ <li>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$KBP1~$7$F$$$J$$8E$$%/%i%$%"%s%H$,$"$k(B
+ $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$,F/$/$?$a$K$O!"%/%i%$%"%s%H$O(B
+ HTTP $B%[%9%H%X%C%@$rAw$C$F$3$J$1$l$P$J$j$^$;$s!#(B
+ $B$3$l$O(B HTTP/1.1 $B$N;EMM$GMW5a$5$l$F$$$F!"$9$Y$F$N8=BeE*$J(B
+ HTTP/1.0 $B%V%i%&%6$G$b3HD%$H$7$F<BAu$5$l$F$$$^$9!#(B
+ $B$H$F$b8E$$%/%i%$%"%s%H$r%5%]!<%H$7$D$D!"L>A0%Y!<%9$N(B
+ $B%P!<%A%c%k%[%9%H$r9T$$$?$$>l9g$O!"$3$NJ8=q$N:G8e$NJ}$K(B
+ $B=q$+$l$F$$$k2r7h:v$K$J$k$+$b$7$l$J$$J}K!$r8+$F$/$@$5$$!#(B</li>
+
+ <li>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$O(B SSL $B%W%m%H%3%k$NFCD'$K$h$j!"(B
+ SSL $B%;%-%e%"%5!<%P$K$O;H$($^$;$s!#(B</li>
+
+ <li>$B%*%Z%l!<%F%#%s%0%7%9%F%`$d%M%C%H%o!<%/AuCV$N$J$+$K$O!"(B
+ $BJL$N(B IP $B%"%I%l%9>e$G$J$$>l9g!"J#?t$N%[%9%H$rJL07$$$G$-$J$$$h$&$J(B
+ $BBS0h4IM}$NJ}K!$r<BAu$7$F$$$k$b$N$,$"$j$^$9!#(B</li>
+ </ul>
+
+ <h2><a id="using"
+ name="using">$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k(B</a></h2>
+
+ <table border="1">
+ <tr>
+ <td align="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
+ <br />
+ <a href="../mod/core.html#documentroot">DocumentRoot</a><br />
+ <a
+ href="../mod/core.html#namevirtualhost">NameVirtualHost</a><br />
+ <a href="../mod/core.html#serveralias">ServerAlias</a><br />
+ <a href="../mod/core.html#servername">ServerName</a><br />
+ <a href="../mod/core.html#serverpath">ServerPath</a><br />
+ <a href="../mod/core.html#virtualhost">VirtualHost</a><br />
+ </td>
+ </tr>
+ </table>
+
+ <p>$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$&$K$O!"$=$N%[%9%H$X$N(B
+ $B%j%/%(%9%H$r<u$1IU$1$k%5!<%P$N(B IP $B%"%I%l%9(B ($B$b$7$+$7$?$i%]!<%H$b(B)
+ $B$r;XDj$9$kI,MW$,$"$j$^$9!#(B
+ $B$3$l$O(B <a href="../mod/core.html#namevirtualhost">NameVirtualHost</a>
+ $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#DL>o!"(B<code>NameVirtualHost</code> $B$G(B
+ <code>*</code> $B$NB0@-$r;H$C$F%5!<%P$NA4$F$N(B IP $B%"%I%l%9$r;H$$$^$9!#(B
+ <code>NameVirtualHost</code> $B%G%#%l%/%F%#%V$G(B IP $B%"%I%l%9$r=q$$$F$b!"(B
+ $B<+F0E*$K%5!<%P$,$=$N(B IP $B%"%I%l%9$r%j%C%9%s$9$k$H$$$&$3$H$O$J$$$3$H$K(B
+ $BCm0U$7$F$/$@$5$$!#>\:Y$O(B <a href="../bind.html">Apache $B$N;H$&%"%I%l%9$H(B
+ $B%]!<%H$r@_Dj$9$k(B</a> $B$rFI$s$G$/$@$5$$!#$5$i$K!"$3$3$G;XDj$5$l$?(B
+ IP $B%"%I%l%9$OA4$F%5!<%P$N%M%C%H%o!<%/%$%s%?!<%U%'!<%9$H4XO"IU$1$i$l$F(B
+ $B$$$J$1$l$P$J$j$^$;$s!#(B</p>
+
+ <p>$B<!$O!"07$$$?$$$=$l$>$l$N%[%9%H$KBP$7$F(B <a
+ href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a> $B%V%m%C%/$r(B
+ $B:n@.$7$F$/$@$5$$!#(B<code>&lt;VirtualHost&gt</code> $B%G%#%l%/%F%#%V$N(B
+ $B0z?t$O(B <code>NameVirtualHost</code> $B%G%#%l%/%F%#%V$N0z?t$H(B
+ $BF1$8$K$7$F$/$@$5$$(B ($B$9$J$o$A!"(BIP $B%"%I%l%90l$D$dA4$F$N%"%I%l%9$N$?$a$N(B
+ <code>*</code>)$B!#$=$l$>$l$N(B <code>&lt;VirtualHost&gt</code> $B%G%#%l%/%F%#%V(B
+ $B$NCf$K$O!":GDc8B!"$I$N%[%9%H$,07$o$l$k$+$r<($9(B <a
+ href="../mod/core.html#servername">ServerName</a> $B%G%#%l%/%F%#%V$H!"(B
+ $B$=$N%[%9%HMQ$N%3%s%F%s%D$,%U%!%$%k%7%9%F%`>e$N$I$3$K$"$k$+$r<($9(B
+ <a href="../mod/core.html#documentroot">DocumentRoot</a> $B%G%#%l%/%F%#%V$r(B
+ $B=q$/I,MW$,$"$j$^$9!#(B</p>
+
+ <p>$B$?$H$($P!"(B<samp>www.domain.tld</samp> $B$H(B
+ <samp>www.otherdomain.tld</samp> $B$NN>J}$,(B 1$B$D$N(B IP
+ $B%"%I%l%9$r;X$7$F$$$k$H$7$^$7$g$&!#$=$N$h$&$J>l9g$O!"(B
+ <code>httpd.conf</code> $B$K0J2<$N$h$&$J%3!<%I$rDI2C$9$k$@$1$G$9(B</p>
+<pre>
+ NameVirtualHost *
+
+ &lt;VirtualHost *&gt;
ServerName www.domain.tld
DocumentRoot /www/domain
&lt;/VirtualHost&gt;
- &lt;VirtualHost 111.22.33.44&gt;
+ &lt;VirtualHost *&gt;
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
&lt;/VirtualHost&gt;
-</PRE>
-
-<P>$B$b$A$m$s!"%G%#%l%/%F%#%V$r(B
-<CODE>&lt;VirtualHost&gt;</CODE>
-$B%;%/%7%g%s$KDI2C$9$k$3$H$,$G$-$^$9(B ($B$9$k$Y$-$G$9(B) $B!#(B
-
-$B$3$l$rF0:n$9$k$?$a$KI,MW$J$3$H$O!"(B
-<SAMP>www.domain.tld</SAMP> $B$d(B <SAMP>www.otherdomain.tld</SAMP>
-$B$H$$$&L>A0$,(B IP $B%"%I%l%9(B <SAMP>111.22.33.44</SAMP>
-$B$r;X$7$F$$$k$+3NG'$9$k$H$$$&$3$H$@$1$G$9!#(B</P>
-
-<P>$BCm0U(B: <CODE>NameVirtualHost</CODE> $B%G%#%l%/%F%#%V$G(B
-IP $B%"%I%l%9$r;XDj$7$?>l9g!"$=$N(B IP $B%"%I%l%9$X$N%j%/%(%9%H$O!"(B
-$B>o$K$=$N%j%/%(%9%H$K%^%C%A$9$k(B &lt;VirtualHost&gt; $B$G$N$_=hM}$5$l$^$9!#(B
-$B$=$N(B IP $B%"%I%l%9$G$O!V%a%$%s%5!<%P!W$O(B<STRONG>$B7h$7$F(B</STRONG>$B8+$($^$;$s!#(B
-$B%P!<%A%c%k%[%9%H$r;H$&$N$G$"$l$P!V%a%$%s%5!<%P!W$rFHN)$7$?%5!<%P$H$7$F;H$&$N$O(B
-$B;_$a$k$Y$-$G$9!#$`$7$m!"$=$NItJ,$O$9$Y$F$N%P!<%A%c%k%[%9%H$G6&DL$J@_Dj%G%#%l(B
-$B%/%F%#%V$r5-=R$9$k$?$a$K;HMQ$7$F$/$@$5$$!#(B
-$B8@$$49$($k$H!"%5!<%P>e$G1?MQ$7$?$$(B<EM>$B$9$Y$F$N(B</EM>$B%5!<%P(B
-($B%[%9%HL>(B) $B$K$D$$$F(B &lt;VirtualHost&gt; $B%;%/%7%g%s$rDI2C$9$Y$-$G$9!#(B
-
-<P>Apache 1.3.13 $B0J9_$G$O!"(B
-
-<CODE>NameVirtualHost</CODE> $B$N(B IP $B%"%I%l%9$K%o%$%k%I%+!<%I(B <CODE>*</CODE>
-$B$r;XDj$G$-$^$9!#$3$N%o%$%k%I%+!<%I$O!"(B
-$B$h$j6qBNE*$J%P!<%A%c%k%[%9%H$N%G%#%l%/%F%#%V$G%+%P!<$5$l$F$$$J$$G$0U$N(B
-IP $B%"%I%l%9$K%^%C%A$7$^$9!#(B
-$B$3$l$O!"A0$b$C$F(B IP $B%"%I%l%9$rCN$k$3$H$N$G$-$J$$%5!<%P$r@_Dj$9$k:]$KLr(B
-$B$KN)$A$^$9!#$?$H$($P!"F0E*$K(B IP $B%"%I%l%9$,@_Dj$5$l$k>l9g$d!"F1$8@_Dj%U%!(B
-$B%$%k$r6&M-$9$kIi2YJ,;6$N$?$a$N%/%i%9%?$N0lIt$H$J$k>l9g$J$I$G$9!#(B</P>
-
-<P>$B$5$i$K!"J#?t$NL>A0$G%5!<%P%"%/%;%9$,$G$-$k$h$&$K$7$?$$$3$H$bB?$$$G$7$g$&!#(B
-$B$?$H$($P!"F1$8(B IP $B%"%I%l%9$r;X$9(B
-<CODE>domain.tld</CODE> $B$H(B <CODE>www2.domain.tld</CODE>
-$B$N$I$A$i$G$G$b%5!<%P$K%"%/%;%9$G$-$k$h$&$K$7$?$$>l9g$J$I$G$9!#(B
-$B$=$l$I$3$m$+!"(B<CODE>domain.tld</CODE> $B$N$I$s$J%"%I%l%9$G$G$b$=$N%5!<%P$K(B
-$B%"%/%;%9$G$-$k$h$&$K$7$?$$>l9g$,$"$k$+$b$7$l$^$;$s!#(B
-
-$B$3$N$h$&$J$3$H$O!"(B
-<A HREF="../mod/core.html#serveralias"><CODE>ServerAlias</CODE></A>
-$B%G%#%l%/%F%#%V$r(B &lt;VirtualHost&gt; $B%;%/%7%g%s$K5-=R$9$k$3$H$G<B8=$G$-$^$9!#(B
-$B$?$H$($P(B:</P>
-
-<PRE>
+</pre>
+
+ <p><code>NameVirtualHost</code> $B5Z$S(B
+ <code>&lt;VirtualHost&gt;</code> $B$N$I$A$i$N>l9g$b!"(B
+ * $B$NItJ,$K$OL@<(E*$K(B IP $B%"%I%l%9$r;XDj$9$k$3$H$,$G$-$^$9!#(B</p>
+
+ <p>$BJ#?t$NL>A0$G%5!<%P%"%/%;%9$,$G$-$k$h$&$K$7$?$$$3$H$bB?$$$G$7$g$&!#(B
+ $B$3$N$h$&$J$3$H$O!"(B<a href="../mod/core.html#serveralias"
+ ><code>ServerAlias</code></a> $B%G%#%l%/%F%#%V$r(B &lt;VirtualHost&gt;
+ $B%;%/%7%g%s$K5-=R$9$k$3$H$G<B8=$G$-$^$9!#(B
+ $BNc$($P$3$l$r:G=i$N(B &lt;VirtualHost&gt; $B%V%m%C%/$K=q$-2C$($k$H!"(B</p>
+<pre>
ServerAlias domain.tld *.domain.tld
-</PRE>
-
-<P><CODE>*</CODE> $B$d(B <CODE>?</CODE> $B$r%o%$%k%I%+!<%IJ8;z$H$7$F;HMQ$G$-$k$3$H$K(B
-$BCm0U$7$F$/$@$5$$!#(B</P>
-
-<P>$BIaDL$O%I%a%$%sL>$r>JN,$9$k$G$"$m$&%m!<%+%k$N%f!<%6$N$?$a$K(B
-<CODE>ServerAlias</CODE> $B$,I,MW$+$b$7$l$^$;$s!#(B
-
-$B$?$H$($P!"$b$7%m!<%+%k$N%f!<%6$,(B "www" $B$d(B "www.foobar" $B$H%?%$%W$9$k$N$K(B
-$B?F$7$s$G$$$k>l9g!"(B
-<CODE>ServerAlias www www.foobar</CODE> $B$rDI2C$9$kI,MW$,$"$k$G$7$g$&!#(B
-
-$B%/%i%$%"%s%H$,L>A0$N2r7h$K$I$N$h$&$J%I%a%$%sL>$r;H$C$?$N$+$r%5!<%P$,(B
-$BCN$k$3$H$OIT2DG=$G$9!#%/%i%$%"%s%H$O%j%/%(%9%H$K$=$N$h$&$J>pJs$r4^$a$J$$(B
-$B$+$i$G$9!#(B
-$BDL>o$O!"(B<CODE>ServerAlias</CODE> $B%G%#%l%/%F%#%V$OF1$8%P!<%A%c%k%[%9%H$KBP$7$F(B
-$B0[$J$C$?%[%9%HL>$r3d$jEv$F$kJ}K!$G$9!#(B</P>
-
-<H2>$B8E$$%V%i%&%6$H$N8_49@-(B</H2>
-
-<P>$B>e$G=q$$$?$h$&$K!"%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H$,@5$7$/F0:n$9$k(B
-$B$?$a$KI,MW$J>pJs$rAw$C$F$3$J$$%/%i%$%"%s%H$,0MA3$H$7$FB8:_$7$F$$$^$9!#(B
-$B$=$N$h$&$J%/%i%$%"%s%H$KBP$7$F$O!"3:Ev$9$k(B IP $B%"%I%l%9$K$D$$$F!"(B
-$B0lHV:G=i$K@_Dj$5$l$F$$$k%P!<%A%c%k%[%9%H(B
-(<CITE>$B%W%i%$%^%j(B</CITE>$B$N%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B)
-$B$+$i%Z!<%8$,Aw$jJV$5$l$^$9!#(B</P>
-
-<P><A HREF="../mod/core.html#serverpath"><CODE>ServerPath</CODE></A>
-$B%G%#%l%/%F%#%V$GBP=h$,2DG=$G$9!#$A$g$C$HIT3J9%$G$9$1$l$I$b!#(B</P>
-
-<P>$B@_DjNc(B:
-
-<PRE>
+</pre>
+
+ <p><code>domain.tld</code> $B%I%a%$%s$X$NA4$F$N%[%9%H$X$N%j%/%(%9%H$O(B
+ <code>www.domain.tld</code> $B$N%P!<%A%c%k%[%9%H$,=hM}$7$^$9!#(B
+ * $B$d(B ? $B$r%o%$%k%I%+!<%IJ8;z$H$7$F;HMQ$G$-$^$9!#(B
+ Of course,you can't just make up names and place them in <code>ServerName</code>
+ or <code>ServerAlias</code>.
+ $BBh0l$K(B DNS $B$N%[%9%HL>$H(B IP $B%"%I%l%9$r%5!<%P$K$"$o$;$FE,@Z$K@_Dj$9$k;v$,I,MW$G$9(B</p>
+
+ <p>$B:G8e$K!"(B<code>&lt;VirtualHost&gt;</code> $B%3%s%F%J$NCf$K(B
+ $BB>$N%G%#%l%/%F%#%V$r=q$/$3$H$G!"%P!<%A%c%k%[%9%H$N@_Dj$r:Y$+$/JQ99(B
+ $B$9$k$3$H$,$G$-$^$9!#$I$N%G%#%l%/%F%#%V$r=q$/$3$H$,$G$-$k$+$O!"(B
+ $B%G%#%l%/%F%#%V$N(B <a
+ href="../mod/directive-dist.html#context">$B%3%s%F%-%9%H(B</a> $B$r(B
+ $BD4$Y$F$/$@$5$$!#(B<em>$B<g%5!<%P%3%s%F%-%9%H(B</em>
+ (<code>&lt;VirtualHost&gt;</code> $B%3%s%F%J$N30(B) $B$N(B
+ $B@_DjMQ%G%#%l%/%F%#%V$O%P!<%A%c%k%[%9%H$G$N@_Dj$G>e=q$-$5$l$F$$$J$$(B
+ $B$H$-$N$_;HMQ$5$l$^$9!#(B</p>
+
+ <p>$B%j%/%(%9%H$,Mh$k$H!"%5!<%P$O$^$::G=i$K(B <code>NameVirtualHost</code>
+ $B$K%^%C%A$9$k(B IP $B%"%I%l%9$+$I$&$+$r%A%'%C%/$7$^$9!#%^%C%A$9$l$P(B
+ $B%^%C%A$7$?(B IP $B%"%I%l%9$N(B <code>&lt;VirtualHost&gt;</code>
+ $B$N$=$l$>$l$N%;%/%7%g%s$NCf$+$i(B <code>ServerName</code> $B$+(B
+ <code>ServerAlias</code> $B$KMW5a$5$l$?%[%9%HL>$,$"$k$+C5$7$^$9!#(B
+ $B8+$D$+$l$P$=$N%5!<%PMQ$N@_Dj$r;H$$$^$9!#%^%C%A$9$k%P!<%A%c%k%[%9%H(B
+ $B$,8+$D$+$i$J$1$l$P!"%^%C%A$7$?(B IP $B%"%I%l%9$N(B
+ <strong>$B%j%9%H$N:G=i$K$"$k%P!<%A%c%k%[%9%H(B</strong> $B$,;H$o$l$^$9!#(B</p>
+
+ <p>$B7k2L$H$7$F!"%j%9%H$N:G=i$N%P!<%A%c%k%[%9%H$,(B <em>$B%G%U%)%k%H(B</em> $B$N(B
+ $B%P!<%A%c%k%[%9%H$K$J$j$^$9!#(BIP $B%"%I%l%9$,(B <code>NameVirtualHost</code>
+ $B%G%#%l%/%F%#%V$K%^%C%A$7$?>l9g$O!"(B<em>$B%a%$%s$N%5!<%P(B</em> $B$N(B
+ <code>DocumentRoot</code> $B;H$o$l(B <strong>$B$^$;$s(B</strong>
+ $B$I$N%P!<%A%c%k%[%9%H$K$b%^%C%A$7$J$$%j%/%(%9%H$KBP$7$F!"(B
+ $BFCJL$J@_Dj$r$7$?$$$N$G$"$l$P!"@_Dj%U%!%$%kCf$N:G=i$N(B
+ <code>&lt;VirtualHost&gt;</code> $B$K$=$l$r5-=R$7$F$/$@$5$$!#(B</p>
+
+ <h2><a id="compat" name="compat">$B8E$$%V%i%&%6$H$N8_49@-(B</a></h2>
+
+ <p>$B>e$G=q$$$?$h$&$K!"L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$,@5$7$/F0:n$9$k(B
+ $B$?$a$KI,MW$J>pJs$rAw$C$F$3$J$$%/%i%$%"%s%H$,0MA3$H$7$FB8:_$7$F$$$^$9!#(B
+ $B$=$N$h$&$J%/%i%$%"%s%H$KBP$7$F$O!"3:Ev$9$k(B IP $B%"%I%l%9$K$D$$$F!"(B
+ $B0lHV:G=i$K@_Dj$5$l$F$$$k%P!<%A%c%k%[%9%H(B
+ (<cite>$B%W%i%$%^%j(B</cite>$B$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B)
+ $B$+$i%Z!<%8$,Aw$jJV$5$l$^$9!#(B</p>
+
+ <p><a href="../mod/core.html#serverpath"><code>ServerPath</code></a>
+ $B%G%#%l%/%F%#%V$GBP=h$,2DG=$G$9!#$A$g$C$HIT3J9%$G$9$1$l$I$b!#(B</p>
+
+ <p>$B@_DjNc(B</p>
+<pre>
NameVirtualHost 111.22.33.44
&lt;VirtualHost 111.22.33.44&gt;
@@ -167,41 +202,37 @@ IP $B%"%I%l%9$K%^%C%A$7$^$9!#(B
ServerPath /domain
DocumentRoot /web/domain
&lt;/VirtualHost&gt;
-</PRE>
-
-<P>$B$3$NNc$K$O$I$&$$$&0UL#$,$"$k$G$7$g$&$+(B? $B$3$l$O(B
-"<SAMP>/domain</SAMP>" $B$G;O$^$k(B URI $B$X$N%j%/%(%9%H$O$9$Y$F!"(B
-$B%P!<%A%c%k%[%9%H(B <SAMP>www.domain.tld</SAMP> $B$G=hM}$5$l$k!"$H$$$&0UL#$G$9!#(B
-
-$B$D$^$j!"$9$Y$F$N%/%i%$%"%s%H$G(B
-<CODE>http://www.domain.tld/domain/</CODE> $B$G%"%/%;%9$G$-$k%Z!<%8$,!"(B
-<SAMP>Host:</SAMP> $B%X%C%@$rAw$C$F$/$k%/%i%$%"%s%H$G$"$l$P(B
-<CODE>http://www.domain.tld/</CODE> $B$H$7$F$b%"%/%;%9$G$-$k!"$H$$$&(B
-$B0UL#$G$9!#(B</P>
-
-<P>$B$3$l$r<BMQE*$J$b$N$H$9$k$?$a$K$O!"(B
-$B%W%i%$%^%j$N%P!<%A%c%k%[%9%H$N%Z!<%8$K(B
-<SAMP>http://www.domain.tld/domain/</SAMP> $B$X$N%j%s%/$r@_CV$7$^$9!#(B
-
-$B$=$7$F!"%P!<%A%c%k%[%9%H$N%Z!<%8$G$O!"(B
-$B=c?h$JAjBP%j%s%/(B (<EM>$BNc(B:</EM> "<SAMP>file.html</SAMP>" $B$d(B
-"<SAMP>../icons/image.gif</SAMP>")$B!"(B
-$B$"$k$$$O(B <SAMP>/domain/</SAMP> $B$G;O$^$k%j%s%/(B
-(<EM>$BNc(B:</EM> "<SAMP>http://www.domain.tld/domain/misc/file.html</SAMP>" $B$d(B
-"<SAMP>/domain/misc/file.html</SAMP>") $B$@$1$r@_CV$7$^$9!#(B</P>
-
-<P>$B$3$l$K$O!"4vJ,$+$N5,N'$,I,MW$H$J$j$^$9$,!"(B
-$B$3$N$h$&$J%,%$%I%i%$%s$rCi<B$K<i$k$3$H$K$h$j!"$?$$$F$$$N>l9g!"(B
-$B$9$Y$F$N%V%i%&%6$G!=?7$7$$%V%i%&%6$G$b8E$$$b$N$G$b!=(B
-$B:n@.$7$?%Z!<%8$,8+$($k$H$$$&$3$H$rJ]>Z$7$^$9!#(B</P>
-
-<P>$B;29M(B: <A HREF="examples.html#serverpath">ServerPath $B@_DjNc(B</A></P>
-
- <hr />
+</pre>
+
+ <p>$B$3$NNc$K$O$I$&$$$&0UL#$,$"$k$G$7$g$&$+(B? $B$3$l$O(B
+ "<samp>/domain</samp>" $B$G;O$^$k(B URI $B$X$N%j%/%(%9%H$O$9$Y$F!"(B
+ $B%P!<%A%c%k%[%9%H(B <samp>www.domain.tld</samp> $B$G=hM}$5$l$k!"(B
+ $B$H$$$&0UL#$G$9!#$D$^$j!"$9$Y$F$N%/%i%$%"%s%H$G(B
+ <code>http://www.domain.tld/domain/</code> $B$G%"%/%;%9$G$-$k%Z!<%8$,!"(B
+ <samp>Host:</samp> $B%X%C%@$rAw$C$F$/$k%/%i%$%"%s%H$G$"$l$P(B
+ <code>http://www.domain.tld/</code> $B$H$7$F$b%"%/%;%9$G$-$k!"(B
+ $B$H$$$&0UL#$G$9!#(B</p>
+
+ <p>$B$3$l$r<BMQE*$J$b$N$H$9$k$?$a$K$O!"(B
+ $B%W%i%$%^%j$N%P!<%A%c%k%[%9%H$N%Z!<%8$K(B
+ <samp>http://www.domain.tld/domain/</samp> $B$X$N%j%s%/$r@_CV$7$^$9!#(B
+ $B$=$7$F!"%P!<%A%c%k%[%9%H$N%Z!<%8$G$O!"=c?h$JAjBP%j%s%/(B (<em>$BNc(B:</em>
+ "<samp>file.html</samp>" $B$d(B "<samp>../icons/image.gif</samp>")$B!"(B
+ $B$"$k$$$O(B <samp>/domain/</samp> $B$G;O$^$k%j%s%/(B (<em>$BNc(B:</em>
+ "<samp>http://www.domain.tld/domain/misc/file.html</samp>" $B$d(B
+ "<samp>/domain/misc/file.html</samp>") $B$@$1$r@_CV$7$^$9!#(B</p>
+
+ <p>$B$3$l$K$O!"4vJ,$+$N5,N'$,I,MW$H$J$j$^$9$,!"(B
+ $B$3$N$h$&$J%,%$%I%i%$%s$rCi<B$K<i$k$3$H$K$h$j!"$?$$$F$$$N>l9g!"(B
+ $B$9$Y$F$N%V%i%&%6$G(B $B!=(B $B?7$7$$%V%i%&%6$G$b8E$$$b$N$G$b(B $B!=(B
+ $B:n@.$7$?%Z!<%8$,8+$($k$H$$$&$3$H$rJ]>Z$7$^$9!#(B</p>
+
+ <p>$B;29M(B: <a href="examples.html#serverpath">ServerPath $B@_DjNc(B</a></p>
+ <hr />
<h3 align="CENTER">Apache HTTP Server Version 1.3</h3>
<a href="./"><img src="../images/index.gif" alt="Index" /></a>
<a href="../"><img src="../images/home.gif" alt="Home" /></a>
-</BODY>
-</HTML>
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/win_compiling.html b/usr.sbin/httpd/htdocs/manual/win_compiling.html
index eae7db050f7..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/win_compiling.html
+++ b/usr.sbin/httpd/htdocs/manual/win_compiling.html
@@ -1,269 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Compiling Apache for Microsoft Windows</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server</h3>
- </div>
-
-
-
- <h1 align="CENTER">Compiling Apache for Microsoft Windows</h1>
-
- <p>There are many important points before you begin compiling
- Apache. See <a href="windows.html">Using Apache with Microsoft
- Windows</a> before you begin.</p>
-
- <p>Compiling Apache requires Microsoft Visual C++ 5.0 or 6.0 to
- be properly installed. It can be built with command-line tools,
- or within the Visual Studio environment. Consult the VC++
- manual to determine how to install them. Be especially aware
- that the vcvars32.bat file from the Program
- Files/DevStudio/VC/bin folder, and the setenv.bat file from the
- Platform SDK, may be required to prepare the command-line tools
- for command-line builds (e.g. using nmake). To install apache
- with the Makefile.win or the InstallBin project in the Visual
- Studio IDE, the awk utility is also required.</p>
-
- <p>First, you should install awk.exe where it can be found in
- the path and the DevStudio environment, if you plan to use the
- IDE. There are many versions of awk available for Windows; the
- easiest to install is available from Brian Kernighan's <a
- href="http://cm.bell-labs.com/cm/cs/who/bwk/">http://cm.bell-labs.com/cm/cs/who/bwk/</a>
- site. When downloading <a
- href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe">http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a>
- from this site, you must save it with the name awk.exe rather
- than awk95.exe.</p>
-
- <p>Note that DevStudio will only find awk.exe if its location
- is listed under the <u>T</u>ools menu <u>O</u>ptions...
- Directories settings for the Executable files. Add the path where
- awk.exe resides to this list, as needed.</p>
-
- <p>Then unpack the Apache distribution into an appropriate
- directory. Open a command-line prompt, and change to the
- <code>src</code> subdirectory of the Apache distribution.</p>
-
- <p>The master Apache makefile instructions are contained in the
- <code>Makefile.win</code> file. To compile Apache on Windows
- NT, simply use one of the following commands:</p>
-
- <ul>
- <li><code>nmake /f Makefile.win _apacher</code> (release
- build)</li>
-
- <li><code>nmake /f Makefile.win _apached</code> (debug
- build)</li>
- </ul>
-
- <p>These will both compile Apache. The latter will include
- debugging information in the resulting files, making it easier
- to find bugs and track down problems.</p>
-
- <p>If you get an error such as "the name specified is not
- recognized..." then you need to run vcvars32.bat first. Enter
- the following command;</p>
-<pre>
- "c:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT"
-</pre>
-
- <p>(you will need to adjust this command so it matches the
- directory where your VC was installed.)</p>
-
- <p>If you are a Visual C++ 5.0 user, and have installed a
- recent Platform SDK, you may also need to enter the following
- command (adjusted for the install directory of the Platform SDK
- update);</p>
-<pre>
- "c:\Program Files\Platform SDK\SETENV.BAT"
-</pre>
-
- <p>Then try the nmake command again.</p>
-
- <p><strong>Note</strong> that the Windows Platform SDK update
- is required to enable all supported mod_isapi features. The SDK
- files distributed with Microsoft Visual C++ 5.0 are out of
- date. Without a recent update, Apache will issue warnings under
- MSVC++ 5.0 that some mod_isapi features will be disabled. Look
- for the update at <a
- href="http://msdn.microsoft.com/platformsdk/">
- http://msdn.microsoft.com/platformsdk/</a>.</p>
-
- <p>Apache can also be compiled using VC++'s Visual Studio
- development environment. To simplify this process, a Visual
- Studio workspace, Apache.dsw, is provided in the
- <code>src</code> folder. This workspace exposes the entire list
- of working .dsp projects that are required for the complete
- Apache binary release. It includes dependencies between the
- projects to assure that they are built in the appropriate
- order. InstallBin is the top-level project that will build all
- other projects, and install the compiled files into their
- proper locations.</p>
-
- <p>These .dsp project files are distributed in Visual C++ 6.0
- format. Visual C++ 5.0 (97) will recognize them with the single
- exception of the /ZI flag, which corresponds to the VC 5.0 /Zi
- flag for debugging symbols. To quickly prepare the .dsp files
- for the Visual Studio 5.0 (97), you can use the perl scripts
- distributed in the <code>src\helpers</code> folder:</p>
-<pre>
- cd src\helpers
- cvstodsp5.pl
-</pre>
-
- <p>This command assumes you have a Perl interpreter installed
- and registered for files of type .pl. The list of converted
- .dsp project files will be displayed as they are converted. If
- you contribute back a patch that offers revised project files,
- please convert them back with the script dsp5tocvs.pl, which
- puts the projects back to Visual Studio 6.0 format.</p>
-
- <p>The core .dsp projects built by Apache.dsw and makefile.win
- are:</p>
-
- <ul>
- <li><code>os\win32\ApacheOS.dsp</code></li>
- <li><code>os\win32\Win9xConHook.dsp</code></li>
- <li><code>regex\regex.dsp</code></li>
- <li><code>ap\ap.dsp</code></li>
- <li><code>lib\expat-lite\xmltok.dsp</code></li>
- <li><code>lib\expat-lite\xmlparse.dsp <em>requires
- xmltok</em></code></li>
- <li><code>lib\sdbm.dsp</code></li>
- <li><code>main\gen_uri_delims.dsp</code></li>
- <li><code>main\gen_test_char.dsp</code></li>
- <li><code>ApacheCore.dsp <em>requires all of the
- above</em></code></li>
- <li><code>Apache.dsp <em>requires ApacheCore</em></code></li>
- </ul>
-
- <p>In addition, the <code>os\win32</code> subdirectory contains
- project files for the optional modules, all of which require
- ApacheCore.</p>
-
- <ul>
- <li><code>os\win32\mod_auth_anon.dsp</code></li>
- <li><code>os\win32\mod_auth_dbm.dsp <em>also requires
- sdbm</em></code></li>
- <li><code>os\win32\mod_auth_digest.dsp</code></li>
- <li><code>os\win32\mod_cern_meta.dsp</code></li>
- <li><code>os\win32\mod_digest.dsp</code></li>
- <li><code>os\win32\mod_expires.dsp</code></li>
- <li><code>os\win32\mod_headers.dsp</code></li>
- <li><code>os\win32\mod_info.dsp</code></li>
- <li><code>os\win32\mod_mime_magic.dsp</code></li>
- <li><code>os\win32\mod_proxy.dsp</code></li>
- <li><code>os\win32\mod_rewrite.dsp</code></li>
- <li><code>os\win32\mod_speling.dsp</code></li>
- <li><code>os\win32\mod_status.dsp</code></li>
- <li><code>os\win32\mod_unique_id.dsp</code></li>
- <li><code>os\win32\mod_usertrack.dsp</code></li>
- <li><code>os\win32\mod_vhost_alias.dsp</code></li>
- </ul>
-
- <p>The <code>support\</code> folder contains project files for
- additional programs that are not part of the Apache runtime,
- but are used by the administrator to maintain password and log
- files.</p>
-
- <ul>
- <li><code>support\htdigest.dsp</code></li>
- <li><code>support\htpasswd.dsp</code></li>
- <li><code>support\logresolve.dsp</code></li>
- <li><code>support\rotatelogs.dsp</code></li>
- </ul>
-
- <p>Once Apache has been compiled, it needs to be installed in
- its server root directory. The default is the
- <code>\Apache</code> directory, on the current hard drive.</p>
-
- <p>To install the files into the <code>c:\ServerRoot</code>
- directory automatically, use one the following nmake commands
- (see above):</p>
-
- <ul>
- <li><code>nmake /f Makefile.win installr
- INSTDIR=<em>c:\ServerRoot</em></code> (for release
- build)</li>
- <li><code>nmake /f Makefile.win installd
- INSTDIR=<em>c:\ServerRoot</em></code> (for debug build)</li>
- </ul>
-
- <p>The <em>c:\ServerRoot</em> argument to INSTDIR gives the
- installation directory (it can be omitted if Apache is to be
- installed into <samp>\Apache</samp>).</p>
-
- <p>This will install the following:</p>
-
- <ul>
- <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache
- program</li>
- <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> -
- Apache runtime [shared library]</li>
- <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> -
- Win9x console fixups [shared library]</li>
- <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML
- parser [shared library]</li>
- <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML
- token engine [shared library]</li>
- <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> -
- Administration programs</li>
- <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - Example CGI
- scripts</li>
- <li><code><em>c:\ServerRoot</em>\conf</code> - Configuration
- files directory</li>
- <li><code><em>c:\ServerRoot</em>\icons</code> - Icons for
- FancyIndexing</li>
- <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache
- header files</li>
- <li><code><em>c:\ServerRoot</em>\htdocs</code> - Welcome
- index.html pages</li>
- <li><code><em>c:\ServerRoot</em>\htdocs\manual</code> -
- Apache documentation</li>
- <li><code><em>c:\ServerRoot</em>\lib</code> - Static library
- files</li>
- <li><code><em>c:\ServerRoot</em>\libexec</code> - Dynamic
- link libraries</li>
- <li><code><em>c:\ServerRoot</em>\logs</code> - Empty logging
- directory</li>
- <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> -
- Loadable Apache modules</li>
- </ul>
-
- <p>If you do not have nmake, or wish to install in a different
- directory, be sure to use a similar naming scheme.</p>
-
- <p>To simplify the process, dependencies between all projects
- are defined in the Microsoft Visual Studio workspace file:</p>
-<pre>
- src/Apache.dsw
-</pre>
-
- <p>This assures that lower-level sources are rebuilt from
- within Visual Studio. The top level project is InstallBin,
- which invokes Makefile.win to move the compiled executables and
- dlls. You may personalize the INSTDIR= setting by changing the
- Settings for InstallBin, Build command line entry under the
- General tab. The default from within the InstallBin.dsp project
- is one level up (..) from the src tree. Modify the InstallBin
- settings and edit the INSTDIR=.. entry to the desired target
- directory.</p>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server</h3>
- <a href="./"><img src="images/index.gif" alt="Index" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/win_compiling.html.en b/usr.sbin/httpd/htdocs/manual/win_compiling.html.en
index 371793653bc..ece961be8a3 100644
--- a/usr.sbin/httpd/htdocs/manual/win_compiling.html.en
+++ b/usr.sbin/httpd/htdocs/manual/win_compiling.html.en
@@ -271,3 +271,276 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Compiling Apache for Microsoft Windows</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">Compiling Apache for Microsoft Windows</h1>
+
+ <p>There are many important points before you begin compiling
+ Apache. See <a href="windows.html">Using Apache with Microsoft
+ Windows</a> before you begin.</p>
+
+ <p>Compiling Apache requires Microsoft Visual C++ 5.0 or 6.0 to
+ be properly installed. It can be built with command-line tools,
+ or within the Visual Studio environment. Consult the VC++
+ manual to determine how to install them. Be especially aware
+ that the vcvars32.bat file from the Program
+ Files/DevStudio/VC/bin folder, and the setenv.bat file from the
+ Platform SDK, may be required to prepare the command-line tools
+ for command-line builds (e.g. using nmake). To install apache
+ with the Makefile.win or the InstallBin project in the Visual
+ Studio IDE, the awk utility is also required. If you use Visual
+ Studio 7.0 (.net), loading Apache.dsw converts it to .msproj
+ format. When changes are made to the project (.dsp) files, you
+ must reconvert Apache.dsw all over again.</p>
+
+ <p>First, you should install awk.exe where it can be found in
+ the path and the DevStudio environment, if you plan to use the
+ IDE. There are many versions of awk available for Windows; the
+ easiest to install is available from Brian Kernighan's <a
+ href="http://cm.bell-labs.com/cm/cs/who/bwk/">http://cm.bell-labs.com/cm/cs/who/bwk/</a>
+ site. When downloading <a
+ href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe">http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a>
+ from this site, you must save it with the name awk.exe rather
+ than awk95.exe.</p>
+
+ <p>Note that Developer Studio IDE will only find awk.exe from
+ the <u>T</u>ools menu <u>O</u>ptions... Directories tab
+ (the Projects - VC++ Directories pane in Developer Studio 7.0)
+ listing Executable file paths. Add the path for awk.exe to this
+ list, and your system PATH environment variable, as needed.</p>
+
+ <p>Then unpack the Apache distribution into an appropriate
+ directory. Open a command-line prompt, and change to the
+ <code>src</code> subdirectory of the Apache distribution.</p>
+
+ <p>The master Apache makefile instructions are contained in the
+ <code>Makefile.win</code> file. To compile Apache on Windows
+ NT, simply use one of the following commands:</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win _apacher</code> (release
+ build)</li>
+
+ <li><code>nmake /f Makefile.win _apached</code> (debug
+ build)</li>
+ </ul>
+
+ <p>These will both compile Apache. The latter will include
+ debugging information in the resulting files, making it easier
+ to find bugs and track down problems.</p>
+
+ <p>If you get an error such as "the name specified is not
+ recognized..." then you need to run vcvars32.bat first. Enter
+ the following command;</p>
+<pre>
+ "c:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT"
+</pre>
+
+ <p>(you will need to adjust this command so it matches the
+ directory where your VC was installed.)</p>
+
+ <p>If you are a Visual C++ 5.0 user, and have installed a
+ recent Platform SDK, you may also need to enter the following
+ command (adjusted for the install directory of the Platform SDK
+ update);</p>
+<pre>
+ "c:\Program Files\Platform SDK\SETENV.BAT"
+</pre>
+
+ <p>Then try the nmake command again.</p>
+
+ <p><strong>Note</strong> that the Windows Platform SDK update
+ is required to enable all supported mod_isapi features. The SDK
+ files distributed with Microsoft Visual C++ 5.0 are out of
+ date. Without a recent update, Apache will issue warnings under
+ MSVC++ 5.0 that some mod_isapi features will be disabled. Look
+ for the update at <a
+ href="http://msdn.microsoft.com/platformsdk/">
+ http://msdn.microsoft.com/platformsdk/</a>.</p>
+
+ <p>Apache can also be compiled using VC++'s Visual Studio
+ development environment. To simplify this process, a Visual
+ Studio workspace, Apache.dsw, is provided in the
+ <code>src</code> folder. This workspace exposes the entire list
+ of working .dsp projects that are required for the complete
+ Apache binary release. It includes dependencies between the
+ projects to assure that they are built in the appropriate
+ order. InstallBin is the top-level project that will build all
+ other projects, and install the compiled files into their
+ proper locations.</p>
+
+ <p>These .dsp project files are distributed in Visual C++ 6.0
+ format. Visual C++ 5.0 (97) will recognize them with the single
+ exception of the /ZI flag, which corresponds to the VC 5.0 /Zi
+ flag for debugging symbols. To quickly prepare the .dsp files
+ for the Visual Studio 5.0 (97), you can use the perl scripts
+ distributed in the <code>src\helpers</code> folder:</p>
+<pre>
+ cd src\helpers
+ cvstodsp5.pl
+</pre>
+
+ <p>This command assumes you have a Perl interpreter installed
+ and registered for files of type .pl. The list of converted
+ .dsp project files will be displayed as they are converted. If
+ you contribute back a patch that offers revised project files,
+ please convert them back with the script dsp5tocvs.pl, which
+ puts the projects back to Visual Studio 6.0 format.</p>
+
+ <p>The core .dsp projects built by Apache.dsw and makefile.win
+ are:</p>
+
+ <ul>
+ <li><code>os\win32\ApacheOS.dsp</code></li>
+ <li><code>os\win32\Win9xConHook.dsp</code></li>
+ <li><code>regex\regex.dsp</code></li>
+ <li><code>ap\ap.dsp</code></li>
+ <li><code>lib\expat-lite\xmltok.dsp</code></li>
+ <li><code>lib\expat-lite\xmlparse.dsp <em>requires
+ xmltok</em></code></li>
+ <li><code>lib\sdbm.dsp</code></li>
+ <li><code>main\gen_uri_delims.dsp</code></li>
+ <li><code>main\gen_test_char.dsp</code></li>
+ <li><code>ApacheCore.dsp <em>requires all of the
+ above</em></code></li>
+ <li><code>Apache.dsp <em>requires ApacheCore</em></code></li>
+ </ul>
+
+ <p>In addition, the <code>os\win32</code> subdirectory contains
+ project files for the optional modules, all of which require
+ ApacheCore.</p>
+
+ <ul>
+ <li><code>os\win32\mod_auth_anon.dsp</code></li>
+ <li><code>os\win32\mod_auth_dbm.dsp <em>also requires
+ sdbm</em></code></li>
+ <li><code>os\win32\mod_auth_digest.dsp</code></li>
+ <li><code>os\win32\mod_cern_meta.dsp</code></li>
+ <li><code>os\win32\mod_digest.dsp</code></li>
+ <li><code>os\win32\mod_expires.dsp</code></li>
+ <li><code>os\win32\mod_headers.dsp</code></li>
+ <li><code>os\win32\mod_info.dsp</code></li>
+ <li><code>os\win32\mod_mime_magic.dsp</code></li>
+ <li><code>os\win32\mod_proxy.dsp</code></li>
+ <li><code>os\win32\mod_rewrite.dsp</code></li>
+ <li><code>os\win32\mod_speling.dsp</code></li>
+ <li><code>os\win32\mod_status.dsp</code></li>
+ <li><code>os\win32\mod_unique_id.dsp</code></li>
+ <li><code>os\win32\mod_usertrack.dsp</code></li>
+ <li><code>os\win32\mod_vhost_alias.dsp</code></li>
+ </ul>
+
+ <p>The <code>support\</code> folder contains project files for
+ additional programs that are not part of the Apache runtime,
+ but are used by the administrator to maintain password and log
+ files.</p>
+
+ <ul>
+ <li><code>support\htdigest.dsp</code></li>
+ <li><code>support\htpasswd.dsp</code></li>
+ <li><code>support\logresolve.dsp</code></li>
+ <li><code>support\rotatelogs.dsp</code></li>
+ </ul>
+
+ <p>Once Apache has been compiled, it needs to be installed in
+ its server root directory. The default is the
+ <code>\Apache</code> directory, on the current hard drive.</p>
+
+ <p>To install the files into the <code>c:\ServerRoot</code>
+ directory automatically, use one of the following nmake commands
+ (see above):</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win installr
+ INSTDIR=<em>c:\ServerRoot</em></code> (for release
+ build)</li>
+ <li><code>nmake /f Makefile.win installd
+ INSTDIR=<em>c:\ServerRoot</em></code> (for debug build)</li>
+ </ul>
+
+ <p>The <em>c:\ServerRoot</em> argument to INSTDIR gives the
+ installation directory (it can be omitted if Apache is to be
+ installed into <samp>\Apache</samp>).</p>
+
+ <p>This will install the following:</p>
+
+ <ul>
+ <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache
+ program</li>
+ <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> -
+ Apache runtime [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> -
+ Win9x console fixups [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML
+ parser [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML
+ token engine [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> -
+ Administration programs</li>
+ <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - Example CGI
+ scripts</li>
+ <li><code><em>c:\ServerRoot</em>\conf</code> - Configuration
+ files directory</li>
+ <li><code><em>c:\ServerRoot</em>\icons</code> - Icons for
+ FancyIndexing</li>
+ <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache
+ header files</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs</code> - Welcome
+ index.html pages</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs\manual</code> -
+ Apache documentation</li>
+ <li><code><em>c:\ServerRoot</em>\lib</code> - Static library
+ files</li>
+ <li><code><em>c:\ServerRoot</em>\libexec</code> - Dynamic
+ link libraries</li>
+ <li><code><em>c:\ServerRoot</em>\logs</code> - Empty logging
+ directory</li>
+ <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> -
+ Loadable Apache modules</li>
+ </ul>
+
+ <p>If you do not have nmake, or wish to install in a different
+ directory, be sure to use a similar naming scheme.</p>
+
+ <p>To simplify the process, dependencies between all projects
+ are defined in the Microsoft Visual Studio workspace file:</p>
+<pre>
+ src/Apache.dsw
+</pre>
+
+ <p>This assures that lower-level sources are rebuilt from
+ within Visual Studio. The top level project is InstallBin,
+ which invokes Makefile.win to move the compiled executables and
+ dlls. You may personalize the INSTDIR= setting by changing the
+ Settings for InstallBin, Build command line entry under the
+ General tab. The default from within the InstallBin.dsp project
+ is one level up (..) from the src tree. Modify the InstallBin
+ settings and edit the INSTDIR=.. entry to the desired target
+ directory.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/win_compiling.html.html b/usr.sbin/httpd/htdocs/manual/win_compiling.html.html
index a91f3f48407..ee5c8b99d5c 100644
--- a/usr.sbin/httpd/htdocs/manual/win_compiling.html.html
+++ b/usr.sbin/httpd/htdocs/manual/win_compiling.html.html
@@ -275,3 +275,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Compiling Apache for Microsoft Windows</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER">Compiling Apache for Microsoft Windows</h1>
+
+ <p>There are many important points before you begin compiling
+ Apache. See <a href="windows.html">Using Apache with Microsoft
+ Windows</a> before you begin.</p>
+
+ <p>Compiling Apache requires Microsoft Visual C++ 5.0 or 6.0 to
+ be properly installed. It can be built with command-line tools,
+ or within the Visual Studio environment. Consult the VC++
+ manual to determine how to install them. Be especially aware
+ that the vcvars32.bat file from the Program
+ Files/DevStudio/VC/bin folder, and the setenv.bat file from the
+ Platform SDK, may be required to prepare the command-line tools
+ for command-line builds (e.g. using nmake). To install apache
+ with the Makefile.win or the InstallBin project in the Visual
+ Studio IDE, the awk utility is also required. If you use Visual
+ Studio 7.0 (.net), loading Apache.dsw converts it to .msproj
+ format. When changes are made to the project (.dsp) files, you
+ must reconvert Apache.dsw all over again.</p>
+
+ <p>First, you should install awk.exe where it can be found in
+ the path and the DevStudio environment, if you plan to use the
+ IDE. There are many versions of awk available for Windows; the
+ easiest to install is available from Brian Kernighan's <a
+ href="http://cm.bell-labs.com/cm/cs/who/bwk/">http://cm.bell-labs.com/cm/cs/who/bwk/</a>
+ site. When downloading <a
+ href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe">http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a>
+ from this site, you must save it with the name awk.exe rather
+ than awk95.exe.</p>
+
+ <p>Note that Developer Studio IDE will only find awk.exe from
+ the <u>T</u>ools menu <u>O</u>ptions... Directories tab
+ (the Projects - VC++ Directories pane in Developer Studio 7.0)
+ listing Executable file paths. Add the path for awk.exe to this
+ list, and your system PATH environment variable, as needed.</p>
+
+ <p>Then unpack the Apache distribution into an appropriate
+ directory. Open a command-line prompt, and change to the
+ <code>src</code> subdirectory of the Apache distribution.</p>
+
+ <p>The master Apache makefile instructions are contained in the
+ <code>Makefile.win</code> file. To compile Apache on Windows
+ NT, simply use one of the following commands:</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win _apacher</code> (release
+ build)</li>
+
+ <li><code>nmake /f Makefile.win _apached</code> (debug
+ build)</li>
+ </ul>
+
+ <p>These will both compile Apache. The latter will include
+ debugging information in the resulting files, making it easier
+ to find bugs and track down problems.</p>
+
+ <p>If you get an error such as "the name specified is not
+ recognized..." then you need to run vcvars32.bat first. Enter
+ the following command;</p>
+<pre>
+ "c:\Program Files\DevStudio\VC\Bin\VCVARS32.BAT"
+</pre>
+
+ <p>(you will need to adjust this command so it matches the
+ directory where your VC was installed.)</p>
+
+ <p>If you are a Visual C++ 5.0 user, and have installed a
+ recent Platform SDK, you may also need to enter the following
+ command (adjusted for the install directory of the Platform SDK
+ update);</p>
+<pre>
+ "c:\Program Files\Platform SDK\SETENV.BAT"
+</pre>
+
+ <p>Then try the nmake command again.</p>
+
+ <p><strong>Note</strong> that the Windows Platform SDK update
+ is required to enable all supported mod_isapi features. The SDK
+ files distributed with Microsoft Visual C++ 5.0 are out of
+ date. Without a recent update, Apache will issue warnings under
+ MSVC++ 5.0 that some mod_isapi features will be disabled. Look
+ for the update at <a
+ href="http://msdn.microsoft.com/platformsdk/">
+ http://msdn.microsoft.com/platformsdk/</a>.</p>
+
+ <p>Apache can also be compiled using VC++'s Visual Studio
+ development environment. To simplify this process, a Visual
+ Studio workspace, Apache.dsw, is provided in the
+ <code>src</code> folder. This workspace exposes the entire list
+ of working .dsp projects that are required for the complete
+ Apache binary release. It includes dependencies between the
+ projects to assure that they are built in the appropriate
+ order. InstallBin is the top-level project that will build all
+ other projects, and install the compiled files into their
+ proper locations.</p>
+
+ <p>These .dsp project files are distributed in Visual C++ 6.0
+ format. Visual C++ 5.0 (97) will recognize them with the single
+ exception of the /ZI flag, which corresponds to the VC 5.0 /Zi
+ flag for debugging symbols. To quickly prepare the .dsp files
+ for the Visual Studio 5.0 (97), you can use the perl scripts
+ distributed in the <code>src\helpers</code> folder:</p>
+<pre>
+ cd src\helpers
+ cvstodsp5.pl
+</pre>
+
+ <p>This command assumes you have a Perl interpreter installed
+ and registered for files of type .pl. The list of converted
+ .dsp project files will be displayed as they are converted. If
+ you contribute back a patch that offers revised project files,
+ please convert them back with the script dsp5tocvs.pl, which
+ puts the projects back to Visual Studio 6.0 format.</p>
+
+ <p>The core .dsp projects built by Apache.dsw and makefile.win
+ are:</p>
+
+ <ul>
+ <li><code>os\win32\ApacheOS.dsp</code></li>
+ <li><code>os\win32\Win9xConHook.dsp</code></li>
+ <li><code>regex\regex.dsp</code></li>
+ <li><code>ap\ap.dsp</code></li>
+ <li><code>lib\expat-lite\xmltok.dsp</code></li>
+ <li><code>lib\expat-lite\xmlparse.dsp <em>requires
+ xmltok</em></code></li>
+ <li><code>lib\sdbm.dsp</code></li>
+ <li><code>main\gen_uri_delims.dsp</code></li>
+ <li><code>main\gen_test_char.dsp</code></li>
+ <li><code>ApacheCore.dsp <em>requires all of the
+ above</em></code></li>
+ <li><code>Apache.dsp <em>requires ApacheCore</em></code></li>
+ </ul>
+
+ <p>In addition, the <code>os\win32</code> subdirectory contains
+ project files for the optional modules, all of which require
+ ApacheCore.</p>
+
+ <ul>
+ <li><code>os\win32\mod_auth_anon.dsp</code></li>
+ <li><code>os\win32\mod_auth_dbm.dsp <em>also requires
+ sdbm</em></code></li>
+ <li><code>os\win32\mod_auth_digest.dsp</code></li>
+ <li><code>os\win32\mod_cern_meta.dsp</code></li>
+ <li><code>os\win32\mod_digest.dsp</code></li>
+ <li><code>os\win32\mod_expires.dsp</code></li>
+ <li><code>os\win32\mod_headers.dsp</code></li>
+ <li><code>os\win32\mod_info.dsp</code></li>
+ <li><code>os\win32\mod_mime_magic.dsp</code></li>
+ <li><code>os\win32\mod_proxy.dsp</code></li>
+ <li><code>os\win32\mod_rewrite.dsp</code></li>
+ <li><code>os\win32\mod_speling.dsp</code></li>
+ <li><code>os\win32\mod_status.dsp</code></li>
+ <li><code>os\win32\mod_unique_id.dsp</code></li>
+ <li><code>os\win32\mod_usertrack.dsp</code></li>
+ <li><code>os\win32\mod_vhost_alias.dsp</code></li>
+ </ul>
+
+ <p>The <code>support\</code> folder contains project files for
+ additional programs that are not part of the Apache runtime,
+ but are used by the administrator to maintain password and log
+ files.</p>
+
+ <ul>
+ <li><code>support\htdigest.dsp</code></li>
+ <li><code>support\htpasswd.dsp</code></li>
+ <li><code>support\logresolve.dsp</code></li>
+ <li><code>support\rotatelogs.dsp</code></li>
+ </ul>
+
+ <p>Once Apache has been compiled, it needs to be installed in
+ its server root directory. The default is the
+ <code>\Apache</code> directory, on the current hard drive.</p>
+
+ <p>To install the files into the <code>c:\ServerRoot</code>
+ directory automatically, use one of the following nmake commands
+ (see above):</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win installr
+ INSTDIR=<em>c:\ServerRoot</em></code> (for release
+ build)</li>
+ <li><code>nmake /f Makefile.win installd
+ INSTDIR=<em>c:\ServerRoot</em></code> (for debug build)</li>
+ </ul>
+
+ <p>The <em>c:\ServerRoot</em> argument to INSTDIR gives the
+ installation directory (it can be omitted if Apache is to be
+ installed into <samp>\Apache</samp>).</p>
+
+ <p>This will install the following:</p>
+
+ <ul>
+ <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache
+ program</li>
+ <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> -
+ Apache runtime [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> -
+ Win9x console fixups [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML
+ parser [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML
+ token engine [shared library]</li>
+ <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> -
+ Administration programs</li>
+ <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - Example CGI
+ scripts</li>
+ <li><code><em>c:\ServerRoot</em>\conf</code> - Configuration
+ files directory</li>
+ <li><code><em>c:\ServerRoot</em>\icons</code> - Icons for
+ FancyIndexing</li>
+ <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache
+ header files</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs</code> - Welcome
+ index.html pages</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs\manual</code> -
+ Apache documentation</li>
+ <li><code><em>c:\ServerRoot</em>\lib</code> - Static library
+ files</li>
+ <li><code><em>c:\ServerRoot</em>\libexec</code> - Dynamic
+ link libraries</li>
+ <li><code><em>c:\ServerRoot</em>\logs</code> - Empty logging
+ directory</li>
+ <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> -
+ Loadable Apache modules</li>
+ </ul>
+
+ <p>If you do not have nmake, or wish to install in a different
+ directory, be sure to use a similar naming scheme.</p>
+
+ <p>To simplify the process, dependencies between all projects
+ are defined in the Microsoft Visual Studio workspace file:</p>
+<pre>
+ src/Apache.dsw
+</pre>
+
+ <p>This assures that lower-level sources are rebuilt from
+ within Visual Studio. The top level project is InstallBin,
+ which invokes Makefile.win to move the compiled executables and
+ dlls. You may personalize the INSTDIR= setting by changing the
+ Settings for InstallBin, Build command line entry under the
+ General tab. The default from within the InstallBin.dsp project
+ is one level up (..) from the src tree. Modify the InstallBin
+ settings and edit the INSTDIR=.. entry to the desired target
+ directory.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
+
+
diff --git a/usr.sbin/httpd/htdocs/manual/win_compiling.html.ja.jis b/usr.sbin/httpd/htdocs/manual/win_compiling.html.ja.jis
index 9463042f2ba..f79a057db3d 100644
--- a/usr.sbin/httpd/htdocs/manual/win_compiling.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/win_compiling.html.ja.jis
@@ -270,3 +270,275 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Microsoft Windows $B$G$N(B Apache $B$N%3%s%Q%$%k(B</title>
+
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <!-- English revision: 1.14 -->
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center">Microsoft Windows $B$G$N(B Apache $B$N%3%s%Q%$%k(B</h1>
+
+ <p>Apache $B$N%3%s%Q%$%k$r$O$8$a$kA0$K!"B?$/$N=EMW$J%]%$%s%H$,$"$j$^$9!#(B
+ $B;O$a$kA0$K!"(B<a href="windows.html">Microsoft Windows $B$G$N(B Apache
+ $B$N;HMQ(B</a>$B$r8+$F$/$@$5$$!#(B</p>
+
+ <p>Apache $B$r%3%s%Q%$%k$9$k$K$O(B Microsoft Visual
+ C++ 5.0 $B$^$?$O(B 6.0 $B$,E,@Z$K%$%s%9%H!<%k$5$l$F$$$k$3$H$,I,MW$G$9!#(B
+ $B%S%k%I$O%3%^%s%I%i%$%s%D!<%k!"(B
+ $B$^$?$O(B Visual Studio $B4D6-$G2DG=$G$9!#%$%s%9%H!<%k$NJ}K!$O!"(B
+ VC++ $B$N%^%K%e%"%k$r;29M$K$7$F$/$@$5$$!#%3%^%s%I%i%$%s$G$N%S%k%I(B
+ ($B$?$H$($P(B nmake $B$N;HMQ(B)$B$G$O!"%3%^%s%I%i%$%s%D!<%k$N=`Hw$K(B
+ Program Files/DevStudio/VC/bin
+ $B%U%)%k%@$K$"$k(B vcvars32.bat $B5Z$S(B Platform SDK $B$N(B setenv.bat
+ $B$N%U%!%$%k$,I,MW$K$J$k$G$"$m$&$3$H$K$D$$$F!"(B
+ $BFC$KCm0U$7$F$/$@$5$$!#(BMakefile.win $B$d(B Visual Studio IDE $B$N(B
+ InstallBin $B%W%m%8%'%/%H$r;H$C$F(B Apache $B$r%$%s%9%H!<%k$9$k>l9g$O!"(B
+ awk $B%f!<%F%#%j%F%#$bI,MW$K$J$j$^$9!#(B</p>
+
+ <p>$B$^$:!"(BIDE $B$r;H$&$D$b$j$J$i%Q%9$,DL$j!"(B DevStudio
+ $B4D6-$,2r<a$G$-$k$H$3$m$K(B awk.exe $B$r%$%s%9%H!<%k$7$F$/$@$5$$!#(B
+ Windows$B$GMxMQ2DG=$J(B awk $B$OMM!9$J%P!<%8%g%s$,$"$j$^$9!#(B
+ $B0lHV%$%s%9%H!<%k$7$d$9$$$b$N$O(B Brian Kernighan $B$N(B<a
+ href="http://cm.bell-labs.com/cm/cs/who/bwk/">
+ http://cm.bell-labs.com/cm/cs/who/bwk/</a>$B%5%$%H$+$iF~<j2DG=$G$9!#(B
+ $B$3$N%5%$%H$+$i(B<a href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe"
+ >http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a>
+ $B$r%@%&%s%m!<%I$7$?>l9g$O!"(Bawk95.exe $B$r(B awk.exe
+ $B$H$$$&L>A0$GJ]B8$7$J$1$l$P$J$j$^$;$s!#(B</p>
+ <p>DevStudio $B$O%D!<%k(B(<u>T</u>)$B%a%K%e!<$N%*%W%7%g%s(B(<u>O</u>)$B0J2<$N!"(B
+ $B%G%#%l%/%H%j$N<B9T2DG=%U%!%$%k$K%j%9%H$5$l$?>l=j$K$"$k>l9g$K$N$_!"(B
+ awk.exe $B$r8+$D$1$i$l$k$3$H$KCm0U$7$F$/$@$5$$!#I,MW$K1~$8!"(Bawk.exe
+ $B$N%Q%9$r$3$N%j%9%H$KDI2C$7$F$/$@$5$$!#(B</p>
+
+ <p>$B$=$l$+$i!"E,@Z$J%G%#%l%/%H%j$K(B Apache $B$NG[I[$rE83+$7$F$/$@$5$$!#(B
+ $B%3%^%s%I%i%$%s%W%m%s%W%H$r3+$-!"(BApache $BG[I[%5%V%G%#%l%/%H%j(B
+ <code>src</code> $B$K0\F0$7$F$/$@$5$$(B</p>
+
+ <p><code>Makefile.win</code> $B%U%!%$%k$K$O(B Apache $B$N(B makefile
+ $B$N85$H$J$k;X<($,4^$^$l$F$$$^$9!#(BWindowsNT $B$G(B Apache
+ $B$r%3%s%Q%$%k$9$k$K$O!"C1$K0J2<$N%3%^%s%I$N$&$A$N0l$D$r;H$C$F$/$@$5$$(B</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win _apacher</code>
+ ($B%j%j!<%9%S%k%I(B)</li>
+
+ <li><code>nmake /f Makefile.win _apached</code>
+ ($B%G%P%C%0%S%k%I(B)</li>
+ </ul>
+
+ <p>$B$3$l$i$O$I$A$i$b(B Apache $B$r%3%s%Q%$%k$7$^$9!#(B
+ $B8e<T$G$O!"=PNO$5$l$?%U%!%$%k$K%G%P%C%0>pJs$,4^$^$l!"(B
+ $B%P%0$r8+$D$1$?$jLdBj$rDI@W$7$?$j$7$d$9$/$J$j$^$9!#(B</p>
+
+ <p>$B$b$7!"!V(B...$B$H$7$FG'<1$5$l$F$$$^$;$s!W(B
+ $B$N$h$&$J%(%i!<$,=P$?>l9g$O$^$:!"(Bvcvars32.bat $B$r<B9T$9$kI,MW$,$"$j$^$9!#(B
+ $B0J2<$N%3%^%s%I$rF~NO$7$F$/$@$5$$(B</p>
+<pre>
+ &quot;c:\Program Files\DevStudio\VC\Bin\VCVARS32.bat&quot;
+</pre>
+
+ <p>($B$3$N%3%^%s%I$O(B VC $B$,%$%s%9%H!<%k$5$l$?%G%#%l%/%H%j$K9g$o$;$F(B
+ $BD4@0$9$kI,MW$,$"$j$^$9!#(B)</p>
+
+ <p>Visual C++ 5.0 $B%f!<%6$G!"$+$D!":G6a$N%W%i%C%H%U%)!<%`(B SDK
+ $B$r%$%s%9%H!<%k$7$F$$$k>l9g$O!"0J2<$N%3%^%s%I$rF~NO$9$kI,MW$,$"$k$G$7$g$&(B
+ (Platform SDK $B%"%C%W%G!<%H$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j$K9g$o$;$F(B
+ $BD4@0$9$kI,MW$,$"$j$^$9(B)</p>
+<pre>
+ "c:\Program Files\Platform SDK\SETENV.BAT"
+</pre>
+
+ <p>$B$=$l$+$i!":F$S(B nmake $B%3%^%s%I$r;n$7$F$/$@$5$$!#(B</p>
+
+ <p>$B%5%]!<%H$5$l$?$9$Y$F$N(B mod_isapi $B5!G=$rM-8z$K$9$k$K$O(B Windows
+ Platform SDK $B$N99?7$,I,MW$K$J$k$3$H$K(B<strong>$BCm0U$7$F$/$@$5$$(B</strong>$B!#(B
+ Microsoft Visual C++ 5.0 $B$H$H$b$KG[I[$5$l$?(B SDK $B%U%!%$%k$O8E$$$?$a$K(B
+ $B;H$($^$;$s!#(B
+ $B:G6a$N%"%C%W%G!<%H$,$J$5$l$F$$$J$$>l9g!"(BApache $B$O(B MSVC++ 5.0 $B$G$O!"(B
+ mod_isapi $B5!G=$,$$$/$D$+;HMQIT2D$K$J$k$3$H$r7Y9p$7$^$9!#(B
+ $B%"%C%W%G!<%H$K4X$7$F$O(B <a
+ href="http://msdn.microsoft.com/platformsdk/"
+ >http://msdn.micro soft.com/platformsdk/</a> $B$GC5$7$F$/$@$5$$!#(B</p>
+
+ <p>Apache $B$O!"(BVC++ $B$N(B Visual Studio $B3+H/4D6-$r;H$C$F%3%s%Q%$%k(B
+ $B$9$k$3$H$b$G$-$^$9!#$3$N%W%m%;%9$r4JAG2=$9$k$?$a$K!"(BVisual Studio
+ workspace (Apache.dsw) $B$,(B <code>src</code> $B%U%)%k%@$K$*$$$F(B
+ $BDs6!$5$l$F$$$^$9!#(B
+ $B$3$N(B workspace $B$O!"40A4$J(B Apache $B$N%P%$%J%j%j%j!<%9$KI,MW$J(B .dsp
+ $B%W%m%8%'%/%H$NA4BN$N%j%9%H$,=q$+$l$F$$$^$9!#(B
+ $B$^$?!"$=$l$i$,E,@Z$J=g=x$G%S%k%I$5$l$k$h$&$K$9$k$?$a$K!"(B
+ $B%W%m%8%'%/%H$N4V$N0MB84X78$b4^$^$l$F$$$^$9!#(B
+ InstallBin $B$,!"B>$N$9$Y$F$N%W%m%8%'%/%H$r%S%k%I$7!"(B
+ $B%3%s%Q%$%k$5$l$?%U%!%$%k$rE,@Z$J0LCV$K%$%s%9%H!<%k$9$k!"(B
+ $B%H%C%W%l%Y%k$N%W%m%8%'%/%H$G$9!#(B</p>
+
+ <p>$B$3$l$i$N(B .dsp $B%W%m%8%'%/%H%U%!%$%k$O(B Visual C++ 6.0
+ $B$N%U%)!<%^%C%H$GG[I[$5$l$^$9!#(BVisual C++ 5.0(97) $B$O(B
+ $BM#0l$NNc30!"%G%P%C%0%7%s%\%kMQ$N%U%i%0$G$"$k(B /ZI
+ $B%U%i%0$r=|$$$F$3$N%U%)!<%^%C%H$rG'<1$7$^$9!#(B
+ VC 5.0 $B$G$O(B /Zi $B%U%i%0$,$3$l$KAjEv$7$^$9!#(B
+ Visual Studio 5.0 (97) $B$N(B .dsp$B%U%!%$%k$r$9$0$K=`Hw$9$k$K$O!"(B
+ <code>src\helpers</code> $B%U%)%k%@$K$FG[I[$5$l$F$$$k(B perl
+ $B%9%/%j%W%H$r;H$&$3$H$,$G$-$^$9(B</p>
+<pre>
+ cd src\helpers
+ cvstodsp5.pl
+</pre>
+
+ <p>$B$3$N%3%^%s%I$O!"(BPerl $B%$%s%?%W%j%?$,%$%s%9%H!<%k$5$l$F$$$F!"(B
+ .pl $B$N%U%!%$%k%?%$%W$,EPO?$5$l$F$$$k$H2>Dj$7$^$9!#JQ49$5$l$?(B .dsp
+ $B%W%m%8%'%/%H%U%!%$%k$N%j%9%H$O$=$l$i$,JQ49$5$l$k$K$D$l$FI=<($5$l$F$$$-$^$9!#(B
+ $B2~D{$5$l$?%W%m%8%'%/%H%U%!%$%k$rDs6!$9$k%Q%C%A$r4sM?$9$k$H$-$O!"(B
+ Visual Studio6.0 $B%U%)!<%^%C%H$K%W%m%8%'%/%H$rLa$9%9%/%j%W%H(B
+ dsp5tocvs.pl $B$K$h$C$F$=$l$i$rJQ49$7$F$/$@$5$$!#(B</p>
+
+ <p>Apache.dsw $B5Z$S(B makefile.win $B$K$h$j%S%k%I$5$l$k%3%"$N(B .dsp
+ $B%W%m%8%'%/%H$O0J2<$NDL$j$G$9(B</p>
+
+ <ul>
+ <li><code>os\win32\ApacheOS.dsp</code></li>
+ <li><code>os\win32\Win9xConHook.dsp</code></li>
+ <li><code>regex\regex.dsp</code></li>
+ <li><code>ap\ap.dsp</code></li>
+ <li><code>lib\expat-lite\xmltok.dsp</code></li>
+ <li><code>lib\expat-lite\xmlparse.dsp <em>xmltok $B$,I,MW(B</em></code></li>
+ <li><code>lib\sdbm.dsp</code></li>
+ <li><code>main\gen_uri_delims.dsp</code></li>
+ <li><code>main\gen_test_char.dsp</code></li>
+ <li><code>ApacheCore.dsp <em>$B0J>eA4$F$,I,MW(B</em></code></li>
+ <li><code>Apache.dsp <em>ApacheCore $B$,I,MW(B</em></code></li>
+ </ul>
+
+ <p>$B$5$i$K(B <code>os\win32</code> $B%5%V%G%#%l%/%H%j$K$O!"(B
+ $B%*%W%7%g%s$N%b%8%e!<%k$9$Y$F$N%W%m%8%'%/%H%U%!%$%k$,4^$^$l$^$9!#(B
+ $B$3$l$i$O$9$Y$F(B ApacheCore $B$rI,MW$H$7$^$9!#(B
+ </p>
+
+ <ul>
+ <li><code>os\win32\mod_auth_anon.dsp</code></li>
+ <li><code>os\win32\mod_auth_dbm.dsp <em>sdbm $B$bI,MW(B</em></code></li>
+ <li><code>os\win32\mod_auth_digest.dsp</code></li>
+ <li><code>os\win32\mod_cern_meta.dsp</code></li>
+ <li><code>os\win32\mod_digest.dsp</code></li>
+ <li><code>os\win32\mod_expires.dsp</code></li>
+ <li><code>os\win32\mod_headers.dsp</code></li>
+ <li><code>os\win32\mod_info.dsp</code></li>
+ <li><code>os\win32\mod_mime_magic.dsp</code></li>
+ <li><code>os\win32\mod_proxy.dsp</code></li>
+ <li><code>os\win32\mod_rewrite.dsp</code></li>
+ <li><code>os\win32\mod_speling.dsp</code></li>
+ <li><code>os\win32\mod_status.dsp</code></li>
+ <li><code>os\win32\mod_unique_id.dsp</code></li>
+ <li><code>os\win32\mod_usertrack.dsp</code></li>
+ <li><code>os\win32\mod_vhost_alias.dsp</code></li>
+ </ul>
+
+ <p><code>support\</code> $B%U%)%k%@$O!"(BApache
+ $B%i%s%?%$%`$N0lIt$G$O$J$$$1$l$I$b!"%Q%9%o!<%I$H%m%0%U%!%$%k$r(B
+ $B4IM}$9$k$?$a$K!"4IM}<T$K$h$j;HMQ$5$l$kDI2C$N%W%m%0%i%`$N(B
+ $B%W%m%8%'%/%H%U%!%$%k$,4^$^$l$^$9!#(B</p>
+
+ <ul>
+ <li><code>support\htdigest.dsp</code></li>
+ <li><code>support\htpasswd.dsp</code></li>
+ <li><code>support\logresolve.dsp</code></li>
+ <li><code>support\rotatelogs.dsp</code></li>
+ </ul>
+
+ <p>Apache $B$,%3%s%Q%$%k$G$-$?$i%5!<%P!<%k!<%H%G%#%l%/%H%j$K%$%s%9%H!<%k(B
+ $B$9$kI,MW$,$"$j$^$9!#%G%U%)%k%H$O8=:_$N%O!<%I%G%#%9%/$N%G%#%l%/%H%j(B
+ <code>\Apache</code> $B$G$9!#(B</p>
+
+ <p>$B<+F0E*$K(B <code>c:\ServerRoot</code>
+ $B$K%U%!%$%k$r%$%s%9%H!<%k$9$k$K$O!"0J2<$N(B nmake
+ $B%3%^%s%I(B($B>eIt;2>H(B)$B$N$I$A$i$+$r;H$C$F$/$@$5$$!#(B</p>
+
+ <ul>
+ <li><code>nmake /f Makefile.win installr
+ INSTDIR=<em>c:\ServerRoot</em></code> ($B%j%j!<%9HG%S%k%IMQ(B)
+ </li>
+ <li><code>nmake /f Makefile.win installd
+ INSTDIR=<em>c:\ServerRoot</em></code> ($B%G%P%C%0HG%S%k%IMQ(B)</li>
+ </ul>
+
+ <p>INSTDIR $B$X$N(B<em>c:\ServerRoot</em>
+ $B0z?t$,%$%s%9%H!<%k%G%#%l%/%H%j$r;XDj$7$^$9(B (Apache $B$r(B <samp>\Apache</samp>
+ $B$K%$%s%9%H!<%k$9$k>l9g$O>JN,2D(B)$B!#(B</p>
+
+ <p>$B$3$l$K$h$j0J2<$,%$%s%9%H!<%k$5$l$^$9(B</p>
+
+ <ul>
+ <li><code><em>c:\ServerRoot</em>\Apache.exe</code> - Apache
+ $B%W%m%0%i%`(B</li>
+ <li><code><em>c:\ServerRoot</em>\ApacheCore.dll</code> -
+ Apache $B%i%s%?%$%`(B [$B6&M-%i%$%V%i%j(B]</li>
+ <li><code><em>c:\ServerRoot</em>\Win9xConHook.dll</code> -
+ Win9x console fixups [$B6&M-%i%$%V%i%j(B]</li>
+ <li><code><em>c:\ServerRoot</em>\xmlparse.dll</code> - XML
+ $B%Q!<%5(B [$B6&M-%i%$%V%i%j(B]</li>
+ <li><code><em>c:\ServerRoot</em>\xmltok.dll</code> - XML
+ $B%H!<%/%s%(%s%8%s(B [$B6&M-%i%$%V%i%j(B]</li>
+ <li><code><em>c:\ServerRoot</em>\bin\*.exe</code> -
+ $B4IM}MQ%W%m%0%i%`(B</li>
+ <li><code><em>c:\ServerRoot</em>\cgi-bin</code> - CGI
+ $B%9%/%j%W%H$NNc(B</li>
+ <li><code><em>c:\ServerRoot</em>\conf</code> - $B@_Dj%U%!%$%k(B
+ $B%G%#%l%/%H%j(B</li>
+ <li><code><em>c:\ServerRoot</em>\icons</code> - FancyIndexing
+ $BMQ$N%"%$%3%s(B</li>
+ <li><code><em>c:\ServerRoot</em>\include\*.h</code> - Apache
+ $B%X%C%@%U%!%$%k(B</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs</code> - $B$h$&$3$=!"$N(B
+ index.html $B%Z!<%8(B</li>
+ <li><code><em>c:\ServerRoot</em>\htdocs\manual</code> -
+ Apache $B%I%-%e%a%s%H(B</li>
+ <li><code><em>c:\ServerRoot</em>\lib</code> - $B@EE*%i%$%V%i%j(B
+ </li>
+ <li><code><em>c:\ServerRoot</em>\libexec</code> - $BF0E*%i%$%V%i%j(B
+ </li>
+ <li><code><em>c:\ServerRoot</em>\logs</code> - $B6u$N%m%0%G%#%l%/%H%j(B
+ </li>
+ <li><code><em>c:\ServerRoot</em>\modules\mod_*.dll</code> -
+ $B%m!<%I2DG=$J(B Apache $B%b%8%e!<%k(B</li>
+ </ul>
+
+ <p>$B$b$7(B nmake $B$r;}$C$F$$$J$$$+!"0c$&%G%#%l%/%H%j$K%$%s%9%H!<%k(B
+ $B$7$?$$>l9g$O!"I,$:F1MM$NL?L>BN7O$r;H$C$F$/$@$5$$!#(B</p>
+
+ <p>$B%W%m%;%9$N4JAG2=$N$?$a$9$Y$F$N%W%m%8%'%/%H$N4V$N0MB84X78$O(B
+ Microsoft Visual Studio workspace $B%U%!%$%k$K$*$$$FDj5A$5$l$F$$$^$9(B</p>
+<pre>
+ src/Apache.dsw
+</pre>
+
+ <p>$B$3$l$O!"$h$jDc0L$N%=!<%9$O(B Visual Studio
+ $BFb$G:F%S%k%I$5$l$k$3$H$rJ]>Z$7$^$9!#:G>e0L$N%W%m%8%'%/%H$O(B InstallBin
+ $B$G$"$j!"(BMakefile.win $B$r<B9T$7$F%3%s%Q%$%k$5$l$?<B9T%U%!%$%k$H(B dll
+ $B$r0\F0$7$^$9!#(BInstallBin $B$N!"!V@_Dj!W$+$i!"!V0lHL!W%?%V$K$"$k!"(B
+ $B!V%3%^%s%I%i%$%s!W%(%s%H%j$G(B INSTDIR= $B$rJQ99$9$k$3$H$,$G$-$^$9!#(B
+ InstallBin.dsp $B%W%m%8%'%/%HFb$N%G%U%)%k%H$O!"(Bsrc $B%D%j!<$+$i(B
+ 1 $B3,AX>e(B (..) $B$G$9!#(BInstallBin $B@_Dj$r=$@5$7!"(B
+ INSTDIR= $B$rL\E*$N%G%#%l%/%H%j$X$HJT=8$7$F$/$@$5$$!#(B
+ </p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis b/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis
index bd1a6a5a08e..1076383345a 100644
--- a/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/win_service.html.ja.jis
@@ -1,18 +1,17 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</title>
-</head>
-<!-- English revision:1.7 -->
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body
- bgcolor="#FFFFFF"
- text="#000000"
- link="#0000FF"
- vlink="#000080"
- alink="#FF0000"
->
- <div align="CENTER">
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</title>
+
+ </head>
+ <!-- English revision:1.9 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
<img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
<h3>Apache HTTP Server</h3>
@@ -20,130 +19,142 @@
-<h1 align="center">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</h1>
+ <h1 align="center">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</h1>
-<p>Windows NT/2000 $B$G$O(B Apache $B$r%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B
- (Apache 1.3.13 $B$G!"Hs>o$K<B83E*$K(B<a
-href="#win95svc">Windows 95/98</a> $B$K$*$$$F$bF1MM$NF0:n$r%5%]!<%H$r$9$k$h$&$K$J$j$^$7$?(B)$B!#(B</p>
+ <p>Windows NT/2000 $B$G$O(B Apache
+ $B$r%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B(Apache 1.3.13
+ $B$G!"Hs>o$K<B83E*$K(B<a href="#win95svc">Windows 95/98</a>
+ $B$K$*$$$F$bF1MM$NF0:n$r%5%]!<%H$r$9$k$h$&$K$J$j$^$7$?(B)$B!#(B</p>
-<p>$B%5!<%S%9$H$7$F(B Apache $B$r%$%s%9%H!<%k$9$k$?$a$K$O!"(B
-$B$&$^$/$$$1$P%3%^%s%I%i%$%s$G0lEY<B9T$9$l$P$$$$$G$9!#(B
-Apache $B$r%5!<%S%9$H$7$F%$%s%9%H!<%k$7$?$j!"F0$+$=$&$H$9$kA0$K(B <a
-href="windows.html">Microsoft Windows $B$G(B Apache $B$rF0$+$9(B</a>$B$r;2>H$7$F$/$@$5$$!#(B
-$B%3%^%s%I%i%$%s$G(B Apache $B$r5/F0$9$k$3$H$K$h$C$F!"(Bhttpd.conf $B%U%!%$%k$X$NJQ99$O$$$D$bH?1G$5$l$^$9!#(B
-$B$3$l$G$&$^$/$$$1$P!"%5!<%S%9$O@.8y$9$k$G$7$g$&!#(B</p>
+ <p>$B%5!<%S%9$H$7$F(B Apache $B$r%$%s%9%H!<%k$9$k$K$O!"(B
+ $B%3%s%=!<%k%&%#%s%I%&$G$?$C$?0lEY$3$N<B9T$,@.8y$G$-$l$P$$$$$O$:$G$9!#(B
+ Apache $B$r%5!<%S%9$H$7$F%$%s%9%H!<%k$7$?$j!"F0$+$=$&$H$9$kA0$K(B <a
+ href="windows.html">Microsoft Windows $B$G(B Apache $B$rF0$+$9(B</a>
+ $B$r;2>H$7$F$/$@$5$$!#(Bhttpd.conf $B%U%!%$%k$X$NJQ99$O%3%s%=!<%k%&%#%s%I%&$G(B
+ Apache $B$r5/F0$9$k$3$H$K$h$j!"$$$D$bH?1G$5$l$^$9!#(B
+ $B$3$l$G$&$^$/$$$1$P!"%5!<%S%9$O@.8y$9$k$G$7$g$&!#(B</p>
-<p><strong>$BCm0U(B:
-$B%P!<%8%g%s(B 1.3.13 $B$h$jA0$G$O$3$N@_Dj$O(B<em>$B%F%9%H$5$l$F$$$^$;$s(B</em></strong>$B!#(B
-$B$=$7$FD4@0ITB-$,860x$G!"%3%^%s%I%i%$%s$G$O$7$P$7$P$&$^$/$$$-$^$9$,!"(B
-$B%5!<%S%9$O$^$@<:GT$7$^$9!#(BApache $B$N(B 1.3.13 $B$h$jA0$N%P!<%8%g%s$rF0$+$9$H$-$K(B
-$BLdBj$,$"$k$J$i$P!"(B<a href="#service">$B8e=R$N@bL@(B</a>$B$r;2>H$7$F$/$@$5$$!#(B
-$B%P!<%8%g%s(B 1.3.13 $B0J9_$G$3$NLdBj$,$"$k$J$i!"$^$::G=i$K(B Apache $B$r(B
-$B%"%s%$%s%9%H!<%k(B (-u) $B$7$F$+$i:F%$%s%9%H!<%k(B (-i) $B$r;n$7$F$_$F$/$@$5$$(B</p>
-
-<hr>
+ <p><strong>$BCm0U(B: $B%P!<%8%g%s(B 1.3.13 $B$h$jA0$G$O%$%s%9%H!<%k<B9TA0$K(B
+ $B@_Dj$O(B<em>$B%F%9%H$5$l$^$;$s(B</em></strong>$B!#%5!<%S%9$N0MB8@-$NITB-$,(B
+ $B860x$G!"%3%s%=!<%k%&%#%s%I%&$G$O$7$P$7$P$&$^$/$$$-$^$9$,!"(B
+ $B%5!<%S%9$O$^$@<:GT$7$^$9!#(BApache $B$N(B 1.3.13 $B$h$jA0$N%P!<%8%g%s$r(B
+ $BF0$+$9$H$-$KLdBj$,$"$k$J$i$P!"(B<a href="#service">$B8e=R$N@bL@(B</a>
+ $B$r;2>H$7$F$/$@$5$$!#%P!<%8%g%s(B 1.3.13 $B0J9_$G$3$NLdBj$,$"$k$J$i!"(B
+ $B$^$::G=i$K(B Apache $B$r%"%s%$%s%9%H!<%k(B (-u) $B$7$F$+$i:F%$%s%9%H!<%k(B
+ (-i) $B$r;n$7$F$_$F$/$@$5$$!#(B
+ $B$b$C$H$h$$<jCJ$O:G?7$N%P!<%8%g%s$K%"%C%W%0%l!<%I$9$k$3$H$G$9!#(B</p>
+ <hr />
-<p>Apache $B$r%5!<%S%9$H$7$F3+;O$9$k$?$a$K$O!":G=i$K%5!<%S%9$H$7$F%$%s%9%H!<%k$9$kI,MW$,$"$j$^$9!#(B
-$B$=$l$>$lJL$NL>A0$H@_Dj$K$9$k$3$H$G(B Apache $B%5!<%S%9$rJ#?t%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B
-$B%G%U%)%k%H$N(B "Apache" $B$H$$$&L>A0$G(B Apache $B%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"(B
-$B%9%?!<%H%a%K%e!<$+$i(B "Install Apache as Service" $B%*%W%7%g%s$r<B9T$7$F$/$@$5$$!#(B
-$B$3$l$r0lEY9T$J$($P!"(B($B%3%s%H%m!<%k%Q%M%k$N(B) $B%5!<%S%9%&%#%s%I%&$r3+$$$F!"(B
-Apache $B$rA*Br$7$F!"<!$K(B Start $B$r%/%j%C%/$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O$G$-$^$9!#(B
-$B$3$l$G(B Apache $B$O%P%C%/%0%i%&%s%I$GF0$-$^$9!#(B
-$B$=$N8e$O(B Stop $B$r%/%j%C%/$9$k$3$H$G!"(BApache $B$r=*N;$G$-$^$9!#(B
-$B%5!<%S%9%&%#%s%I%&$r;H$&Be$o$j$K!"%3%^%s%I%i%$%s$+$i!"(B
+ <p>Apache $B$r%5!<%S%9$H$7$F3+;O$9$k$?$a$K$O!"$^$::G=i$K%5!<%S%9$H$7$F(B
+ $B%$%s%9%H!<%k$9$kI,MW$,$"$j$^$9!#$=$l$>$lJL$NL>A0$H@_Dj$r;H$C$F!"(B
+ Apache $B%5!<%S%9$rJ#?t%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#%G%U%)%k%H$N(B
+ "Apache" $B$H$$$&L>A0$G(B Apache $B%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"%9%?!<%H(B
+ $B%a%K%e!<$+$i(B "Install Apache as Service" $B%*%W%7%g%s$r<B9T$7$F$/$@$5$$!#(B
+ $B$3$l$r0lEY9T$J$($P!"(B($B%3%s%H%m!<%k%Q%M%kCf$N(B) $B%5!<%S%9%&%#%s%I%&(B
+ $B!J(BWindows 2000$B$G$O4IM}%D!<%k$NCf$K$"$j$^$9!K$r3+$$$F!"(BApache $B$rA*Br$7$F!"(B
+ $B<!$K(B Start $B$r%/%j%C%/$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O$G$-$^$9!#(B
+ $B$3$l$G(B Apache $B$O%P%C%/%0%i%&%s%I$GF0$-$^$9!#(B
+ $B$=$N8e$O(B Stop $B$r%/%j%C%/$9$k$3$H$G!"(BApache $B$r=*N;$G$-$^$9!#(B
+ $B%5!<%S%9%&%#%s%I%&$r;H$&Be$o$j$K!"%3%^%s%I%i%$%s$+$i!"(B
+ $B0J2<$r<B9T$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O!"=*N;$G$-$^$9!#(B</p>
<pre>
NET START APACHE
NET STOP APACHE
</pre>
-$B$H$9$k$3$H$G!"(B"Apache" $B%5!<%S%9$r3+;O!"=*N;$G$-$^$9!#(B</p>
-
-<p>Apache $B%5!<%S%9$N%$%s%9%H!<%k$H%3%s%H%m!<%k$K4X$9$k$5$i$J$k>pJs$O!"(B<a href="#signal">
-Apache $B%5!<%S%9$N%3%s%H%m!<%k(B</a>$B$r;2>H$7$F$/$@$5$$!#(B</p>
-
-<p><strong>Apache $B$O!"B>$NB?$/$N(B Windows NT/2000 $B$N%5!<%S%9$H0[$J$j!"(B
-$B$[$H$s$I$N%(%i!<$OFH<+$K(B Apache $B$N%5!<%P%k!<%H$N(B logs $B%U%)%k%@$K$"$k(B
-error.log $B%U%!%$%k$K5-O?$7$^$9!#$[$H$s$I$N(B Apache $B$N%(%i!<$K4X$9$k>\:Y$O(B
-Windows NT $B$N%$%Y%s%H%m%0$G$OJ,$+$i$J$$$G$7$g$&!#(B
-Apache $B$r5/F0$7$h$&$H$7$?$H$-$KH/@8$7$?%(%i!<$@$1$,%$%Y%s%H%m%0$K5-O?$5$l$^$9!#(B</strong></p>
-
-<p>Apache $B$r%5!<%S%9$H$7$F3+;O$7$?8e(B ($B$^$?$O!"$=$l$r;O$a$k$3$H$KLdBj$,$"$l$P(B)$B!"(B
-$B%3%^%s%I%i%$%s$+$iF1$8(B<a href="windows.html#test">$B<j=g(B</a>$B$G%F%9%H$G$-$^$9!#(B
-$B%G%U%)%k%H$N%5!<%S%9@_Dj$r3NG'$9$k$?$a$K$O!"$3$N%3%^%s%I(B:</p>
-
+ <p>Apache $B%5!<%S%9$N%$%s%9%H!<%k$H%3%s%H%m!<%k$K4X$9$k$5$i$J$k>pJs$O!"(B
+ <a href="#signal">Apache $B%5!<%S%9$N%3%s%H%m!<%k(B</a>$B$r;2>H$7$F$/$@$5$$!#(B
+ </p>
+
+ <p><strong>Apache $B$O!"B>$NB?$/$N(B Windows NT/2000 $B$N%5!<%S%9$H0[$J$j!"(B
+ $B$[$H$s$I$N%(%i!<$OFH<+$K(B Apache $B$N%5!<%P%k!<%H$N(B logs $B%U%)%k%@$K$"$k(B
+ error.log $B%U%!%$%k$K5-O?$7$^$9!#$[$H$s$I$N(B Apache $B$N%(%i!<$K4X$9$k(B
+ $B>\:Y$O(BWindows NT $B$N%$%Y%s%H%m%0$G$OJ,$+$i$J$$$G$7$g$&!#(BApache
+ $B$r5/F0$7$h$&$H$7$?$H$-$KH/@8$7$?%(%i!<$@$1$,%$%Y%s%H%m%0$K5-O?$5$l$^$9!#(B
+ </strong></p>
+
+ <p>Apache $B$r%5!<%S%9$H$7$F3+;O$7$?8e(B ($B$^$?$O!"3+;O$9$k$3$H$KLdBj$,(B
+ $B$"$l$P(B)$B!"%3%s%=!<%k%&%#%s%I%&$+$iF1$8(B<a href="windows.html#test">$B<j=g(B</a>
+ $B$G%F%9%H$G$-$^$9!#%G%U%)%k%H$N%5!<%S%9@_Dj$r3NG'$9$k$?$a$K$O!"(B
+ $B$3$N%3%^%s%I(B:</p>
<pre>
apache -n "service name"
</pre>
-<p>$B$r;H$&$3$H$r3P$($F$*$$$F$/$@$5$$!#(B</p>
+ <p>$B$r;H$&$3$H$r3P$($F$*$$$F$/$@$5$$!#(B</p>
-<h2><a name="service">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$FF0$+$9(B</a></h2>
-<p><strong>$BCm0U(B: $B%5!<%S%9L>$r;XDj$9$k(B -n $B%*%W%7%g%s$O(B Apache 1.3.7 $B0J9_$GMxMQ2DG=$G$9!#(B</strong>
-$B0JA0$N%P!<%8%g%s$N(B Apache $B$G$O!"%G%U%)%k%H$N%5!<%S%9L>(B 'Apache' $B$@$1$,%5%]!<%H$5$l$F$$$^$9!#(B</p>
+ <h2><a id="service" name="service">Windows $B$G(B Apache $B$r%5!<%S%9$H$7$F(B
+ $BF0$+$9(B</a></h2>
-<p>$B0J2<$N$h$&$K$9$k$3$H$G!"(BApache $B$r(B Windows NT $B%5!<%S%9$H$7$F%$%s%9%H!<%k$G$-$^$9(B:</p>
+ <p><strong>$BCm0U(B: $B%5!<%S%9L>$r;XDj$9$k(B -n $B%*%W%7%g%s$O(B Apache 1.3.7
+ $B0J9_$G$N$_MxMQ2DG=$G$9!#(B</strong> $B0JA0$N%P!<%8%g%s$N(B Apache $B$G$O!"(B
+ $B%G%U%)%k%H$N%5!<%S%9L>(B 'Apache' $B$@$1$,%5%]!<%H$5$l$F$$$^$9!#(B
+ $B%P!<%8%g%s(B 1.3.21 $B$K8B$j!"(BWindows 2000 $B$G%5!<%S%9L>$H$7$FI=<($5$l$k(B
+ $BL>A0$NJQ99$,%5%]!<%H$5$l$F$$$^$9!#(B</p>
+ <p>$B0J2<$N$h$&$K$9$k$3$H$G!"(BApache $B$r(B Windows NT $B$N%5!<%S%9$H$7$F(B
+ $B%$%s%9%H!<%k$G$-$^$9(B:</p>
<pre>
apache -i -n "service name"
</pre>
-<p>$BFCDj$N@_Dj$r;H$C$F%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"(B
-$B%$%s%9%H!<%k$N:]$K@_Dj%U%!%$%k$r;XDj$7$F$/$@$5$$(B:</p>
+ <p>$BFCDj$N@_Dj$r;H$C$F%5!<%S%9$r%$%s%9%H!<%k$9$k$K$O!"(B
+ $B%$%s%9%H!<%k$N:]$K@_Dj%U%!%$%k$r;XDj$7$F$/$@$5$$(B:</p>
<pre>
apache -i -n "service name" -f "\my server\conf\my.conf"
</pre>
-<p>$B%5!<%P%k!<%H%G%#%l%/%H%j$r%G%U%)%k%H$+$iJQ99$9$k$?$a$N(B -d$B!"(B
- $B@_Dj%U%!%$%k$rJQ99$9$k$?$a$N(B -D, -C $B$d(B -c $B$J$I!"$=$NB>$NB0@-$O>JN,$G$-$^$9!#(B
- $B$3$l$i$,%l%8%9%H%j$K=q$-9~$^$l$F$$$FJQ99$,:$Fq$J$H$-$O!"(B
- $B$3$N%3%^%s%I$r;H$C$F%*%W%7%g%s$r%/%j%"$7!"?7$7$$%*%W%7%g%s$KCV$-49$($^$9!#(B
-</p>
-
+ <p>$B%5!<%P%k!<%H%G%#%l%/%H%j$r%G%U%)%k%H$+$iJQ99$9$k$?$a$N(B -d$B!"(B
+ $B@_Dj%U%!%$%k$rJQ99$9$k$?$a$N(B -D, -C $B$d(B -c $B$J$I!"$=$NB>$NB0@-$O(B
+ $B>JN,$G$-$^$9!#$3$l$i$,%l%8%9%H%j$K=q$-9~$^$l$F$$$FJQ99$,:$Fq$J$H$-$O!"(B
+ $B$3$N%3%^%s%I$r;H$C$F%*%W%7%g%s$r%/%j%"$7!"?7$7$$%*%W%7%g%s$KCV$-49$($^$9!#(B
+ </p>
<pre>
apache -k config -n "service name" -f "\my server\conf\my.conf"
</pre>
-<p>Apache $B%5!<%S%9$r:o=|$9$k$K$O!"0J2<$N$h$&$K$7$^$9(B:</p>
-
+ <p>Apache $B%5!<%S%9$r:o=|$9$k$K$O!"0J2<$N$h$&$K$7$^$9(B:</p>
<pre>
apache -u -n "service name"
</pre>
-<p>$B%5!<%S%9L>$,;XDj$5$l$J$$>l9g$N%G%U%)%k%H$N!V%5!<%S%9L>!W$O(B "Apache" $B$H$J$j$^$9!#(B</p>
+ <p>$B%5!<%S%9L>$,;XDj$5$l$J$$>l9g$N%G%U%)%k%H$N!V%5!<%S%9L>!W$O(B
+ "Apache" $B$H$J$j$^$9!#(B</p>
-<p>$B%5!<%S%9$,%$%s%9%H!<%k$5$l$k$H!"(B
-$B%5!<%S%9$N@_Dj%U%!%$%k$r<($9$N$KB>$N%*%W%7%g%s$HF1;~$K(B
-<samp>-n</samp> $B%*%W%7%g%s$r;HMQ$9$k$3$H$,$G$-$^$9!#Nc(B:</p>
+ <p>$B%5!<%S%9$,%$%s%9%H!<%k$5$l$k$H!"%5!<%S%9$N@_Dj%U%!%$%k$r<($9$N$K(B
+ $BB>$N%*%W%7%g%s$HF1;~$K(B <samp>-n</samp> $B%*%W%7%g%s$r;HMQ$9$k$3$H$,(B
+ $B$G$-$^$9!#Nc(B:</p>
-<p>$B%5!<%S%9$N@_Dj%U%!%$%k$r%F%9%H$7$F!"%5!<%S%9$N%G%U%)%k%H$N%*%W%7%g%s$r3NG'$9$k$K$O(B
-$B<!$N$h$&$K$7$^$9(B:</p>
+ <p>$B%5!<%S%9$N@_Dj%U%!%$%k$r%F%9%H$7$F!"%5!<%S%9$N%G%U%)%k%H$N(B
+ $B%*%W%7%g%s$r3NG'$9$k$K$O<!$N$h$&$K$7$^$9!J@_Dj$K$O(B -i, -k install,
+ -k config $B%*%W%7%g%s$r;H$$$^$9(B) $BNc(B:</p>
<pre>
apache -n "service name" -t
</pre>
-<p>$B%5!<%S%9$N@_Dj%U%!%$%k$H%G%U%)%k%H$N%*%W%7%g%s$r;HMQ$7$F!"(B
- $B%3%s%=!<%k$+$i(B Apache $B$r5/F0$9$k$K$O<!$N$h$&$K$7$^$9(B:</p>
+ <p>$B%5!<%S%9$N@_Dj%U%!%$%k$H%G%U%)%k%H$N%*%W%7%g%s$r;HMQ$7$F!"(B
+ $B%3%s%=!<%k$+$i(B Apache $B$r5/F0$9$k$K$O<!$N$h$&$K$7$^$9(B:</p>
<pre>
apache -n "service name"
</pre>
-<p>Apache $B%j%j!<%9(B 1.3.15 $B$G(B -k install $B%*%W%7%g%s$,(B -i $B%*%W%7%g%s$N!"(B
- $B$^$?!"(B-k uninstall $B%*%W%7%g%s$,(B -u $B%*%W%7%g%s$NJLL>$H$7$FDI2C$5$l$^$7$?!#(B
- $B85$N(B -i $B$=$7$F(B -u $B%*%W%7%g%s$O(B Apache 2.0 $B$G$O;HMQ$7$J$$$h$&$K$7$F$/$@$5$$!#(B
- $B$3$l$i$NJLL>$O!"N>J}$N%P!<%8%g%s$r1?MQ$9$k4IM}<T$,(B ($BLuCm(B: Apache 2.0 $B$K(B)
- $B0\9T$7$d$9$/$9$k$?$a$KDI2C$5$l$^$7$?!#(B</p>
-
-<h2><a name="depends">$B%5!<%S%9$N0MB8$K4X$9$k=EMW$JN10UE@(B</a></h2>
+ <p>Apache $B%j%j!<%9(B 1.3.15 $B$G(B -k install $B%*%W%7%g%s$,(B -i $B%*%W%7%g%s$N!"(B
+ $B$^$?!"(B-k uninstall $B%*%W%7%g%s$,(B -u $B%*%W%7%g%s$NJLL>$H$7$FDI2C$5$l$^$7$?!#(B
+ $B85$N(B -i $B$=$7$F(B -u $B%*%W%7%g%s$O(B Apache 2.0 $B$G$O;HMQ$7$J$$$h$&$K$7$F$/$@$5$$!#(B
+ $B$3$l$i$NJLL>$O!"N>J}$N%P!<%8%g%s$r1?MQ$9$k4IM}<T$,(B ($BLuCm(B: Apache 2.0 $B$K(B)
+ $B0\9T$7$d$9$/$9$k$?$a$KDI2C$5$l$^$7$?!#(B</p>
-<p>$B%j%j!<%9(B 1.3.13 $B0JA0$N(B Apache $B$G$O!"%$%s%9%H!<%k$5$l$?%5!<%S%9$,(B
-$B$&$^$/3+;O$9$k$3$H$,A0Ds>r7o$H$J$k0MB84X78$O9=@.$5$l$^$;$s!#(B
-Apache $B$N0JA0$N%P!<%8%g%s$r;HMQ$7$F%5!<%S%9$r%$%s%9%H!<%k$7$?8e$K!"(B
-$B0J2<$N<j=g$rF'$^$J$1$l$P$J$j$^$;$s(B :
+ <h2><a id="depends" name="depends">$B%5!<%S%9$N0MB8$K4X$9$k=EMW$JN10UE@(B</a>
+ </h2>
-<pre> Run regedt32
+ <p>$B%j%j!<%9(B 1.3.13 $B0JA0$N(B Apache $B$G$O!"%$%s%9%H!<%k$5$l$?%5!<%S%9$,(B
+ $B$&$^$/3+;O$9$k$3$H$,A0Ds>r7o$H$J$k0MB84X78$O9=@.$5$l$^$;$s!#(B
+ Apache $B$N0JA0$N%P!<%8%g%s$r;HMQ$7$F%5!<%S%9$r%$%s%9%H!<%k$7$?8e$K!"(B
+ $B0J2<$N<j=g$rF'$^$J$1$l$P$J$j$^$;$s(B : </p>
+<pre>
+ Run regedt32
Select <u>W</u>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu
Double-click to open the SYSTEM, then the CurrentControlSet keys
Scroll down and click on the Apache servicename
@@ -164,114 +175,164 @@ Apache $B$N0JA0$N%P!<%8%g%s$r;HMQ$7$F%5!<%S%9$r%$%s%9%H!<%k$7$?8e$K!"(B
and click OK
</pre>
+ <p>$B$^$?!"%5!<%I%Q!<%F%#!<$N%b%8%e!<%k!"(BISAPI$B!"$=$NB>(B ActiveState Perl
+ $B$J$I$K$h$k!"(BCOM $B$d(B DCOM $B$N9=@.MWAG$r;HMQ$7$F$$$k$J$i$P!"(BDependOnService
+ $B%j%9%H$K(B Rpcss $B$N%(%s%H%j!<$rDI2C$9$kI,MW$,$"$k$+$b$7$l$^$;$s!#(B
+ $B$=$l$,ITMW$J>l9g$K!"(BTCP $B%]!<%H(B 135 $B$rO*=P$9$k$N$rHr$1$k$?$a$K!"(B
+ Apache $B$O%$%s%9%H!<%k$N$H$-$K$=$N%(%s%H%j!<$r:n@.$7$^$;$s!#(B
+ $B>e$N;X<($K=>$C$F!"(BDependOnService $BCM$r3NG'!"$^$?$O:n@.$7$F$/$@$5$$!#(B
+ $B4{$KB8:_$7$F$$$k$J$i$P$=$NCM$r%@%V%k%/%j%C%/$7$F!"(BRpcss $B$N%(%s%H%j!<$r(B
+ $B%j%9%H$KDI2C$7$F$/$@$5$$!#(B</p>
+
+ <p>$B0MB8@-$N$?$a$^$@B>$K2?$+%$%s%9%H!<%k$,MW5a$5$l$k$+$b$7$l$^$;$s!#(B
+ $B3+;O;~$K%M%C%H%o!<%/%I%i%$%V>e$KB8:_$9$k%U%!%$%k$rMW5a$5$l$k>l9g!"(B
+ $B$^$::G=i$K%M%C%H%o!<%/%j%@%$%l%/%?(B($BDL>o(B lanmanworkstation)
+ $B$N0MB8@-$K4X$o$k%5!<%S%9$r@_Dj$7$F!"(B" $B%f!<%6%"%+%&%s%H$G(B Apache
+ $B$rF0$+$9(B " $B%;%/%7%g%s0J2<$N@bL@$K=>$C$F$/$@$5$$(B</p>
+
+ <p>IIS $B$H(B Apache $B$NN>J}$r;H$*$&$H$9$k$J$i!"0[$J$k(B IP
+ $B%"%I%l%9$NF1$8%]!<%HHV9f$G(B W3SVC (IIS) $B$r(B Apache
+ $B$NA0$K3+;O$5$;$F$*$/I,MW$,$"$j$^$9!#$J$<$J$i!"(BApache $B$,@h$KFCDj$N(B
+ IP $B%"%I%l%9$G3+;O$7$F$$$k$H!"(BIIS $B$O3+;O$9$k$H$-$KA4$F$N(B IP $B%"%I%l%9(B
+ (0.0.0.0) $B$r3NJ]$7$h$&$H$7$F<:GT$9$k$+$i$G$9!#(B</p>
+
+ <p>Apache 1.3.21 $B$G0MB8@-$r2C$($k$O$k$+$KC1=c$JJ}K!$,F3F~$5$l$^$7$?!#(B
+ -W "$B%5!<%S%9L>(B" $B0z?t$O(B Apache $B$N0MB8@-$r@_Dj$9$k(B -k install $B$d(B
+ -k config $B%3%^%s%I$K5!G=$rIU$12C$($^$9!#J#?t$N(B -W
+ $B0z?t$,M?$($i$l$^$9$,!"$9$Y$F(B -k $B%*%W%7%g%s$N8e$m$G;XDj$9$k$Y$-$G$9!#(B
+ $BNc$($P!"%$%s%9%H!<%k:Q$_$N(B "Apache" $B%5!<%S%9$K(B LanmanWorkstation
+ $B0MB8@-$r2C$($k$J$i!"$3$N%3%^%s%I$r;H$$$^$9!#(B</p>
+<pre>
+ apache -k config -n Apache -W LanmanWorkstation
+</pre>
-<p>$B$^$?!"%5!<%I%Q!<%F%#!<$N%b%8%e!<%k!"(BISAPI$B!"$=$NB>(B ActiveState Perl$B$J$I$K$h$k!"(B
- COM $B$d(B DCOM $B$N9=@.MWAG$r;HMQ$7$F$$$k$J$i$P!"(BDependOnService $B%j%9%H$K(B
- Rpcss $B$N%(%s%H%j!<$rDI2C$9$kI,MW$,$"$k$+$b$7$l$^$;$s!#(B
- $B$=$l$,ITMW$J>l9g$K!"(BTCP $B%]!<%H(B 135 $B$rO*=P$9$k$N$rHr$1$k$?$a$K!"(B
- Apache $B$O%$%s%9%H!<%k$N$H$-$K$=$N%(%s%H%j!<$r:n@.$7$^$;$s!#(B
- $B>e$N;X<($K=>$C$F!"(BDependOnService $BCM$r3NG'!"$^$?$O:n@.$7$F$/$@$5$$!#(B
- $B4{$KB8:_$7$F$$$k$J$i$P$=$NCM$r%@%V%k%/%j%C%/$7$F!"(BRpcss $B$N%(%s%H%j!<$r(B
- $B%j%9%H$KDI2C$7$F$/$@$5$$!#(B</p>
-
-<h2>$B%f!<%6%"%+%&%s%H$G(B Apache $B$rF0$+$9(B (NT/2000)</h2>
-
-<p>Apache $B$,:G=i$K%5!<%S%9(B ( $BNc$($P!"(B-i $B%*%W%7%g%s(B ) $B$H$7$F%$%s%9%H!<%k$5$l$k$H$-!"(B
- "System" $B$H$$$&%f!<%6(B (LocalSystem $B%"%+%&%s%H(B ) $B$GF0:n$9$k$G$7$g$&!#(B
- $B$b$7(B web $B%5!<%P$N$9$Y$F$N%j%=!<%9$,%m!<%+%k%7%9%F%`>e$K$"$k$J$i(B
- $B$[$H$s$ILdBj$"$j$^$;$s$,!"(B(LocalSystem $B%"%+%&%s%H(B ) $B$O%m!<%+%k%^%7%s$K(B
- $B1F6A$rM?$($kI}9-$$%;%-%e%j%F%#FC8"$r;}$C$F$$$^$9!#(B</p>
-<blockquote>
- LocalSystem $B$O6I=jE*$KHs>o$KFC8"%"%+%&%s%H$J$N$G!"(B
- $B$I$s$J%7%'%"%&%'%"%"%W%j%1!<%7%g%s$b$=$3$GF0:n$5$;$k$Y$-$G$O(B
- $B$"$j$^$;$s!#$7$+$7$J$,$i!"$=$l$O%M%C%H%o!<%/FC8"$r;}$?$J$/$F!"(B
- NT $B$N5!L)J];}5!G=!"%U%!%$%k%7%9%F%`!"%Q%$%W!"(BDCOM $B!"%;%-%e%"(B RPC $B$r4^$a$F(B
- $B$=$N$^$^$K$7$F$*$/$3$H$O$G$-$^$;$s(B
-</blockquote>
-
-<p><strong>$B7h$7$F%7%9%F%`%"%+%&%s%H$K%M%C%H%o!<%/FC8"$rM?$($F$O$$$1$^$;$s(B !</strong>
- $BBe$o$j$K?7$7$$%f!<%6%"%+%&%s%H$r:n@.$7$F!"$=$N%f!<%6$KE,@Z$J8"8B$rM?$($F!"(B
- 'Log On As' $B$H$$$&%*%W%7%g%s$r;H$C$F$/$@$5$$!#%9%?!<%H%a%K%e!<(B -&gt; $B@_Dj(B
- -&gt; $B%3%s%H%m!<%k%Q%M%k(B -&gt; $B%5!<%S%9(B -&gt; Apache Service $B$HA*Br$7$F!"(B
- $B!V%9%?!<%H%"%C%W!W%\%?%s$r%/%j%C%/$7$F!"$3$N@_Dj$K%"%/%;%9$7$F$/$@$5$$!#(B</p>
-
-<blockquote>
- $B%5!<%S%9$O(B SCM $B4XO"$N%;%-%e%j%F%#$r(B LocalSystem $B%"%+%&%s%H$K(B
- $B0z$-7Q$$$GF0:n$7$^$9!#%5!<%S%9$O$I$N%f!<%6%"%+%&%s%H$H$b(B
- $B4XO"$E$1$i$l$J$/$F!"$^$?%Y%j%U%!%$$K;HMQ$5$l$k$Y$->ZL@(B
- ( $B%I%a%$%sL>!"%f!<%6L>!"%Q%9%o!<%I(B ) $B$r;}$A$^$;$s!#(B
-</blockquote>
-
-<p>SYSTEM $B%"%+%&%s%H$O%M%C%H%o!<%/$KFC8"$r;}$?$J$$$N$G!"6&M-$5$l$?%Z!<%8$d(B
- $B6&M-$5$l$?%$%s%9%H!<%k$O%5!<%S%9$+$i$O8+$($^$;$s!#(B
- $B$"$J$?$,(B<em>$B$I$s$J(B</em>$B%M%C%H%o!<%/%j%=!<%9$b;HMQ$9$k$D$b$j$G$"$k$J$i$P!"(B
- $B0J2<$N%9%F%C%W$OLr$KN)$D$+$b$7$l$^$;$s(B</p>
-<ul>
- <li>Control Panel $B$N(B Service $B%@%$%"%m%0$+$i(B Apache $B$rA*Br$7$F!"(BStartup $B$r%/%j%C%/$7$^$9!#(B
- <li>$B%5!<%S%9%"%+%&%s%H$,@5$7$$$3$H$r3NG'$7$F$/$@$5$$!#(B
- Apache $B%5!<%S%9MQ$N%"%+%&%s%H$r:n@.$9$k$3$H$b$h$$J}K!$G$9!#(B
- <li>$B%Q%9%o!<%I$r7+$jJV$7F~NO$7$F%Q%9%o!<%I3NG'$r$7$^$9!#(B
- <li>$B%I%a%$%s$N%f!<%6%^%M!<%8%c$K9T$C$F$/$@$5$$!#(B
- <li>$B%?%$%H%k%P!<%a%K%e!<$+$i(B Policies $B$r%/%j%C%/$7$F!"(BUser Rights $B$rA*Br$7$F$/$@$5$$!#(B
- <li>Advanced User Rights $B$N%*%W%7%g%s$rA*Br$7$F$/$@$5$$!#(B
- <li>$B%I%m%C%W%@%&%s%j%9%HCf$G!"A*Br$5$l$?%"%+%&%s%H$K0J2<$N8"8B$,(B
- $BM?$($i$l$?$3$H$r3NG'$7$F$/$@$5$$!#(B
- <ul>
- <li>Act as part of the operating system
- <li>Back up files and directories
- <li>Log on as a service
- <li>Restore files and directories
- </ul>
- <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Users $B%0%k!<%W$N%a%s%P$G$"$k$3$H$r3NG'$7$F$/$@$5$$!#(B
- <li>$BA*Br$5$l$?%"%+%&%s%H$,$9$Y$F$N%I%-%e%a%s%H$H%9%/%j%W%H%G%#%l%/%H%j$K(B
- $B%"%/%;%9$9$k<jCJ(B ($B:GDc8BFI$_9~$_$H%V%i%&%:(B) $B$r;}$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B
- <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Apache logs $B%G%#%l%/%H%j$KBP$7$FFI$_=q$-!"(B
- $B:o=|$9$k<jCJ$r;}$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B</li>
-</ul>
+ <h2>$B%f!<%6%"%+%&%s%H$G(B Apache $B$rF0$+$9(B (NT/2000)</h2>
+
+ <p>Apache $B$,:G=i$K%5!<%S%9(B ( $BNc$($P!"(B-i $B%*%W%7%g%s(B ) $B$H$7$F%$%s%9%H!<%k$5$l$k$H$-!"(B
+ "System" $B$H$$$&%f!<%6(B (LocalSystem $B%"%+%&%s%H(B ) $B$GF0:n$9$k$G$7$g$&!#(B
+ $B$b$7(B web $B%5!<%P$N$9$Y$F$N%j%=!<%9$,%m!<%+%k%7%9%F%`>e$K$"$k$J$i(B
+ $B$[$H$s$ILdBj$"$j$^$;$s$,!"(B(LocalSystem $B%"%+%&%s%H(B ) $B$O%m!<%+%k%^%7%s$K(B
+ $B1F6A$rM?$($kI}9-$$%;%-%e%j%F%#FC8"$r;}$C$F$$$^$9!#(B</p>
+
+ <blockquote>
+ LocalSystem $B$O6I=jE*$KHs>o$KFC8"%"%+%&%s%H$J$N$G!"(B
+ $B$I$s$J%7%'%"%&%'%"%"%W%j%1!<%7%g%s$b$=$3$GF0:n$5$;$k$Y$-$G$O(B
+ $B$"$j$^$;$s!#$7$+$7$J$,$i!"$=$l$O%M%C%H%o!<%/FC8"$r;}$?$J$/$F!"(B
+ NT $B$N5!L)J];}5!G=!"%U%!%$%k%7%9%F%`!"%Q%$%W!"(BDCOM $B!"%;%-%e%"(B RPC $B$r4^$a$F(B
+ $B$=$N$^$^$K$7$F$*$/$3$H$O$G$-$^$;$s(B
+ </blockquote>
+
+ <p><strong>$B7h$7$F%7%9%F%`%"%+%&%s%H$K%M%C%H%o!<%/FC8"$rM?$($F$O(B
+ $B$$$1$^$;$s(B !</strong> $BBe$o$j$K?7$7$$%f!<%6%"%+%&%s%H$r:n@.$7$F!"(B
+ $B$=$N%f!<%6$KE,@Z$J8"8B$rM?$($F!"(B'Log On As' $B$H$$$&%*%W%7%g%s$r(B
+ $B;H$C$F$/$@$5$$!#%9%?!<%H%a%K%e!<(B -&gt; $B@_Dj(B -&gt; $B%3%s%H%m!<%k%Q%M%k(B
+ -&gt; $B%5!<%S%9(B -&gt; Apache Service $B$HA*Br$7$F!"!V%9%?!<%H%"%C%W!W(B
+ $B%\%?%s$r%/%j%C%/$7$F!"$3$N@_Dj$K%"%/%;%9$7$F$/$@$5$$!#(B</p>
+
+ <blockquote>
+ LocalSystem $B%"%+%&%s%H$N4D6-$GF0:n$9$k%5!<%S%9$O(B SCM
+ $B4XO"$N%;%-%e%j%F%#4D6-$r0z$-7Q$.$^$9!#(B
+ $B%5!<%S%9$O$I$N%f!<%6%"%+%&%s%H$H$b4XO"$E$1$i$l$:!"(B
+ $B$^$?3NG'$K;HMQ$5$l$k$Y$->ZL@(B ( $B%I%a%$%sL>!"%f!<%6L>!"%Q%9%o!<%I(B )
+ $B$r;}$A$^$;$s!#(B
+ </blockquote>
-<p>$B$=$N%"%+%&%s%H$G%f!<%6$H$7$F%m%0%$%s$9$k$3$H$r5v2D$7$?$i!"<+J,<+?H$G(B
- $B%m%0%$%s$7$F$=$N%"%+%&%s%H$,%9%/%j%W%H$N<B9T!"%&%'%V%Z!<%8$NFI$_9~$_$r$9$k(B
- $B8"8B$r;}$C$F$$$k$3$H!"%3%s%=!<%k$+$i(B Apache $B$r5/F0$G$-$k$3$H(B
- $B$r%F%9%H$9$k$3$H$,$G$-$^$9!#$3$l$,$&$^$/$$$-!">e5-$N%9%F%C%W$K=>$C$F<j=g$rF'$a$P!"(B
- Apache $B$OLdBj$J$/%5!<%S%9$H$7$F<B9T$9$k$O$:$G$9!#(B</p>
-<p><strong>$BCm0U(B: $B%(%i!<%3!<%I(B 2186</strong> $B$O%5!<%P$,I,MW$J%M%C%H%o!<%/%j%=!<%9$K(B
- $B%"%/%;%9$9$k$3$H$,$G$-$J$$$N$G(B 'Log On As' $B$N@_Dj$r8+D>$9I,MW$,$"$k!"(B
- $B$H$$$&;X<($G$9!#(B</strong></p>
+ <p>SYSTEM $B%"%+%&%s%H$O%M%C%H%o!<%/$KFC8"$r;}$?$J$$$N$G!"6&M-$5$l$?%Z!<%8$d(B
+ $B6&M-$5$l$?%$%s%9%H!<%k$O%5!<%S%9$+$i$O8+$($^$;$s!#(B
+ $B$"$J$?$,(B<em>$B$I$s$J(B</em>$B%M%C%H%o!<%/%j%=!<%9$b;HMQ$9$k$D$b$j$G$"$k$J$i$P!"(B
+ $B0J2<$N%9%F%C%W$OLr$KN)$D$+$b$7$l$^$;$s(B</p>
+ <ul>
+ <li>Control Panel $B$N(B Service $B%@%$%"%m%0$+$i(B Apache $B$rA*Br$7$F!"(B
+ Startup $B$r%/%j%C%/$7$^$9!#(B</li>
-<h2><a name=trouble>$B%5!<%S%9$H$7$F$N(B Windows $BHG(B Apache $B%H%i%V%k%7%e!<%F%#%s%0(B</a></h2>
+ <li>$B%5!<%S%9%"%+%&%s%H$,@5$7$$$3$H$r3NG'$7$F$/$@$5$$!#(B
+ Apache $B%5!<%S%9MQ$N%"%+%&%s%H$r:n@.$9$k$3$H$b$h$$J}K!$G$9!#(B</li>
-<p>$B%5!<%S%9$H$7$F(B Apache $B$r3+;O$9$k>l9g!"(BWindows service manager $B$+$i%(%i!<%a%C%;!<%8$r(B
- $B8+$k$3$H$K$J$k$+$b$7$l$^$;$s!#Nc$($P(B Control Panel $B$N(B Services $B%"%W%l%C%H$r;HMQ$7$F(B
- Apache $B$r3+;O$5$;$h$&$H$9$k;~$K!"0J2<$N%a%C%;!<%8$r8+$k$+$b$7$l$^$;$s!#(B
+ <li>$B%Q%9%o!<%I$r7+$jJV$7F~NO$7$F%Q%9%o!<%I3NG'$r$7$^$9!#(B</li>
+
+ <li>$B%I%a%$%s$N%f!<%6%^%M!<%8%c$K9T$C$F$/$@$5$$!#(B</li>
+
+ <li>$B%?%$%H%k%P!<%a%K%e!<$+$i(B Policies $B$r%/%j%C%/$7$F!"(B
+ User Rights $B$rA*Br$7$F$/$@$5$$!#(B</li>
+
+ <li>Advanced User Rights $B$N%*%W%7%g%s$rA*Br$7$F$/$@$5$$!#(B</li>
+
+ <li>
+ $B%I%m%C%W%@%&%s%j%9%HCf$G!"A*Br$5$l$?%"%+%&%s%H$K0J2<$N8"8B$,(B
+ $BM?$($i$l$?$3$H$r3NG'$7$F$/$@$5$$!#(B
+
+ <ul>
+ <li>Act as part of the operating system</li>
+
+ <li>Back up files and directories</li>
+
+ <li>Log on as a service</li>
+
+ <li>Restore files and directories</li>
+ </ul>
+ </li>
+
+ <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Users $B%0%k!<%W$N%a%s%P$G$"$k$3$H$r(B
+ $B3NG'$7$F$/$@$5$$!#(B</li>
+
+ <li>$BA*Br$5$l$?%"%+%&%s%H$,$9$Y$F$N%I%-%e%a%s%H$H%9%/%j%W%H%G%#%l%/%H%j$K(B
+ $B%"%/%;%9$9$k<jCJ(B ($B:GDc8BFI$_9~$_$H%V%i%&%:(B) $B$r;}$C$F$$$k$3$H$r(B
+ $B3NG'$7$F$/$@$5$$!#(B</li>
+
+ <li>$BA*Br$5$l$?%"%+%&%s%H$,(B Apache logs $B%G%#%l%/%H%j$KBP$7$FFI$_=q$-!"(B
+ $B:o=|$9$k<jCJ$r;}$C$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#(B</li>
+ </ul>
+
+ <p>$B$=$N%"%+%&%s%H$G%f!<%6$H$7$F%m%0%$%s$9$k$3$H$r5v2D$7$?$i!"(B
+ $B<+J,<+?H$G%m%0%$%s$7$F$=$N%"%+%&%s%H$,%9%/%j%W%H$N<B9T!"%&%'%V(B
+ $B%Z!<%8$NFI$_9~$_$r$9$k8"8B$r;}$C$F$$$k$3$H!"%3%s%=!<%k%&%#%s%I%&$+$i(B
+ Apache $B$r5/F0$G$-$k$3$H$r%F%9%H$9$k$3$H$,$G$-$^$9!#$3$l$,$&$^$/$$$-!"(B
+ $B>e5-$N%9%F%C%W$K=>$C$F<j=g$rF'$a$P!"(BApache $B$OLdBj$J$/%5!<%S%9$H$7$F(B
+ $B<B9T$9$k$O$:$G$9!#(B</p>
+
+ <p><strong>$BCm0U(B: $B%(%i!<%3!<%I(B 2186</strong> $B$O%5!<%P$,I,MW$J(B
+ $B%M%C%H%o!<%/%j%=!<%9$K%"%/%;%9$9$k$3$H$,$G$-$J$$$N$G(B 'Log On As'
+ $B$N@_Dj$r8+D>$9I,MW$,$"$k!"$H$$$&;X<($G$9!#(B</p>
+
+ <h2><a id="trouble" name="trouble"> Apache $B$r(B Windows $B$G%5!<%S%9$H$7$F(B
+ $BF0$+$9$H$-$N(B $B%H%i%V%k%7%e!<%F%#%s%0(B</a></h2>
+
+ <p>$B%5!<%S%9$H$7$F(B Apache $B$r3+;O$9$k>l9g!"(BWindows $B%5!<%S%9%^%M!<%8%c$+$i$N(B
+ $B%(%i!<%a%C%;!<%8$r8+$k$3$H$K$J$k$+$b$7$l$^$;$s!#Nc$($P%3%s%H%m!<%k%Q%M%k$N(B
+ $B%5!<%S%9(B $B%"%W%l%C%H$r;HMQ$7$F(B Apache $B$r3+;O$5$;$h$&$H$9$k;~$K!"(B
+ $B0J2<$N%a%C%;!<%8$r8+$k$+$b$7$l$^$;$s!#(B</p>
<pre>
Could not start the apache service on \\COMPUTER
Error 1067; The process terminated unexpectedly.
</pre>
-<p>Apache $B$N3+;O$K$*$$$F2?$i$+$NLdBj$,$"$k>l9g!"$3$N%(%i!<$KAx$$$^$9!#(B
- $BLdBj$N860x$r3NG'$9$k$?$a$K$O!"(B<a href="windows.html#test">$B%3%^%s%I(B
- $B%W%m%s%W%H$G(B Apache $B$r%F%9%H$9$k(B</a>$B$N;X<($K=>$C$F$/$@$5$$!#(B</p>
-<p>$B$^$?!"(BApache 1.3.13 $B$G$O(B Windows NT/2000 $B$G%5!<%S%9$H$7$FF0$+$9$H$-!"(B
- $B3+;O;~$N%(%i!<$r(B Application Event Log $B$K5-O?$7$^$9!#(BEvent Viewer $B$r5/F0$7!"(B
- <u>L</u>og ... <u>A</u>pplication $B$HA*Br$7$F%$%Y%s%H$r3NG'$9$k$3$H$,$G$-$^$9!#(B
+ <p>Apache $B$N3+;O$K$*$$$F2?$i$+$NLdBj$,$"$k>l9g!"$3$N%(%i!<$KAx$$$^$9!#(B
+ $BLdBj$N860x$r3NG'$9$k$?$a$K$O!"(B<a href="windows.html#test">$B%3%^%s%I(B
+ $B%W%m%s%W%H$G(B Apache $B$r%F%9%H$9$k(B</a>$B$N;X<($K=>$C$F$/$@$5$$!#(B</p>
-<p><strong>$BLdBj$,$"$C$?>l9g$O!"%(%i!<$,H/@8$7$?$3$H$r7Y9p$N$?$a$N%(%i!<%a%C%;!<%8$,(B
- $B%]%C%W%"%C%W$5$l$J$/$F$b!"(BEvent Viewer $B$G(B Application Event Log $B$r(B
- $B%A%'%C%/$7$F$/$@$5$$!#(B</strong></p>
-<h2><a name=cmdline>Windows $B$G%3%^%s%I%i%$%s$+$i(B Apache $B$rF0$+$9(B</a></h2>
+ <p>$B$^$?!"(BApache 1.3.13 $B$G$O(B Windows NT/2000 $B$G%5!<%S%9$H$7$FF0$+$9$H$-!"(B
+ $B3+;O;~$N%(%i!<$r(B $B%"%W%j%1!<%7%g%s(B $B%m%0(B $B$K5-O?$7$^$9!#%$%Y%s%H(B $B%S%e!<%"(B
+ $B$r5/F0$7!"(B<u>L</u>og ... <u>A</u>pplication
+ $B$HA*Br$7$F%$%Y%s%H$r3NG'$9$k$3$H$,$G$-$^$9!#(B</p>
-$B%3%^%s%I%i%$%s$+$i(B Apache $B%5!<%S%9$r@)8f$9$k$3$H$K4X$9$k>\:Y$K$D$$$F$O!"(B
-<a href="windows.html#cmdline">$B%3%s%=!<%k%3%^%s%I%i%$%s(B</a>$B$N>O$r;2>H$7$F$/$@$5$$!#(B
+ <p><strong>$BLdBj$,$"$C$?>l9g$O!"%(%i!<$,H/@8$7$?$3$H$r7Y9p$N$?$a$N(B
+ $B%(%i!<%a%C%;!<%8$,%]%C%W%"%C%W$5$l$J$/$F$b!"%$%Y%s%H(B $B%S%e!<%"$G(B
+ $B%"%W%j%1!<%7%g%s(B $B%m%0$r%A%'%C%/$7$F$/$@$5$$!#(B</strong></p>
+ <h2><a id="cmdline" name="cmdline">Windows $B$G%3%^%s%I%i%$%s$+$i(B
+ Apache $B$rF0$+$9(B</a></h2>
+ $B%3%^%s%I%i%$%s$+$i(B Apache $B%5!<%S%9$r@)8f$9$k$3$H$K4X$9$k>\:Y$K$D$$$F$O!"(B
+ <a href="windows.html#cmdline"
+ >$B%3%s%=!<%k%3%^%s%I%i%$%s(B</a>$B$N>O$r;2>H$7$F$/$@$5$$!#(B
-<h2><a name=signal>$B%5!<%S%9$H$7$F$N(B Apache $B$r@)8f$9$k(B</a></h2>
-
-<p>Apache $B$OJ#?t%$%s%9%H!<%k$7$F!"%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B
- $B%$%s%9%H!<%k$5$l$?(B Apache $B%5!<%S%9$r3+;O!":F3+!"=*N;!"Dd;_$9$k$K$O(B
- $B0J2<$N$h$&$K$7$^$9(B:</p>
+ <h2><a id="signal" name="signal">$B%5!<%S%9$H$7$F$N(B Apache
+ $B$r@)8f$9$k(B</a></h2>
+ <p>Apache $B$OJ#?t%$%s%9%H!<%k$7$F!"%5!<%S%9$H$7$FF0$+$9$3$H$,$G$-$^$9!#(B
+ $B%$%s%9%H!<%k$5$l$?(B Apache $B%5!<%S%9$r3+;O!":F3+!"=*N;!"Dd;_$9$k$K$O(B
+ $B0J2<$N$h$&$K$7$^$9(B:</p>
<pre>
apache -n "service name" -k start
apache -n "service name" -k restart
@@ -279,95 +340,105 @@ Apache $B$N0JA0$N%P!<%8%g%s$r;HMQ$7$F%5!<%S%9$r%$%s%9%H!<%k$7$?8e$K!"(B
apache -n "service name" -k stop
</pre>
-<p>-n $B%*%W%7%g%s$N$J$$(B -k $B%3%^%s%I$O%3%s%=!<%k%&%#%s%I%&$G5/F0$7$F$$$k(B Apache $B$K(B
- $B8~$1$i$l$k$N$G!"%G%U%)%k%H$N(B "Apache" $B%5!<%S%9$G$O(B -n Apache $B%*%W%7%g%s$,(B
- $BI,MW$G$9!#0zMQId$O%5!<%S%9L>$K%9%Z!<%9$,4^$^$l$k>l9g$K8B$j(B
- $BI,MW$K$J$j$^$9!#(B</p>
-
-<p><strong>$BCm0U(B:
- -k shutdown $B%3%^%s%I$NJLL>$N(B -k stop $B%3%^%s%I$O(B Apache $B%P!<%8%g%s(B 1.3.13 $B$GF3F~$5$l$^$7$?!#(B</strong>
- $B$=$l$h$jA0$N%P!<%8%g%s$N(B Apache $B$G$O(B -k shutdown $B%*%W%7%g%s$@$1$,G'<1$5$l$^$9!#(B
- 1.3.3 $B$h$jA0$N(B Apache $B$G$O(B<em>$B$I$s$J(B</em> -k $B%*%W%7%g%s$bG'<1$5$l$^$;$s$G$7$?!#(B</p>
-
-<p>-D, -C, -c $B%*%W%7%g%s$r4^$a$?(B apache -k start $B%3%^%s%I$G(B
- $B5/F0;~$N%*%W%7%g%s$r;XDj$9$k$3$H$b$G$-$^$9!#(B
- $B$3$l$i$O%5!<%S%9$N@_Dj%W%m%;%9$K1F6A$7$^$9!#(B
- &lt;IfDefine&gt; $B%V%m%C%/$G;H$&$3$H$G>r7o$D$-$N;XDj$r$9$k$3$H$b$G$-$^$9!#(B
- $B%5!<%P%k!<%H$N%Q%9$d(B -d $B%*%W%7%g%s$d(B -f $B%*%W%7%g%s$r;H$C$F@_Dj%U%!%$%k$r>e=q$-$9$k$3$H$b$G$-$^$9!#(B
- $B$3$l$i$N%*%W%7%g%s$O(B -k restart $B%3%^%s%I$K$h$C$F$bFI$_9~$^$l$^$9$,!"(B
- $B%5!<%S%9$NF0:nCf$K$OH?1G$5$l$:!"%5!<%S%9$N5/F0;~$K$N$_H?1G$5$l$^$9!#(B</p>
-
-<p>$B%5!<%S%9$O(B Windows NT/2000 $B$N(B Service Control $B%"%W%l%C%H$K$b8=$l$^$9!#(B
- NT $B$N>l9g!"(BSettings -&gt; Control Panel -&gt; Services $B%(%s%H%j!"(B
- 2000 $B$N>l9g!"(BSettings -&gt; Control Panel -&gt; Administrative Tools -&gt;
- Services $B%(%s%H%j$G;2>H$G$-$^$9!#(B
- $B$=$3$+$i3+;O$d=*N;$5$;$k(B Apache $B%5!<%S%9$rA*Br$G$-$^$9!#(B
- -D, -C, -c $B$N$h$&$JDI2C$N%*%W%7%g%s$d!"3+;O%Q%i%a!<%?$N%G%U%)%k%H$N(B
- -d $B$d(B -f $B%*%W%7%g%s$N>e=q$-$O3+;O%\%?%s$r%/%j%C%/$9$kA0$K$7$F$/$@$5$$!#(B
- $B$3$l$i$N%*%W%7%g%s$O(B apache -k start $B%3%^%s%I$HA4$/F1$8$h$&$K=hM}$5$l$^$9!#(B</p>
-
-<p>$B$5$i$K!"(BApache $B%5!<%S%9$N3+;O!"=*N;$K%M%$%F%#%V$N(B Windows NT/2000 $B$N(B
- NET $B%3%^%s%I$r;H$&$3$H$b$G$-$^$9(B:</p>
-
+ <p>-n $B%*%W%7%g%s$N$J$$(B -k $B%3%^%s%I$O%3%s%=!<%k%&%#%s%I%&$G5/F0$7$F$$$k(B
+ Apache $B$K8~$1$i$l$k$N$G!"%G%U%)%k%H$N(B "Apache" $B%5!<%S%9$G$O(B -n Apache
+ $B%*%W%7%g%s$,I,MW$G$9!#0zMQId$O%5!<%S%9L>$K%9%Z!<%9$,4^$^$l$k>l9g$K8B$j(B
+ $BI,MW$K$J$j$^$9!#(B</p>
+
+ <p><strong>$BCm0U(B: -k shutdown $B%3%^%s%I$NJLL>$N(B -k stop $B%3%^%s%I$O(B
+ Apache $B%P!<%8%g%s(B 1.3.13 $B$GF3F~$5$l$^$7$?!#(B</strong>
+ $B$=$l$h$jA0$N%P!<%8%g%s$N(B Apache $B$G$O(B -k shutdown
+ $B%*%W%7%g%s$@$1$,G'<1$5$l$^$9!#(B1.3.3 $B$h$jA0$N(B Apache
+ $B$G$O(B<em>$B$I$s$J(B</em> -k $B%*%W%7%g%s$bG'<1$5$l$^$;$s$G$7$?!#(B</p>
+
+ <p>-D, -C, -c $B%*%W%7%g%s$r4^$a$?(B apache -k start
+ $B%3%^%s%I$G5/F0;~$N%*%W%7%g%s$r;XDj$9$k$3$H$b$G$-$^$9!#(B
+ $B$3$l$i$O%5!<%S%9$N@_Dj%W%m%;%9$K1F6A$7$^$9(B &lt;IfDefine&gt;
+ $B%V%m%C%/$G;H$&$3$H$G>r7o$D$-$N;XDj$r$9$k$3$H$b$G$-$^$9!#(B
+ $B%5!<%P%k!<%H$N%Q%9$d(B -d $B%*%W%7%g%s$d(B -f
+ $B%*%W%7%g%s$r;H$C$F@_Dj%U%!%$%k$r>e=q$-$9$k$3$H$b$G$-$^$9!#(B
+ $B$3$l$i$N%*%W%7%g%s$O(B -k restart $B%3%^%s%I$K$h$C$F$bFI$_9~$^$l$^$9$,!"(B
+ $B%5!<%S%9$NF0:nCf$K$OH?1G$5$l$:!"%5!<%S%9$N5/F0;~$K$N$_H?1G$5$l$^$9!#(B
+ </p>
+
+ <p>$B%5!<%S%9$O(B Windows NT/2000 $B$N(B Service Control
+ $B%"%W%l%C%H$K$b8=$l$^$9!#(BNT $B$N>l9g!"(BSettings -&gt; Control Panel
+ -&gt; Services $B%(%s%H%j!"(B2000 $B$N>l9g!"(BSettings -&gt; Control Panel
+ -&gt; Administrative Tools -&gt; Services $B%(%s%H%j$G;2>H$G$-$^$9!#(B
+ $B$=$3$+$i3+;O$d=*N;$5$;$k(B Apache $B%5!<%S%9$rA*Br$G$-$^$9!#(B
+ -D, -C, -c $B$N$h$&$JDI2C$N%*%W%7%g%s$d!"3+;O%Q%i%a!<%?$N%G%U%)%k%H$N(B
+ -d $B$d(B -f $B%*%W%7%g%s$N>e=q$-$O3+;O%\%?%s$r%/%j%C%/$9$kA0$K$7$F$/$@$5$$!#(B
+ $B$3$l$i$N%*%W%7%g%s$O(B apache -k start
+ $B%3%^%s%I$HA4$/F1$8$h$&$K=hM}$5$l$^$9!#(B</p>
+
+ <p>$B$5$i$K!"(BApache $B%5!<%S%9$N3+;O!"=*N;$K%M%$%F%#%V$N(B
+ Windows NT/2000 $B$N(B NET $B%3%^%s%I$r;H$&$3$H$b$G$-$^$9(B:</p>
<pre>
NET START "service name"
NET STOP "service name"
</pre>
-<p>$B7+$jJV$7$^$9$,!"%5!<%S%9L>$,%9%Z!<%9$r4^$`>l9g$N$_!"0zMQId$,(B
- $BI,MW$K$J$j$^$9!#(B-D, -c, -C $B$J$I$NDI2C%*%W%7%g%s$r(B NET START
- $B%3%^%s%I$G;XDj$9$kJ}K!$O$"$j$^$;$s!#%*%W%7%g%s$,I,MW$J$H$-$O!"(B
- $BB>$N(B 2 $B<oN`$N%a%=%C%I$N$I$A$i$+$r;HMQ$7$F$/$@$5$$!#(B</p>
+ <p>$B7+$jJV$7$^$9$,!"%5!<%S%9L>$,%9%Z!<%9$r4^$`>l9g$N$_!"(B
+ $B0zMQId$,I,MW$K$J$j$^$9!#(B-D, -c, -C $B$J$I$NDI2C%*%W%7%g%s$r(B
+ NET START $B%3%^%s%I$G;XDj$9$kJ}K!$O$"$j$^$;$s!#(B
+ $B%*%W%7%g%s$,I,MW$J$H$-$O!"B>$N(B
+ 2 $B<oN`$N%a%=%C%I$N$I$A$i$+$r;HMQ$7$F$/$@$5$$!#(B</p>
-<h2><a name=win95svc>$BHs>o$K<B83E*$J(B Windows 95/98 $B%5!<%S%9(B</a></h2>
+ <h2><a id="win95svc" name="win95svc">$BHs>o$K<B83E*$J(B
+ Windows 95/98 $B%5!<%S%9(B</a></h2>
-<p><strong>$BCm0U(B: Windows 95 $B$H(B 98 $B$G$N%5!<%S%9%*%W%7%g%s$O(B Apache 1.3.13 $B0J9_$G$N$_(B
- $BM-8z$G$9!#(B</strong>$B0JA0$N%P!<%8%g%s$N(B Apache $B$G$O(B Windows 95/98 $B$G$O(B
- $B%3%s%=!<%kAk$G$N$_%5%]!<%H$5$l$F$$$^$9!#(B</p>
+ <p><strong>$BCm0U(B: Windows 95 $B$H(B 98 $B$G$N%5!<%S%9%*%W%7%g%s$O(B
+ Apache 1.3.13 $B0J9_$G$N$_M-8z$G$9!#(B</strong>$B0JA0$N%P!<%8%g%s$N(B
+ Apache $B$G$O(B Windows 95/98
+ $B$K$*$$$F$O%3%s%=!<%k%&%#%s%I%&$G$N$_%5%]!<%H$5$l$F$$$^$9!#(B</p>
-<p>Windows NT/2000 $B$G$N%5!<%S%9$HF1$8$h$&$J(B Windows 95/98 $B>e$G$N(B
- Apache $B$NF0:n$r$"$kDxEY%5%]!<%H$7$F$$$^$9!#$=$l$O(B<em>$BHs>o$K<B83E*(B</em>$B$J$b$N$G!"(B
- $B$b$7(B ($B$9$Y$F=gD4$K(B) $BF0$$$?$H$7$F$b(B Apache Software Foundation $B$O!"(B
- $B?.Mj@-$d>-Mh$N%5%]!<%H$OJ]>Z$7$^$;$s!#0J9_$K$D$$$F$O<+J,<+?H$N%j%9%/$G?J$s$G$/$@$5$$(B!</p>
+ <p>Windows NT/2000 $B$G$N%5!<%S%9$HF1$8$h$&$J(B Windows 95/98 $B>e$G$N(B
+ Apache $B$NF0:n$r$"$kDxEY%5%]!<%H$7$F$$$^$9!#(B
+ $B$=$l$O(B<em>$BHs>o$K<B83E*(B</em>$B$J$b$N$G!"$b$7(B ($B$9$Y$F=gD4$K(B)
+ $BF0$$$?$H$7$F$b(B Apache Software Foundation $B$O!"?.Mj@-$d>-Mh$N%5%]!<%H(B
+ $B$OJ]>Z$7$^$;$s!#0J9_$K$D$$$F$O<+J,<+?H$N%j%9%/$G?J$s$G$/$@$5$$(B!</p>
-<p>Apache $B$,(B <a href="windows.html#test">Command Prompt</a> $B$G(B
- $B@5>o$KF0:n$9$k$3$H$r3NG'$7$?$i!"(BWindows NT/2000 $B$N>l9g$HF1$8%3%^%s%I$G(B
- $B%$%s%9%H!<%k!"@)8f!"%"%s%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B</p>
+ <p>Apache $B$,(B <a href="windows.html#test">Command Prompt</a>
+ $B$G@5>o$KF0:n$9$k$3$H$r3NG'$7$?$i!"(BWindows NT/2000
+ $B$N>l9g$HF1$8%3%^%s%I$G%$%s%9%H!<%k!"@)8f!"(B
+ $B%"%s%$%s%9%H!<%k$9$k$3$H$,$G$-$^$9!#(B</p>
-<p>$B$?$@$7!"Cm0U$9$Y$-=EMW$J0c$$$,$"$j$^$9(B:</p>
+ <p>$B$?$@$7!"Cm0U$9$Y$-=EMW$J0c$$$,$"$j$^$9(B:</p>
-<p>Apache $B$O!"5/F0$,@.8y$9$k$H!"%P%C%/%0%i%&%s%I$GF0:n$7$^$9!#(B
- $B%G%9%/%H%C%W$N%7%g!<%H%+%C%H$rDL$7$F!"%3%^%s%I(B
+ <p>Apache $B$O!"5/F0$,@.8y$9$k$H!"%P%C%/%0%i%&%s%I$GF0:n$7$^$9!#(B
+ $B%G%9%/%H%C%W$N%7%g!<%H%+%C%H$rDL$7$F!"%3%^%s%I(B</p>
<pre>
Apache -n "service name" -k start
</pre>
-<p>$B$r<B9T$7$?$i!"Nc$($P!"%5!<%S%9$,$&$^$/3+;O$5$l$l$P!"%3%s%=!<%kAk$O(B
- $BI=<($5$l$^$9$,$9$0$K8+$($J$/$J$j$^$9!#(B
- Apache $B$,3+;O;~$K!"(Bhttpd.conf $B%U%!%$%k$K$*$1$kIT@5$J%(%s%H%j$N$h$&$J(B
- $B%(%i!<$r8+$D$1$k$H!"%3%s%=!<%kAk$OI=<($5$l$?$^$^$G;D$j$^$9!#(B
- $B$=$3$K$OLdBj$N860x$NDI5a$KLr$KN)$D%(%i!<%a%C%;!<%8$,I=<($5$l$F$$$k$G$7$g$&!#(B
- $B$=$N:](B Apache $B$N(B logs $B%G%#%l%/%H%j$N(B error.log $B%U%!%$%k$rD4$YD>$9$Y$-$G$9!#(B</p>
-
-<p>Windows 95/98 $B$G$O(B NET START $B$d(B NET STOP $B%3%^%s%I$r%5%]!<%H$7$F$$$J$$$N$G!"(B
- Command Prompt $B$+$i(B Apache $B$N(B Service Control $B%*%W%7%g%s$r(B
- $B;HMQ$7$J$1$l$P$J$j$^$;$s!#(B
- $B$3$l$i$N%3%^%s%IKh$K%7%g!<%H%+%C%H$rMQ0U$7!"%9%?!<%H%a%K%e!<$d%G%9%/%H%C%W$+$i$=$l$r$?$@A*$V$3$H$GI,MW$JF0:n$r(B
- $B<B9T$9$k$h$&$K$9$k$N$O$h$$J}K!$G$9!#(B</p>
-
-<p>Apache $B$H(B Windows 95/98 $B$OFCDj$N%f!<%6$KBP$7$F!"(BApache $B%5!<%S%9$r%M%C%H%o!<%/FC8"$G$ODs6!$7$^$;$s!#(B
- $B<B:]!"(BWindows 95/98 $B$O$I$s$J%;%-%e%j%F%#$b%m!<%+%k%^%7%s$KDs6!$7$F$$$^$;$s!#(B
- Apache Software Fondation $B$,%Q%V%j%C%/$J(B httpd $B%5!<%P$H$7$F(B
- Windows 95/98 $B$N;HMQ$r7h$7$FG'$a$J$$$N$O!"$3$l$,C1=c$JM}M3$G$9!#(B
- $B$3$l$i$O!"(Bweb $B%3%s%F%s%D$N@):n$d(B Apache $B%5!<%P$N3X=,!"(B
- $B$^$?$O0BA4$J%$%s%H%i%M%C%H>e$N%5!<%P!"%W%i%$%Y!<%H%M%C%H%o!<%/$N(B
- $B%f!<%6$rJd=u$9$k$?$a$KJX59>eB8:_$7$F$$$k$K$9$.$^$;$s!#(B</p>
-
- <hr />
+ <p>$B$r<B9T$7$?$i!"Nc$($P!"%5!<%S%9$,$&$^$/3+;O$5$l$l$P!"(B
+ $B%3%s%=!<%k%&%#%s%I%&$OI=<($5$l$^$9$,$9$0$K8+$($J$/$J$j$^$9!#(B
+ Apache $B$,3+;O;~$K!"(Bhttpd.conf
+ $B%U%!%$%k$K$*$1$kIT@5$J%(%s%H%j$N$h$&$J%(%i!<$r8+$D$1$k$H!"(B
+ $B%3%s%=!<%k%&%#%s%I%&$OI=<($5$l$?$^$^$G;D$j$^$9!#(B
+ $B$=$3$K$OLdBj$N860x$NDI5a$KLr$KN)$D(B
+ $B%(%i!<%a%C%;!<%8$,I=<($5$l$F$$$k$G$7$g$&!#$=$N:](B Apache $B$N(B
+ logs $B%G%#%l%/%H%j$K$"$k(B error.log $B%U%!%$%k$rD4$YD>$9$Y$-$G$9!#(B</p>
+
+ <p>Windows 95/98 $B$G$O(B NET START $B$d(B NET STOP $B%3%^%s%I$r(B
+ $B%5%]!<%H$7$F$$$J$$$N$G!"(BCommand Prompt $B$+$i(B Apache $B$N(BService Control
+ $B%*%W%7%g%s$r;HMQ$7$J$1$l$P$J$j$^$;$s!#$3$l$i$N%3%^%s%IKh$K(B
+ $B%7%g!<%H%+%C%H$rMQ0U$7!"%9%?!<%H%a%K%e!<$d%G%9%/%H%C%W$+$i(B
+ $B$=$l$r$?$@A*$V$3$H$GI,MW$JF0:n$r<B9T$9$k$h$&$K$9$k$N$O$h$$J}K!$G$9!#(B</p>
+
+ <p>Apache $B$H(B Windows 95/98 $B$OFCDj$N%f!<%6$KBP$7$F!"(BApache
+ $B%5!<%S%9$r%M%C%H%o!<%/FC8"$G$ODs6!$7$^$;$s!#<B:]!"(BWindows 95/98
+ $B$O$I$s$J%;%-%e%j%F%#$b%m!<%+%k%^%7%s$KDs6!$7$F$$$^$;$s!#(B
+ Apache Software Fondation $B$,%Q%V%j%C%/$J(B httpd $B%5!<%P$H$7$F(B
+ Windows 95/98 $B$N;HMQ$r7h$7$FG'$a$J$$$N$O!"$3$l$,C1=c$JM}M3$G$9!#(B
+ $B$3$l$i$O!"(Bweb $B%3%s%F%s%D$N@):n$d(B Apache $B%5!<%P$N3X=,!"(B
+ $B$^$?$O0BA4$J%$%s%H%i%M%C%H>e$N%5!<%P!"%W%i%$%Y!<%H%M%C%H%o!<%/$N(B
+ $B%f!<%6$rJd=u$9$k$?$a$KJX59>eB8:_$7$F$$$k$K$9$.$^$;$s!#(B</p>
+ <hr />
<h3 align="CENTER">Apache HTTP Server</h3>
<a href="./"><img src="images/index.gif" alt="Index" /></a>
-</body>
+ </body>
</html>
diff --git a/usr.sbin/httpd/htdocs/manual/windows.html b/usr.sbin/httpd/htdocs/manual/windows.html
index a3fbf00fbad..e69de29bb2d 100644
--- a/usr.sbin/httpd/htdocs/manual/windows.html
+++ b/usr.sbin/httpd/htdocs/manual/windows.html
@@ -1,633 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Using Apache with Microsoft Windows</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <div align="CENTER">
- <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server</h3>
- </div>
-
-
-
- <h1 align="CENTER"><a id="help" name="help">Using Apache With
- Microsoft Windows</a></h1>
-
- <p>This document explains how to install, configure and run
- Apache 1.3 under Microsoft Windows. Most of this document
- assumes that you are installing Windows from a binary
- distribution. If you want to compile Apache yourself (possibly
- to help with development, or to track down bugs), see <a
- href="win_compiling.html">Compiling Apache for Microsoft
- Windows</a>.</p>
-
- <p>If you find any bugs, please document them on our <a
- href="http://httpd.apache.org/bug_report.html">bug reporting
- page.</a> Contributions are welcomed, please submit your code
- or suggestions to the bug report page, or join the new-httpd
- mailing list.</p>
-
- <p>The bug reporting page and new-httpd mailing list are
- <em>not</em> provided to answer questions about configuration
- or running Apache. Before you submit a bug report or request,
- first consult this document, the <a
- href="misc/FAQ.html">Frequently Asked Questions</a> page and
- the other relevant documentation topics. If you still have a
- question or problem, post it to the <a
- href="news:comp.infosystems.www.servers.ms-windows">comp.infosystems.www.servers.ms-windows</a>
- newsgroup, where many Apache users and several contributions
- are more than willing to answer new and obscure questions about
- using Apache on Windows.</p>
-
- <p><a
- href="http://groups.google.com/groups?hl=en&amp;lr=&amp;safe=off&amp;group=comp.infosystems.www.servers.ms-windows">
- groups.google.com's newsgroup archive</a> offers easy browsing
- of previous questions. Searching the newsgroup archives, you
- will usually find your question was already asked and answered
- by other users!</p>
-
- <p><strong>Warning: Apache on NT has not yet been optimized for
- performance.</strong> Apache still performs best, and is most
- reliable on Unix platforms. Over time NT performance has
- improved, and great progress is being made in the upcoming
- version 2.0 of Apache for the Windows platforms. Folks doing
- comparative reviews of webserver performance are still asked to
- compare against Apache on a Unix platform such as Solaris,
- FreeBSD, or Linux.</p>
- <hr />
-
- <ul>
- <li><a href="#req">Requirements</a></li>
-
- <li><a href="#down">Downloading Apache for Windows</a></li>
-
- <li><a href="#inst">Installing Apache for Windows (binary
- install)</a></li>
-
- <li><a href="#run">Running Apache for Windows</a></li>
-
- <li><a href="#test">Testing Apache for Windows</a></li>
-
- <li><a href="#use">Configuring Apache for Windows</a></li>
-
- <li><a href="#cmdline">Running Apache in a Console
- Window</a></li>
-
- <li><a href="#signal">Controlling Apache in a Console
- Window</a></li>
-
- <li><a href="win_service.html">Running Apache for Windows as
- a Service</a></li>
-
- <li><a href="win_service.html#signal">Controlling Apache as a
- Service</a></li>
-
- <li><a href="win_compiling.html">Compiling Apache for
- Microsoft Windows</a></li>
- </ul>
- <hr />
-
- <h2><a id="req" name="req">Requirements</a></h2>
-
- <p>Apache 1.3 is designed to run on Windows NT 4.0 and Windows
- 2000. The binary installer will only work with the x86 family
- of processors, such as Intel's. Apache may also run on Windows
- 95 and 98, but these have not been tested. In all cases TCP/IP
- networking must be installed.</p>
-
- <p>If running on NT 4.0, installing Service Pack 3 or 6 is
- recommended, as Service Pack 4 created known issues with
- TCP/IP and WinSock integrity that were resolved in Service
- Pack 5 and later.</p>
-
- <p><strong>Note: "Winsock2" is required for Apache 1.3.7 and
- later.</strong></p>
-
- <p>If running on Windows 95, the "Winsock2" upgrade must be
- installed before Apache will run. "Winsock2" for Windows 95 is
- available <a
- href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp">
- here</a> or via <a
- href="http://www.microsoft.com/windows95/downloads/">here</a>.
- Be warned that the Dialup Networking 1.2 (MS DUN) updates
- include a Winsock2 that is entirely insufficient, and the
- Winsock2 update must be reinstalled after installing Windows 95
- dialup networking. Windows 98, NT (Service Pack 3 or later) and
- 2000 users need to take no special action, those versions provide
- Winsock2 as distributed.</p>
-
- <h2><a id="down" name="down">Downloading Apache for
- Windows</a></h2>
-
- <p>Information on the latest version of Apache can be found on
- the Apache web server at <a
- href="http://httpd.apache.org/">http://httpd.apache.org/</a>.
- This will list the current release, any more recent alpha or
- beta-test releases, together with details of mirror web and
- anonymous FTP sites.</p>
-
- <p>You should download the binary build of Apache for Windows
- named as <code>apache_1_3_#-win32-src.msi</code> if you are
- interested in the source code, or simply
- <code>apache_1_3_#-win32-no_src.msi</code> if you don't plan to
- do anything with the source code and appreciate a faster
- download. Each of these files contains the complete Apache
- runtime. You must have the Microsoft Installer version 1.10
- installed on your PC before you can install the Apache runtime
- distributions. Windows 2000 and Windows ME are both delivered
- with the Microsoft Installer support, others will need to
- download it. Instructions on locating the Microsoft Installer,
- as well as the binary distributions of Apache, are found at
- <a href="http://httpd.apache.org/dist/httpd/binaries/win32/"
- >http://httpd.apache.org/dist/httpd/binaries/win32/</a></p>
-
- <p>The source code is available in the <code>-src.msi</code>
- distribution, or from the
- <a href="http://httpd.apache.org/dist/httpd/"
- >http://httpd.apache.org/dist/httpd/</a>
- distribution directory as a <code>.zip</code> file. If you plan
- on compiling Apache yourself, there is no need to install
- either <code>.msi</code> package. The <code>.zip</code> file
- contains only source code, with MS-DOS line endings (that is
- cr/lf line endings, instead of the single lf used for Unix
- files distributed in .tar.gz or .tar.Z archives.)</p>
-
- <p>While the source is also available as a <samp>.tar.gz</samp>
- <samp>.tar.Z</samp> archive, these contain unix lf line endings
- that cause grief for Windows users. To use those archives, you
- must convert at least the <samp>.mak</samp> and
- <samp>.dsp</samp> files to have DOS line endings before MSVC
- can understand them. Please stick with the <samp>.zip</samp>
- file to spare yourself the headache.</p>
-
- <p>Note: prior to 1.3.17 Apache was distributed as an
- InstallShield 2.0 <samp>.exe</samp> file. With an increasing
- number of users unable to run the InstallShield package [on
- Windows ME or Windows 2000] the binaries were repackaged into
- the readily available Microsoft Installer <samp>.msi</samp>
- format.</p>
-
- <h2><a id="inst" name="inst">Installing Apache for
- Windows</a></h2>
-
- <p>Run the Apache <samp>.msi</samp> file you downloaded above.
- This will prompt you for:</p>
-
- <ul>
- <li>whether or not you want to run Apache for all users
- (installing Apache as a Service), or if you want it installed
- to run in a console window when you choose the Start Apache
- shortcut.</li>
-
- <li>your Server name, Domain name and administrative email
- account.</li>
-
- <li>the directory to install Apache into (the default is
- <code>C:\Program Files\Apache Group\Apache</code> although
- you can change this to any other directory you wish)</li>
-
- <li>the installation type. The "Complete" option installs
- everything, including the source code if you downloaded the
- <samp>-src.msi</samp> package. Choose the "Custom" install if
- you choose not to install the documentation, or the source
- code from that package.</li>
- </ul>
-
- <p>During the installation, Apache will configure the files in
- the <samp>conf</samp> directory for your chosen installation
- directory. However if any of the files in this directory
- already exist they will <strong>not</strong> be overwritten.
- Instead the new copy of the corresponding file will be left
- with the extension <samp>.default.conf</samp>. So, for example,
- if <samp>conf\httpd.conf</samp> already exists it will not be
- altered, but the version which would have been installed will
- be left in <samp>conf\httpd.default.conf</samp>. After the
- installation has finished you should manually check to see what
- in new in the <samp>.default.conf</samp> file, and if necessary
- update your existing configuration files.</p>
-
- <p>Also, if you already have a file called
- <samp>htdocs\index.html</samp> then it will not be overwritten
- (no <samp>index.html.default</samp> file will be installed
- either). This should mean it is safe to install Apache over an
- existing installation (but you will have to stop the existing
- server running before doing the installation, then start the
- new one after the installation is finished).</p>
-
- <p>After installing Apache, you should edit the configuration
- files in the <samp>conf</samp> directory as required. These
- files will be configured during the install ready for Apache to
- be run from the directory where it was installed, with the
- documents served from the subdirectory <samp>htdocs</samp>.
- There are lots of other options which should be set before you
- start really using Apache. However to get started quickly the
- files should work as installed.</p>
-
- <p>If you eventually uninstall Apache, your configuration and log
- files will not be removed. You will need to delete the installation
- directory tree ("C:\Program Files\Apache Group" by default)
- yourself if you do not care to keep your configuration and
- other web files. Since the httpd.conf file is your
- accumulated effort in using Apache, you need to take the effort
- to remove it. The same happens for all other files you may have
- created, as well as any log files Apache created.</p>
-
- <h2><a id="run" name="run">Running Apache for Windows</a></h2>
-
- <p>There are two ways you can run Apache:</p>
-
- <ul>
- <li>As a <a href="win_service.html">"service"</a>. This is
- the best option if you want Apache to automatically start
- when your machine boots, and to keep Apache running when you
- log-off.</li>
-
- <li>From a <a href="#cmdline">console window</a>. Closing
- this console window will terminate the Apache server.</li>
- </ul>
-
- <p><strong>Complete the steps below before you attempt to start
- Apache as a Windows "<a
- href="win_service.html">service</a>"!</strong></p>
-
- <p>To run Apache from a console window, select the "Start
- Apache as console app" option from the Start menu (in Apache
- 1.3.4 and earlier, this option was called "Apache Server").
- This will open a console window and start Apache running inside
- it. The window will remain active until you stop Apache. To
- stop Apache running, either press select the "Shutdown Apache
- console app" icon option from the Start menu (this is not
- available in Apache 1.3.4 or earlier), or see <a
- href="#signal">Controlling Apache in a Console Window</a> for
- commands to control Apache in a console window.</p>
-
- <p>In Apache 1.3.13 and above it is now quite safe to press
- Ctrl+C or Ctrl+Break to stop the Apache in the console window.
- And on Windows NT/2000 with version 1.3.13, Apache will stop if
- you select 'Close' from the system menu (clicking the icon on
- the top-left corner of the console window) or click the close
- (X) button on the top-right corner. The Close menu item and
- close (X) button also work on Windows 95/98 as of Apache
- version 1.3.15. But do <em>not</em> try any of these approaches
- on earlier versions of the Apache server, since Apache would
- not clean up.</p>
-
- <h2><a id="test" name="test">Testing Apache for
- Windows</a></h2>
-
- <p>If you have trouble starting Apache please use the following
- steps to isolate the problem. This applies if you started
- Apache using the "Start Apache as a console app" shortcut from
- the Start menu and the Apache console window closes immediately
- (or unexpectedly) or if you have trouble starting Apache as a
- service.</p>
-
- <p>Run the "Command Prompt" from the Start Menu - Programs
- list. Change to the folder to which you installed Apache, type
- the command apache, and read the error message. Then review the
- error.log file for configuration mistakes. If you accepted the
- defaults when you installed Apache, the commands would be:</p>
-<pre>
- c:
- cd "\program files\apache group\apache"
- apache
- <em>Wait for Apache to exit, or press</em> Ctrl+C
- more &lt;logs\error.log
-</pre>
-
- <p>After looking at the error.log you will probably have a good
- chance of working out what went wrong and be able to fix the
- problem and try again. If you are unable to work it out then
- please follow the <a href="#help">guidelines for assistance</a>
- at the top of this document or in the <a
- href="misc/FAQ.html#what2do">FAQ</a>. Many users discover that
- the nature of the httpd.conf file is easier to manage and audit
- than page after page of configuration dialog boxes.</p>
-
- <p>After starting Apache running (either in a console window or
- as a service) if will be listening to port 80 (unless you
- changed the <samp>Port</samp>, <samp>Listen</samp> or
- <samp>BindAddress</samp> directives in the configuration
- files). To connect to the server and access the default page,
- launch a browser and enter this URL:</p>
-<pre>
- http://localhost/
-</pre>
-
- <p>This should respond with a welcome page, and a link to the
- Apache manual. If nothing happens or you get an error, look in
- the <samp>error.log</samp> file in the <samp>logs</samp>
- directory. If your host isn't connected to the net, you may
- have to use this URL:</p>
-<pre>
- http://127.0.0.1/
-</pre>
-
- <p>Once your basic installation is working, you should
- configure it properly by editing the files in the
- <samp>conf</samp> directory.</p>
-
- <p>Because Apache <em>CANNOT</em> share the same port with
- another TCP/IP application, you may need to stop or uninstall
- certain services first. These include (but are not limited to)
- other web servers, and firewall products such as BlackIce. If
- you can only start Apache with these services disabled,
- reconfigure either Apache or the other product so that they do
- not listen on the same TCP/IP ports. You may find the Windows
- "netstat -an" command useful in finding out what ports are in
- use.</p>
-
- <h2><a id="use" name="use">Configuring Apache for
- Windows</a></h2>
-
- <p>Apache is configured by files in the <samp>conf</samp>
- directory. These are the same as files used to configure the
- Unix version, but there are a few different directives for
- Apache on Windows. See the <a href="./">Apache
- documentation</a> for all the available directives.</p>
-
- <p>Begin configuring the Apache server by reviewing
- <code>httpd.conf</code> and its directives. Although the files
- <code>access.conf</code> and <code>srm.conf</code> both exist,
- these are old files which are no longer used by most
- administrators, and you will find no directives there.</p>
-
- <p><code>httpd.conf</code> contains a great deal of
- documentation itself, followed by the default configuration
- directives recommended when starting with the Apache server.
- Begin by reading these comments to understand the configuration
- file, and make small changes, starting Apache in a console
- window with each change. If you make a mistake, it will be
- easier to back up to configuration that last worked. You will
- have a better idea of which change caused the server to
- fail.</p>
-
- <p>The main differences in Apache for Windows are:</p>
-
- <ul>
- <li>
- Because Apache for Windows is multithreaded, it does not
- use a separate process for each request, as Apache does
- with Unix. Instead there are usually only two Apache
- processes running: a parent process, and a child which
- handles the requests. Within the child each request is
- handled by a separate thread. So, "process"-management
- directives are different:
-
- <ul>
- <li><a
- href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a>
- - Like the Unix directive, this controls how many
- requests a process will serve before exiting. However,
- unlike Unix, a process serves all the requests at once,
- not just one, so if this is set, it is recommended that a
- very high number is used. The recommended default,
- <code>MaxRequestsPerChild 0</code>, does not cause the
- process to ever exit.</li>
-
- <li><a
- href="mod/core.html#threadsperchild">ThreadsPerChild</a>
- - This directive is new, and tells the server how many
- threads it should use. This is the maximum number of
- connections the server can handle at once; be sure and
- set this number high enough for your site if you get a
- lot of hits. The recommended default is
- <code>ThreadsPerChild 50</code>.</li>
- </ul>
- </li>
-
- <li>The directives that accept filenames as arguments now
- must use Windows filenames instead of Unix ones. However,
- because Apache uses Unix-style names internally, you must use
- forward slashes, not backslashes. Drive letters can be used;
- if omitted, the drive with the Apache executable will be
- assumed.</li>
-
- <li>
- Apache for Windows has the ability to load modules at
- runtime, without recompiling the server. If Apache is
- compiled normally, it will install a number of optional
- modules in the <code>modules</code> directory. To activate
- these, or other modules, the new <a
- href="mod/mod_so.html#loadmodule">LoadModule</a> directive
- must be used. For example, to activate the status module, use
- the following (in addition to the status-activating
- directives in <code>httpd.conf</code> - see <a
- href="mod/mod_status.html">the mod_status docs</a> for more
- details.):
-<pre>
- LoadModule status_module modules/mod_status.so
-</pre>
-
- <p>Information on <a
- href="mod/mod_so.html#creating">creating loadable
- modules</a> is also available. Note that some 3rd party
- modules may be distributed in the old style names,
- ApacheModuleFoo.dll. Always set the LoadModule command as
- directed by the 3rd party module's own documentation.</p>
- </li>
-
- <li>Apache for Windows version 1.3 series is implemented in
- synchronous calls. This poses an enormous problem for CGI
- authors, who won't see unbuffered results sent immediately to
- the browser. This is not the behavior described for CGI in
- Apache, but it is a side-effect of the Windows port. Apache
- 2.0 is making progress to implement the expected asynchronous
- behavior, and we hope to discover that the NT/2000
- implementation allows CGI's to behave as documented.</li>
-
- <li>
- <p>Apache can also load ISAPI Extensions (<em>i.e.</em>,
- Internet Server Applications), such as those used by
- Microsoft's IIS, and other Windows servers. <a
- href="mod/mod_isapi.html">More information is
- available.</a> Note that Apache <em>CANNOT</em> load ISAPI
- Filters.</p>
- </li>
-
- <li>When running CGI scripts, the method Apache uses to find
- the interpreter for the script is configurable using the <a
- href="mod/core.html#scriptinterpretersource">ScriptInterpreterSource</a>
- directive.</li>
-
- <li>Since it is often difficult to manage files with names
- like <code>.htaccess</code> under windows, you may find it
- useful to change the name of this configuration file using
- the <a href="mod/core.html#accessfilename">AccessFilename</a>
- directive.</li>
- </ul>
-
- <h2><a id="cmdline" name="cmdline">Running Apache in a Console
- Window</a></h2>
-
- <p>The Start menu icons and the NT Service manager can provide
- a simple interface for administering Apache. But in some cases
- it is easier to work from the command line.</p>
-
- <p>When working with Apache it is important to know how it will
- find the configuration files. You can specify a configuration
- file on the command line in two ways:</p>
-
- <ul>
- <li>-f specifies a path to a particular configuration
- file:</li>
- </ul>
-<pre>
- apache -f "c:\my server\conf\my.conf"
-</pre>
-<pre>
- apache -f test\test.conf
-</pre>
-
- <ul>
- <li>-n specifies the configuration file of an installed
- Apache service (Apache 1.3.7 and later):</li>
- </ul>
-<pre>
- apache -n "service name"
-</pre>
-
- <p>In these cases, the proper ServerRoot should be set in the
- configuration file.</p>
-
- <p>If you don't specify a configuration file name with -f or
- -n, Apache will use the file name compiled into the server,
- usually "conf/httpd.conf". Invoking Apache with the -V switch
- will display this value labeled as SERVER_CONFIG_FILE. Apache
- will then determine its ServerRoot by trying the following, in
- this order:</p>
-
- <ul>
- <li>A ServerRoot directive via a -C switch.</li>
-
- <li>The -d switch on the command line.</li>
-
- <li>The current working directory</li>
-
- <li>A registry entry, created if you did a binary
- install.</li>
-
- <li>The server root compiled into the server.</li>
- </ul>
-
- <p>The server root compiled into the server is usually
- "/apache". invoking apache with the -V switch will display this
- value labeled as HTTPD_ROOT.</p>
-
- <p>When invoked from the start menu, Apache is usually passed
- no arguments, so using the registry entry is the preferred
- technique for console Apache.</p>
-
- <p>During a binary installation, a registry key will have been
- installed, for example:</p>
-<pre>
- HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot
-</pre>
-
- <p>This key is compiled into the server and can enable you to
- test new versions without affecting the current version. Of
- course you must take care not to install the new version on top
- of the old version in the file system.</p>
-
- <p>If you did not do a binary install then Apache will in some
- scenarios complain about the missing registry key. This warning
- can be ignored if it otherwise was able to find its
- configuration files.</p>
-
- <p>The value of this key is the "ServerRoot" directory,
- containing the <samp>conf</samp> directory. When Apache starts
- it will read the <samp>httpd.conf</samp> file from this
- directory. If this file contains a <samp>ServerRoot</samp>
- directive which is different from the directory obtained from
- the registry key above, Apache will forget the registry key and
- use the directory from the configuration file. If you copy the
- Apache directory or configuration files to a new location it is
- vital that you update the <samp>ServerRoot</samp> directory in
- the <samp>httpd.conf</samp> file to the new location.</p>
-
- <p>To run Apache from the command line as a console
- application, use the following command:</p>
-<pre>
- apache
-</pre>
-
- <p>Apache will execute, and will remain running until it is
- stopped by pressing control-C.</p>
-
- <h2><a id="signal" name="signal">Controlling Apache in a
- Console Window</a></h2>
-
- <p>You can tell a running Apache to stop by opening another
- console window and running:</p>
-<pre>
- apache -k shutdown
-</pre>
-
- <p><strong>Note: This option is only available with Apache
- 1.3.3 and later.</strong></p>
-
- <p>For earlier versions, you must use Control-C in the Apache
- console window to shut down the server.</p>
-
- <p>From version 1.3.3 through 1.3.12, this should be used
- instead of pressing Control-C in a running Apache console
- window, because it allowed Apache to end any current
- transactions and cleanup gracefully.</p>
-
- <p>As of version 1.3.13 pressing Control-C in the running
- window will cleanup Apache quite gracefully, and you may use -k
- stop as an alias for -k shutdown. Earlier versions do not
- understand -k stop.</p>
-
- <p>You can also tell Apache to restart. This makes it re-read
- the configuration files. Any transactions in progress are
- allowed to complete without interruption. To restart Apache,
- run:</p>
-<pre>
- apache -k restart
-</pre>
-
- <p><strong>Note: This option is only available with Apache
- 1.3.3 and later. For earlier versions, you need to use
- Control-C in the Apache console window to shut down the server,
- and then restart the server with the Apache
- command.</strong></p>
-
- <p>Another <em>very useful</em> feature is the configuration
- files test option. To test the Apache configuration files,
- run:</p>
-<pre>
- apache -t
-</pre>
-
- <p>This is especially useful following alterations to the
- configuration files while Apache is still running. You can make
- the changes, confirm that the syntax is good by issuing the
- "apache -t" command, then restart Apache with "apache -k
- restart". Apache will re-read the configuration files, allowing
- any transactions in progress to complete without interruption.
- Any new request will then be served using the new
- configuration.</p>
-
- <p>Note: for people familiar with the Unix version of Apache,
- these commands provide a Windows equivalent to <code>kill -TERM
- <em>pid</em></code> and <code>kill -USR1 <em>pid</em></code>.
- The command line option used, <code>-k</code>, was chosen as a
- reminder of the "kill" command used on Unix.</p>
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server</h3>
- <a href="./"><img src="images/index.gif" alt="Index" /></a>
-
- </body>
-</html>
-
diff --git a/usr.sbin/httpd/htdocs/manual/windows.html.en b/usr.sbin/httpd/htdocs/manual/windows.html.en
index 58d1fab2f8b..79826421522 100644
--- a/usr.sbin/httpd/htdocs/manual/windows.html.en
+++ b/usr.sbin/httpd/htdocs/manual/windows.html.en
@@ -631,3 +631,636 @@
</body>
</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta name="generator" content="HTML Tidy, see www.w3.org" />
+
+ <title>Using Apache with Microsoft Windows</title>
+ </head>
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
+ vlink="#000080" alink="#FF0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="CENTER"><a id="help" name="help">Using Apache With
+ Microsoft Windows</a></h1>
+
+ <p>This document explains how to install, configure and run
+ Apache 1.3 under Microsoft Windows. Most of this document
+ assumes that you are installing Windows from a binary
+ distribution. If you want to compile Apache yourself (possibly
+ to help with development, or to track down bugs), see <a
+ href="win_compiling.html">Compiling Apache for Microsoft
+ Windows</a>.</p>
+
+ <p>If you find any bugs, please document them on our <a
+ href="http://httpd.apache.org/bug_report.html">bug reporting
+ page.</a> Contributions are welcomed, please submit your code
+ or suggestions to the bug report page, or join the new-httpd
+ mailing list.</p>
+
+ <p>The bug reporting page and new-httpd mailing list are
+ <em>not</em> provided to answer questions about configuration
+ or running Apache. Before you submit a bug report or request,
+ first consult this document, the <a
+ href="misc/FAQ.html">Frequently Asked Questions</a> page and
+ the other relevant documentation topics. If you still have a
+ question or problem, post it to the <a
+ href="news:comp.infosystems.www.servers.ms-windows">comp.infosystems.www.servers.ms-windows</a>
+ newsgroup, where many Apache users and several contributions
+ are more than willing to answer new and obscure questions about
+ using Apache on Windows.</p>
+
+ <p><a
+ href="http://groups.google.com/groups?hl=en&amp;lr=&amp;safe=off&amp;group=comp.infosystems.www.servers.ms-windows">
+ groups.google.com's newsgroup archive</a> offers easy browsing
+ of previous questions. Searching the newsgroup archives, you
+ will usually find your question was already asked and answered
+ by other users!</p>
+
+ <p><strong>Warning: Apache on NT has not yet been optimized for
+ performance.</strong> Apache still performs best, and is most
+ reliable on Unix platforms. Over time NT performance has
+ improved, and great progress is being made in the upcoming
+ version 2.0 of Apache for the Windows platforms. Folks doing
+ comparative reviews of webserver performance are still asked to
+ compare against Apache on a Unix platform such as Solaris,
+ FreeBSD, or Linux.</p>
+ <hr />
+
+ <ul>
+ <li><a href="#req">Requirements</a></li>
+
+ <li><a href="#down">Downloading Apache for Windows</a></li>
+
+ <li><a href="#inst">Installing Apache for Windows (binary
+ install)</a></li>
+
+ <li><a href="#run">Running Apache for Windows</a></li>
+
+ <li><a href="#test">Testing Apache for Windows</a></li>
+
+ <li><a href="#use">Configuring Apache for Windows</a></li>
+
+ <li><a href="#cmdline">Running Apache in a Console
+ Window</a></li>
+
+ <li><a href="#signal">Controlling Apache in a Console
+ Window</a></li>
+
+ <li><a href="win_service.html">Running Apache for Windows as
+ a Service</a></li>
+
+ <li><a href="win_service.html#signal">Controlling Apache as a
+ Service</a></li>
+
+ <li><a href="win_compiling.html">Compiling Apache for
+ Microsoft Windows</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="req" name="req">Requirements</a></h2>
+
+ <p>Apache 1.3 is designed to run on Windows NT 4.0 and Windows
+ 2000. The binary installer will only work with the x86 family
+ of processors, such as Intel's. Apache may also run on Windows
+ 95 and 98, but these have not been tested. In all cases TCP/IP
+ networking must be installed.</p>
+
+ <p>If running on NT 4.0, installing Service Pack 3 or 6 is
+ recommended, as Service Pack 4 created known issues with
+ TCP/IP and WinSock integrity that were resolved in Service
+ Pack 5 and later.</p>
+
+ <p><strong>Note: "Winsock2" is required for Apache 1.3.7 and
+ later.</strong></p>
+
+ <p>If running on Windows 95, the "Winsock2" upgrade must be
+ installed before Apache will run. "Winsock2" for Windows 95 is
+ available <a
+ href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp">
+ here</a> or via <a
+ href="http://www.microsoft.com/windows95/downloads/">here</a>.
+ Be warned that the Dialup Networking 1.2 (MS DUN) updates
+ include a Winsock2 that is entirely insufficient, and the
+ Winsock2 update must be reinstalled after installing Windows 95
+ dialup networking. Windows 98, NT (Service Pack 3 or later) and
+ 2000 users need to take no special action, those versions provide
+ Winsock2 as distributed.</p>
+
+ <h2><a id="down" name="down">Downloading Apache for
+ Windows</a></h2>
+
+ <p>Information on the latest version of Apache can be found on
+ the Apache web server at <a
+ href="http://httpd.apache.org/">http://httpd.apache.org/</a>.
+ This will list the current release, any more recent alpha or
+ beta-test releases, together with details of mirror web and
+ anonymous FTP sites.</p>
+
+ <p>You should download the binary build of Apache for Windows
+ named as <code>apache_1_3_#-win32-src.msi</code> if you are
+ interested in the source code, or simply
+ <code>apache_1_3_#-win32-no_src.msi</code> if you don't plan to
+ do anything with the source code and appreciate a faster
+ download. Each of these files contains the complete Apache
+ runtime. You must have the Microsoft Installer version 1.10
+ installed on your PC before you can install the Apache runtime
+ distributions. Windows 2000 and Windows ME are both delivered
+ with the Microsoft Installer support, others will need to
+ download it. Instructions on locating the Microsoft Installer,
+ as well as the binary distributions of Apache, are found at
+ <a href="http://httpd.apache.org/dist/httpd/binaries/win32/"
+ >http://httpd.apache.org/dist/httpd/binaries/win32/</a></p>
+
+ <p>The source code is available in the <code>-src.msi</code>
+ distribution, or from the
+ <a href="http://httpd.apache.org/dist/httpd/"
+ >http://httpd.apache.org/dist/httpd/</a>
+ distribution directory as a <code>.zip</code> file. If you plan
+ on compiling Apache yourself, there is no need to install
+ either <code>.msi</code> package. The <code>.zip</code> file
+ contains only source code, with MS-DOS line endings (that is
+ cr/lf line endings, instead of the single lf used for Unix
+ files distributed in .tar.gz or .tar.Z archives.)</p>
+
+ <p>While the source is also available as a <samp>.tar.gz</samp>
+ <samp>.tar.Z</samp> archive, these contain unix lf line endings
+ that cause grief for Windows users. To use those archives, you
+ must convert at least the <samp>.mak</samp> and
+ <samp>.dsp</samp> files to have DOS line endings before MSVC
+ can understand them. Please stick with the <samp>.zip</samp>
+ file to spare yourself the headache.</p>
+
+ <p>Note: prior to 1.3.17 Apache was distributed as an
+ InstallShield 2.0 <samp>.exe</samp> file. With an increasing
+ number of users unable to run the InstallShield package [on
+ Windows ME or Windows 2000] the binaries were repackaged into
+ the readily available Microsoft Installer <samp>.msi</samp>
+ format.</p>
+
+ <h2><a id="inst" name="inst">Installing Apache for
+ Windows</a></h2>
+
+ <p>Run the Apache <samp>.msi</samp> file you downloaded above.
+ This will prompt you for:</p>
+
+ <ul>
+ <li>whether or not you want to run Apache for all users
+ (installing Apache as a Service), or if you want it installed
+ to run in a console window when you choose the Start Apache
+ shortcut.</li>
+
+ <li>your Server name, Domain name and administrative email
+ account.</li>
+
+ <li>the directory to install Apache into (the default is
+ <code>C:\Program Files\Apache Group\Apache</code> although
+ you can change this to any other directory you wish)</li>
+
+ <li>the installation type. The "Complete" option installs
+ everything, including the source code if you downloaded the
+ <samp>-src.msi</samp> package. Choose the "Custom" install if
+ you choose not to install the documentation, or the source
+ code from that package.</li>
+ </ul>
+
+ <p>During the installation, Apache will configure the files in
+ the <samp>conf</samp> directory for your chosen installation
+ directory. However if any of the files in this directory
+ already exist they will <strong>not</strong> be overwritten.
+ Instead the new copy of the corresponding file will be left
+ with the extension <samp>.default.conf</samp>. So, for example,
+ if <samp>conf\httpd.conf</samp> already exists it will not be
+ altered, but the version which would have been installed will
+ be left in <samp>conf\httpd.default.conf</samp>. After the
+ installation has finished you should manually check to see what
+ in new in the <samp>.default.conf</samp> file, and if necessary
+ update your existing configuration files.</p>
+
+ <p>Also, if you already have a file called
+ <samp>htdocs\index.html</samp> then it will not be overwritten
+ (no <samp>index.html.default</samp> file will be installed
+ either). This should mean it is safe to install Apache over an
+ existing installation (but you will have to stop the existing
+ server running before doing the installation, then start the
+ new one after the installation is finished).</p>
+
+ <p>After installing Apache, you should edit the configuration
+ files in the <samp>conf</samp> directory as required. These
+ files will be configured during the install ready for Apache to
+ be run from the directory where it was installed, with the
+ documents served from the subdirectory <samp>htdocs</samp>.
+ There are lots of other options which should be set before you
+ start really using Apache. However to get started quickly the
+ files should work as installed.</p>
+
+ <p>If you eventually uninstall Apache, your configuration and log
+ files will not be removed. You will need to delete the installation
+ directory tree ("C:\Program Files\Apache Group" by default)
+ yourself if you do not care to keep your configuration and
+ other web files. Since the httpd.conf file is your
+ accumulated effort in using Apache, you need to take the effort
+ to remove it. The same happens for all other files you may have
+ created, as well as any log files Apache created.</p>
+
+ <h2><a id="run" name="run">Running Apache for Windows</a></h2>
+
+ <p>There are two ways you can run Apache:</p>
+
+ <ul>
+ <li>As a <a href="win_service.html">"service"</a>. This is
+ the best option if you want Apache to automatically start
+ when your machine boots, and to keep Apache running when you
+ log-off.</li>
+
+ <li>From a <a href="#cmdline">console window</a>. Closing
+ this console window will terminate the Apache server.</li>
+ </ul>
+
+ <p><strong>Complete the steps below before you attempt to start
+ Apache as a Windows "<a
+ href="win_service.html">service</a>"!</strong></p>
+
+ <p>To run Apache from a console window, select the "Start
+ Apache as console app" option from the Start menu (in Apache
+ 1.3.4 and earlier, this option was called "Apache Server").
+ This will open a console window and start Apache running inside
+ it. The window will remain active until you stop Apache. To
+ stop Apache running, either press select the "Shutdown Apache
+ console app" icon option from the Start menu (this is not
+ available in Apache 1.3.4 or earlier), or see <a
+ href="#signal">Controlling Apache in a Console Window</a> for
+ commands to control Apache in a console window.</p>
+
+ <p>In Apache 1.3.13 and above it is now quite safe to press
+ Ctrl+C or Ctrl+Break to stop the Apache in the console window.
+ And on Windows NT/2000 with version 1.3.13, Apache will stop if
+ you select 'Close' from the system menu (clicking the icon on
+ the top-left corner of the console window) or click the close
+ (X) button on the top-right corner. The Close menu item and
+ close (X) button also work on Windows 95/98 as of Apache
+ version 1.3.15. But do <em>not</em> try any of these approaches
+ on earlier versions of the Apache server, since Apache would
+ not clean up.</p>
+
+ <h2><a id="test" name="test">Testing Apache for
+ Windows</a></h2>
+
+ <p>If you have trouble starting Apache please use the following
+ steps to isolate the problem. This applies if you started
+ Apache using the "Start Apache as a console app" shortcut from
+ the Start menu and the Apache console window closes immediately
+ (or unexpectedly) or if you have trouble starting Apache as a
+ service.</p>
+
+ <p>Run the "Command Prompt" from the Start Menu - Programs
+ list. Change to the folder to which you installed Apache, type
+ the command apache, and read the error message. Then review the
+ error.log file for configuration mistakes. If you accepted the
+ defaults when you installed Apache, the commands would be:</p>
+<pre>
+ c:
+ cd "\program files\apache group\apache"
+ apache
+ <em>Wait for Apache to exit, or press</em> Ctrl+C
+ more &lt;logs\error.log
+</pre>
+
+ <p>After looking at the error.log you will probably have a good
+ chance of working out what went wrong and be able to fix the
+ problem and try again. If you are unable to work it out then
+ please follow the <a href="#help">guidelines for assistance</a>
+ at the top of this document or in the <a
+ href="misc/FAQ.html#what2do">FAQ</a>. Many users discover that
+ the nature of the httpd.conf file is easier to manage and audit
+ than page after page of configuration dialog boxes.</p>
+
+ <p>After starting Apache running (either in a console window or
+ as a service) it will be listening to port 80 (unless you
+ changed the <samp>Port</samp>, <samp>Listen</samp> or
+ <samp>BindAddress</samp> directives in the configuration
+ files). To connect to the server and access the default page,
+ launch a browser and enter this URL:</p>
+<pre>
+ http://localhost/
+</pre>
+
+ <p>This should respond with a welcome page, and a link to the
+ Apache manual. If nothing happens or you get an error, look in
+ the <samp>error.log</samp> file in the <samp>logs</samp>
+ directory. If your host isn't connected to the net, you may
+ have to use this URL:</p>
+<pre>
+ http://127.0.0.1/
+</pre>
+
+ <p>Once your basic installation is working, you should
+ configure it properly by editing the files in the
+ <samp>conf</samp> directory.</p>
+
+ <p>Because Apache <em>CANNOT</em> share the same port with
+ another TCP/IP application, you may need to stop or uninstall
+ certain services first. These include (but are not limited to)
+ other web servers, and firewall products such as BlackIce. If
+ you can only start Apache with these services disabled,
+ reconfigure either Apache or the other product so that they do
+ not listen on the same TCP/IP ports. You may find the Windows
+ "netstat -an" command useful in finding out what ports are in
+ use.</p>
+
+ <h2><a id="use" name="use">Configuring Apache for
+ Windows</a></h2>
+
+ <p>Apache is configured by files in the <samp>conf</samp>
+ directory. These are the same as files used to configure the
+ Unix version, but there are a few different directives for
+ Apache on Windows. See the <a href="./">Apache
+ documentation</a> for all the available directives.</p>
+
+ <p>Begin configuring the Apache server by reviewing
+ <code>httpd.conf</code> and its directives. Although the files
+ <code>access.conf</code> and <code>srm.conf</code> both exist,
+ these are old files which are no longer used by most
+ administrators, and you will find no directives there.</p>
+
+ <p><code>httpd.conf</code> contains a great deal of
+ documentation itself, followed by the default configuration
+ directives recommended when starting with the Apache server.
+ Begin by reading these comments to understand the configuration
+ file, and make small changes, starting Apache in a console
+ window with each change. If you make a mistake, it will be
+ easier to back up to configuration that last worked. You will
+ have a better idea of which change caused the server to
+ fail.</p>
+
+ <p>The main differences in Apache for Windows are:</p>
+
+ <ul>
+ <li>
+ Because Apache for Windows is multithreaded, it does not
+ use a separate process for each request, as Apache does
+ with Unix. Instead there are usually only two Apache
+ processes running: a parent process, and a child which
+ handles the requests. Within the child each request is
+ handled by a separate thread. So, "process"-management
+ directives are different:
+
+ <ul>
+ <li><a
+ href="mod/core.html#maxrequestsperchild">MaxRequestsPerChild</a>
+ - Like the Unix directive, this controls how many
+ requests a process will serve before exiting. However,
+ unlike Unix, a process serves all the requests at once,
+ not just one, so if this is set, it is recommended that a
+ very high number is used. The recommended default,
+ <code>MaxRequestsPerChild 0</code>, does not cause the
+ process to ever exit.</li>
+
+ <li><a
+ href="mod/core.html#threadsperchild">ThreadsPerChild</a>
+ - This directive is new, and tells the server how many
+ threads it should use. This is the maximum number of
+ connections the server can handle at once; be sure and
+ set this number high enough for your site if you get a
+ lot of hits. The recommended default is
+ <code>ThreadsPerChild 50</code>.</li>
+ </ul>
+ </li>
+
+ <li>The directives that accept filenames as arguments now
+ must use Windows filenames instead of Unix ones. However,
+ because Apache uses Unix-style names internally, you must use
+ forward slashes, not backslashes. Drive letters can be used;
+ if omitted, the drive with the Apache executable will be
+ assumed.</li>
+
+ <li>
+ Apache for Windows has the ability to load modules at
+ runtime, without recompiling the server. If Apache is
+ compiled normally, it will install a number of optional
+ modules in the <code>modules</code> directory. To activate
+ these, or other modules, the new <a
+ href="mod/mod_so.html#loadmodule">LoadModule</a> directive
+ must be used. For example, to activate the status module, use
+ the following (in addition to the status-activating
+ directives in <code>httpd.conf</code> - see <a
+ href="mod/mod_status.html">the mod_status docs</a> for more
+ details.):
+<pre>
+ LoadModule status_module modules/mod_status.so
+</pre>
+
+ <p>Information on <a
+ href="mod/mod_so.html#creating">creating loadable
+ modules</a> is also available. Note that some 3rd party
+ modules may be distributed in the old style names,
+ ApacheModuleFoo.dll. Always set the LoadModule command as
+ directed by the 3rd party module's own documentation.</p>
+ </li>
+
+ <li>Apache for Windows version 1.3 series is implemented in
+ synchronous calls. This poses an enormous problem for CGI
+ authors, who won't see unbuffered results sent immediately to
+ the browser. This is not the behavior described for CGI in
+ Apache, but it is a side-effect of the Windows port. Apache
+ 2.0 is making progress to implement the expected asynchronous
+ behavior, and we hope to discover that the NT/2000
+ implementation allows CGI's to behave as documented.</li>
+
+ <li>
+ <p>Apache can also load ISAPI Extensions (<em>i.e.</em>,
+ Internet Server Applications), such as those used by
+ Microsoft's IIS, and other Windows servers. <a
+ href="mod/mod_isapi.html">More information is
+ available.</a> Note that Apache <em>CANNOT</em> load ISAPI
+ Filters.</p>
+ </li>
+
+ <li>When running CGI scripts, the method Apache uses to find
+ the interpreter for the script is configurable using the <a
+ href="mod/core.html#scriptinterpretersource">ScriptInterpreterSource</a>
+ directive.</li>
+
+ <li>Since it is often difficult to manage files with names
+ like <code>.htaccess</code> under windows, you may find it
+ useful to change the name of this configuration file using
+ the <a href="mod/core.html#accessfilename">AccessFilename</a>
+ directive.</li>
+ </ul>
+
+ <h2><a id="cmdline" name="cmdline">Running Apache in a Console
+ Window</a></h2>
+
+ <p>The Start menu icons and the NT Service manager can provide
+ a simple interface for administering Apache. But in some cases
+ it is easier to work from the command line.</p>
+
+ <p>When working with Apache it is important to know how it will
+ find the configuration files. You can specify a configuration
+ file on the command line in two ways:</p>
+
+ <ul>
+ <li>-f specifies a path to a particular configuration
+ file:</li>
+ </ul>
+<pre>
+ apache -f "c:\my server\conf\my.conf"
+</pre>
+<pre>
+ apache -f test\test.conf
+</pre>
+
+ <ul>
+ <li>-n specifies the configuration file of an installed
+ Apache service (Apache 1.3.7 and later):</li>
+ </ul>
+<pre>
+ apache -n "service name"
+</pre>
+
+ <p>In these cases, the proper ServerRoot should be set in the
+ configuration file.</p>
+
+ <p>If you don't specify a configuration file name with -f or
+ -n, Apache will use the file name compiled into the server,
+ usually "conf/httpd.conf". Invoking Apache with the -V switch
+ will display this value labeled as SERVER_CONFIG_FILE. Apache
+ will then determine its ServerRoot by trying the following, in
+ this order:</p>
+
+ <ul>
+ <li>A ServerRoot directive via a -C switch.</li>
+
+ <li>The -d switch on the command line.</li>
+
+ <li>The current working directory</li>
+
+ <li>A registry entry, created if you did a binary
+ install.</li>
+
+ <li>The server root compiled into the server.</li>
+ </ul>
+
+ <p>The server root compiled into the server is usually
+ "/apache". invoking apache with the -V switch will display this
+ value labeled as HTTPD_ROOT.</p>
+
+ <p>When invoked from the start menu, Apache is usually passed
+ no arguments, so using the registry entry is the preferred
+ technique for console Apache.</p>
+
+ <p>During a binary installation, a registry key will have been
+ installed, for example:</p>
+<pre>
+ HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot
+</pre>
+
+ <p>This key is compiled into the server and can enable you to
+ test new versions without affecting the current version. Of
+ course you must take care not to install the new version on top
+ of the old version in the file system.</p>
+
+ <p>If you did not do a binary install then Apache will in some
+ scenarios complain about the missing registry key. This warning
+ can be ignored if it otherwise was able to find its
+ configuration files.</p>
+
+ <p>The value of this key is the "ServerRoot" directory,
+ containing the <samp>conf</samp> directory. When Apache starts
+ it will read the <samp>httpd.conf</samp> file from this
+ directory. If this file contains a <samp>ServerRoot</samp>
+ directive which is different from the directory obtained from
+ the registry key above, Apache will forget the registry key and
+ use the directory from the configuration file. If you copy the
+ Apache directory or configuration files to a new location it is
+ vital that you update the <samp>ServerRoot</samp> directory in
+ the <samp>httpd.conf</samp> file to the new location.</p>
+
+ <p>To run Apache from the command line as a console
+ application, use the following command:</p>
+<pre>
+ apache
+</pre>
+
+ <p>Apache will execute, and will remain running until it is
+ stopped by pressing control-C.</p>
+
+ <h2><a id="signal" name="signal">Controlling Apache in a
+ Console Window</a></h2>
+
+ <p>You can tell a running Apache to stop by opening another
+ console window and running:</p>
+<pre>
+ apache -k shutdown
+</pre>
+
+ <p><strong>Note: This option is only available with Apache
+ 1.3.3 and later.</strong></p>
+
+ <p>For earlier versions, you must use Control-C in the Apache
+ console window to shut down the server.</p>
+
+ <p>From version 1.3.3 through 1.3.12, this should be used
+ instead of pressing Control-C in a running Apache console
+ window, because it allowed Apache to end any current
+ transactions and cleanup gracefully.</p>
+
+ <p>As of version 1.3.13 pressing Control-C in the running
+ window will cleanup Apache quite gracefully, and you may use -k
+ stop as an alias for -k shutdown. Earlier versions do not
+ understand -k stop.</p>
+
+ <p>You can also tell Apache to restart. This makes it re-read
+ the configuration files. Any transactions in progress are
+ allowed to complete without interruption. To restart Apache,
+ run:</p>
+<pre>
+ apache -k restart
+</pre>
+
+ <p><strong>Note: This option is only available with Apache
+ 1.3.3 and later. For earlier versions, you need to use
+ Control-C in the Apache console window to shut down the server,
+ and then restart the server with the Apache
+ command.</strong></p>
+
+ <p>Another <em>very useful</em> feature is the configuration
+ files test option. To test the Apache configuration files,
+ run:</p>
+<pre>
+ apache -t
+</pre>
+
+ <p>This is especially useful following alterations to the
+ configuration files while Apache is still running. You can make
+ the changes, confirm that the syntax is good by issuing the
+ "apache -t" command, then restart Apache with "apache -k
+ restart". Apache will re-read the configuration files, allowing
+ any transactions in progress to complete without interruption.
+ Any new request will then be served using the new
+ configuration.</p>
+
+ <p>Note: for people familiar with the Unix version of Apache,
+ these commands provide a Windows equivalent to <code>kill -TERM
+ <em>pid</em></code> and <code>kill -USR1 <em>pid</em></code>.
+ The command line option used, <code>-k</code>, was chosen as a
+ reminder of the "kill" command used on Unix.</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
+
diff --git a/usr.sbin/httpd/htdocs/manual/windows.html.ja.jis b/usr.sbin/httpd/htdocs/manual/windows.html.ja.jis
index 395d951be66..8f02d9b5752 100644
--- a/usr.sbin/httpd/htdocs/manual/windows.html.ja.jis
+++ b/usr.sbin/httpd/htdocs/manual/windows.html.ja.jis
@@ -642,3 +642,647 @@
</body>
</html>
+<?xml version="1.0" encoding="iso-2022-jp"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
+ <head>
+
+ <title>Microsoft Windows $B$G$N(B Apache $B$N;HMQ(B</title>
+
+ </head>
+ <!-- English revision: 1.56 -->
+ <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
+
+ <body bgcolor="#ffffff" text="#000000" link="#0000ff"
+ vlink="#000080" alink="#ff0000">
+ <div align="CENTER">
+ <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" />
+
+ <h3>Apache HTTP Server</h3>
+ </div>
+
+
+
+ <h1 align="center"><a id="help" name="help">Microsoft Windows $B$G$N(B Apache $B$N;HMQ(B</a></h1>
+
+ <p>$B$3$NJ8=q$O!"(BMicrosoft Windows $B>e$G$N(B Apache 1.3
+ $B$N%$%s%9%H!<%k!"@_Dj!"<B9TJ}K!$r@bL@$7$^$9!#$3$NJ8=q$NBgItJ,$O!"(B
+ $B%P%$%J%jG[I[$+$i(B Windows $B$K%$%s%9%H!<%k$7$F$$$k$HA[Dj$7$F$$$^$9!#(B
+ $B$b$7(B ($B3+H/$N<j=u$1$d%P%0DI@W$N$?$a(B) Apache $B$r<+J,$G%3%s%Q%$%k(B
+ $B$7$?$$>l9g$O!"(B<a href="win_compiling.html">Microsoft Windows $B$G$N(B
+ Apache $B$N%3%s%Q%$%k(B</a> $B$r8+$F$/$@$5$$!#(B
+ </p>
+
+ <p>$B$b$7%P%0$r8+$D$1$?$i!"(B<a
+ href="http://httpd.apache.org/bug_report.html"
+ >$B%P%0Js9p%Z!<%8(B</a>$B$GJs9p$7$F$/$@$5$$!#(B
+ $B$=$&$$$C$?4sM?$O4?7^$7$^$9!#(B
+ $B%3!<%I$^$?$ODs0F$r%P%0Js9p%Z!<%8$GJs9p$9$k$+!"(B
+ new-httpd $B%a!<%j%s%0%j%9%H$K;22C$7$F$/$@$5$$!#(B</p>
+
+ <p>$B%P%0Js9p%Z!<%8$H(B new-httpd $B%a!<%j%s%0%j%9%H$O!"(BApache
+ $B$N@_Dj$d<B9TJ}K!$K$D$$$F<ALd$9$k$?$a$KMQ0U$7$F$$$k$o$1$G$O(B
+ <em>$B$"$j$^$;$s(B</em>$B!#(B $B%P%0!&%l%]!<%H$dMW5a$rDs=P$9$kA0$K$^$:!"(B
+ $B$3$NJ8=q!"(B<a href="misc/FAQ.html">$B$h$/=P$k<ALd(B</a>
+ $B$N%Z!<%8!"$=$NB>4XO"$9$kJ8=q$r;2>H$7$F$/$@$5$$!#(B
+ $B$=$l$G$b$^$@5?Ld$dLdBj$,$"$k$J$i!"(B<a
+ href="news:comp.infosystems.www.servers.ms-windows"
+ >comp.infosystems.www.servers.ms-windows</a>
+ $B%K%e!<%9%0%k!<%W$KEj9F$7$F$/$@$5$$!#B?$/$N(B Apache $B%f!<%6$,$$$F(B
+ Windows $B>e$G(B Apache $B$r;HMQ$9$k$K$"$?$C$F$N?7$7$$5?Ld!"(B
+ $B$o$+$j$K$/$$5?Ld$KBP$7$FJVEz$r$/$l$k$G$7$g$&!#(B</p>
+
+ <p><a
+ href="http://groups.google.com/groups?hl=en&amp;lr=&amp;safe=off&amp;group=comp.infosystems.www.servers.ms-windows"
+ >groups.google.com $B$N%K%e!<%9%0%k!<%W$N%"!<%+%$%V(B</a>$B$K$h$j0JA0$NLdBj$r(B
+ $B4JC1$K1\Mw$G$-$^$9!#%K%e!<%9%0%k!<%W$N%"!<%+%$%V$r8!:w$9$l$P!"(B
+ $B$[$H$s$I$NLdBj$O4{=P$G!"C/$+$,2sEz$7$F$$$k$N$r8+$D$1$i$l$k$G$7$g$&!#(B
+ </p>
+
+ <p><strong>$B7Y9p(B: NT $B>e$G$N(B Apache $B$O@-G=LL$G$^$@:GE,2=$5$l$F$$$^$;$s!#(B</strong>
+ $B8=;~E@$G$O(B Apache $B$O(B Unix $B%W%i%C%H%U%)!<%`$G:G9b$N@-G=$rH/4x$7!"(B
+ $B:G$b?.Mj$G$-$^$9!#;~$H$H$b$K(B NT $B$G$N@-G=$O2~A1$5$l$F!"(BWindows
+ $B%W%i%C%H%U%)!<%`>e$G$OMh$?$k$Y$-%P!<%8%g%s(B 2.0
+ $B$K$*$$$FBg$-$/?JJb$7$F$$$^$9!#%&%'%V%5!<%P@-G=$NAjBPE*$J%l%S%e!<$r(B
+ $B$7$F$$$k?M$KBP$7$F$O!"$^$@!"(BSolaris$B!"(BFreeBSD$B!"(BLinux $B$J$I$N(B Unix
+ $B%W%i%C%H%U%)!<%`$G$N(B Apache $B$KBP$7$FHf3S$9$k$h$&$K$*4j$$$7$F$$$^$9!#(B
+ </p>
+ <hr />
+
+ <ul>
+ <li><a href="#req">$BMW7o(B</a></li>
+
+ <li><a href="#down">Windows $BMQ$N(B Apache $B$r%@%&%s%m!<%I$9$k(B</a></li>
+
+ <li><a href="#inst">Windows $BMQ$N(B Apache $B$r%$%s%9%H!<%k$9$k(B
+ $B!J%P%$%J%j%$%s%9%H!<%k(B</a>$B!K(B</li>
+
+ <li><a href="#run">Windows $BMQ$N(B Apache $B$r<B9T$9$k(B</a></li>
+
+ <li><a href="#test">Windows $BMQ$N(B Apache $B$r%F%9%H$9$k(B</a></li>
+
+ <li><a href="#use">Windows $BMQ$N(B Apache $B$r@_Dj$9$k(B</a></li>
+
+ <li><a href="#cmdline">$B%3%s%=!<%k%&%#%s%I%&$G(B Apache
+ $B$r<B9T$9$k(B</a></li>
+
+ <li><a href="#signal">$B%3%s%=!<%k%&%#%s%I%&$G(B Apache
+ $B$r%3%s%H%m!<%k$9$k(B</a></li>
+
+ <li><a href="win_service.html">$B%5!<%S%9$H$7$F(B Windows $BMQ$N(B
+ Apache $B$r<B9T$9$k(B</a></li>
+
+ <li><a href="win_service.html#signal">$B%5!<%S%9$H$7$F(B Apache
+ $B$r%3%s%H%m!<%k$9$k(B</a></li>
+
+ <li><a href="win_compiling.html">Microsoft Windows $BMQ$N(B Apache
+ $B$r%3%s%Q%$%k$9$k(B</a></li>
+ </ul>
+ <hr />
+
+ <h2><a id="req" name="req">$BMW7o(B</a></h2>
+
+ <p>Apache 1.3 $B$O!"(BWindowsNT 4.0 $B$H(B Windows 2000
+ $B$GF0$/$h$&$K@_7W$5$l$F$$$^$9!#%P%$%J%j$N%$%s%9%H!<%i$O(B
+ $B%$%s%F%k@=$N$b$N$J$I(B x86 $B%U%!%_%j!<$N%W%m%;%C%5$G$N$_F0:n$7$^$9!#(B
+ Apache $B$O(B Windows 95 $B$d(B 98 $B$G$bF0:n$7$^$9$,!"(B
+ $B$3$l$i$O%F%9%H$5$l$F$$$^$;$s!#(B
+ $B$9$Y$F$N>l9g(B TCP/IP $B%M%C%H%o!<%/$,%$%s%9%H!<%k$5$l$F$$$J$1$l$P$J$j$^$;$s!#(B</p>
+
+ <p>NT 4.0 $B$G<B9T$9$k>l9g!"%5!<%S%9%Q%C%/(B 3 $B$^$?$O(B 6
+ $B$N%$%s%9%H!<%k$r?d>)$7$^$9!#%5!<%S%9%Q%C%/(B 4 $B$K$O(B TCP/IP $B$H(B WinSock
+ $B$NLdBj$,$"$j!"$=$l$O%5!<%S%9%Q%C%/(B 5 $B0J9_$G$O2r7h$5$l$F$$$^$9!#(B</p>
+
+
+ <p><strong>$BCm(B: Apache 1.3.7 $B0J9_$G$O(B &quot;Winsock2&quot;
+ $B$,I,MW$K$J$j$^$9!#(B</strong></p>
+
+ <p>Windows 95 $B$G<B9T$9$k>l9g!"(BApache $B$r<B9T$9$kA0$K(B &quot;Winsock2&quot;
+ $B%"%C%W%0%l!<%I$r%$%s%9%H!<%k$7$J$1$l$P$J$j$^$;$s!#(B
+ Windows 95 $BMQ$N(B &quot;Winsock2&quot; $B$O(B<a
+ href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp"
+ >$B$3$3(B</a>$B$+(B<a href="http://www.microsoft.com/windows95/downloads/"
+ >$B$3$3(B</a>$B$+$iF~<j2DG=$G$9!#%@%$%"%k%"%C%W%M%C%H%o!<%/(B 1.2 (MS DUN)
+ $B%"%C%W%G!<%H$K$OA4$/ITE,Ev$J(B Winsock2 $B$,4^$^$l$F$$$k$N$G(B Winsock2
+ $B%"%C%W%G!<%H$O!"(BWindows 95 $B%@%$%"%k%"%C%W%M%C%H%o!<%/$r%$%s%9%H!<%k(B
+ $B$7$?8e$K:F%$%s%9%H!<%k$7$J$1$l$P$J$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B
+ Windows 98$B!"(BNT ($B%5!<%S%9%Q%C%/(B 3 $B0J9_(B)$B!"$*$h$S(B 2000 $B$N%f!<%6$O(B
+ Winsock2 $B$,G[I[$5$l$F$$$k$b$N$K4^$^$l$F$$$k$?$a$3$3$G$OFC$K$9$k(B
+ $BI,MW$O$"$j$^$;$s!#(B</p>
+
+ <h2><a id="down" name="down">Windows $BMQ$N(B Apache
+ $B$N%@%&%s%m!<%I(B</a></h2>
+
+ <p>Apache $B$N:G?7$N%P!<%8%g%s$K$D$$$F$N>pJs$O!"(B<a
+ href="http://httpd.apache.org/">http://httpd.apache.org/</a> $B$N(B
+ Apache $B%&%'%V%5!<%P$N%Z!<%8$G8+$D$1$i$l$^$9!#$=$3$K$O!"8=:_$N%j%j!<%9!"(B
+ $B:G?7$N%"%k%U%!!"$^$?$O%Y!<%?%F%9%H%j%j!<%9$H$H$b$K%_%i!<%&%'%V%5%$%H!"(B
+ anonymous FTP $B%5%$%H$N>\:Y$,%j%9%H$5$l$^$9!#(B</p>
+
+
+ <p>Windows $BMQ$N(B Apache $B$N%P%$%J%jG[I[$O!"%=!<%9%3!<%I$K6=L#$,$"$k$J$i(B
+ <code>apache_1_3_#-win32-src.msi</code> $B$HL>IU$1$i$l$?$b$N$r!"(B
+ $B$^$?$O%=!<%9%3!<%I$KBP$7$F2?$b$9$k$D$b$j$,$J$/!"(B
+ $B%@%&%s%m!<%I$,Aa$/:Q$s$@J}$,$$$$$H;W$&$J$i(B
+ <code>apache_1_3_#-win32-no_src.msi</code> $B$r%@%&%s%m!<%I$7$F$/$@$5$$!#(B
+ $B$3$l$i$N%U%!%$%k$O$=$l$>$l$K40A4$J(B Apache $B%i%s%?%$%`$r4^$s$G$$$^$9!#(B
+ Apache $B%i%s%?%$%`G[I[$r%$%s%9%H!<%k$9$kA0$K(B Microsoft Installer
+ version 1.10 $B$,(B PC $B$K%$%s%9%H!<%k$5$l$F$$$J$1$l$P$J$j$^$;$s!#(BWindows
+ 2000 $B$*$h$S(B Windows Me $B$G$O(B Microsoft Installer $B$,I8=`$G(B
+ $B%5%]!<%H$5$l$F$$$^$9$,!"B>$G$O$=$l$r%@%&%s%m!<%I$9$kI,MW$,$"$j$^$9!#(B
+ Microsoft Installer $B$r8+$D$1$k<j=g$O(B Apache $B$N%P%$%J%jG[I[$HF1MM!"(B
+ <a href="http://httpd.apache.org/dist/httpd/binaries/win32/"
+ >http://httpd.apache.org/dist/httpd/binaries/win32/</a>
+ $B$K8+$D$+$j$^$9(B</p>
+
+ <p>$B%=!<%9%3!<%I$O(B <code>-src.msi</code> $B$NG[I[$^$?$O(B <a
+ href="http://httpd.apache.org/dist/httpd/"
+ >http://httpd.apache.org/dist/httpd/</a> $BG[I[%G%#%l%/%H%j$K$"$k(B
+ <code>.zip</code> $B%U%!%$%k$+$iF~<j2DG=$G$9!#$b$7(B Apache
+ $B$r<+J,$G%3%s%Q%$%k$9$k$D$b$j$J$i!"(B<code>.msi</code> $B%Q%C%1!<%8$r(B
+ $B%$%s%9%H!<%k$9$kI,MW$O$^$C$?$/$"$j$^$;$s!#(B<code>.zip</code>
+ $B%U%!%$%k$O!"(BMS-DOS $B$N2~9T(B (.tar.gz $B$d(B .tar.Z $B$GG[I[$5$l$k(B unix
+ $B$G;H$o$l$k(B lf $B$@$1$N2~9T$NBe$o$j$K(B cr/lf $B$N2~9T(B) $B$,;H$o$l$?(B
+ $B%=!<%9%3!<%I$@$1$,4^$^$l$^$9!#(B
+ </p>
+
+ <p>$B$^$?!"%=!<%9$O(B<samp>.tar.gz</samp>, <samp>.tar.Z</samp>
+ $B$N%"!<%+%$%V$+$i$bF~<j$G$-$^$9!#$3$l$i$N%U%!%$%k$K$O!"(B
+ Windows $B%f!<%6$K$O07$$$K$/$$(B unix lf $B2~9T$,4^$^$l$^$9!#(B
+ $B$=$N%"!<%+%$%V$r;H$&$?$a$K$O>/$J$/$H$b(B <samp>.mak</samp> $B$H(B
+ <samp>.dsp</samp> $B$r(B MSVC $B$,2r<a$G$-$k$h$&!"(BDOS
+ $B2~9T$KJQ49$7$J$1$l$P$J$j$^$;$s!#F,DK$N<o$r:n$i$J$$$?$a$K$b(B
+ <samp>.zip</samp> $B%U%!%$%k$rA*$s$G$/$@$5$$!#(B</p>
+
+ <p>$BCm(B: Apache 1.3.17 $B$h$jA0$G$O!"(BInstallShield 2.0 $B$N7A<0$N(B
+ <samp>.exe</samp> $B%U%!%$%k$,G[I[$5$l$^$7$?(B
+ [Windows Me $B$d(B Windows 2000 $B$G(B] InstallShield
+ $B%Q%C%1!<%8$r;H$($J$$%f!<%6$,A}Bg$7$?$?$a!"(B
+ $B%P%$%J%jG[I[$O4JC1$KMxMQ$G$-$k(B Microsoft Installer $B$N(B
+ <samp>.msi</samp> $B$N7A<0$G:F%Q%C%1!<%8$5$l$^$7$?(B</p>
+
+ <h2><a id="inst" name="inst">Windows $BMQ$N(B Apache
+ $B$N%$%s%9%H!<%k(B</a></h2>
+
+ <p>$B>e$G%@%&%s%m!<%I$7$?(B Apache <samp>.msi</samp> $B$r<B9T$7$F$/$@$5$$!#(B
+ $B$9$k$H0J2<$NF~NO$,MW5a$5$l$^$9(B</p>
+
+ <ul>
+ <li>$B$9$Y$F$N%f!<%6$G(B Apache $B$r<B9T$5$;$?$$(B ($B%5!<%S%9$H$7$F$N(B
+ Apache $B$N%$%s%9%H!<%k(B) $B$N$+!"$^$?$O(B Start Apache
+ $B$N%7%g!<%H%+%C%H$rA*$VEy$7$F!"(B
+ $BI,MW$J$H$-$K%3%s%=!<%k%&%#%s%I%&$+$i<B9T$5$;$?$$$N$+!#(B</li>
+
+ <li>$B%5!<%PL>!"%I%a%$%sL>!"$*$h$S4IM}<T$N(B E $B%a!<%k%"%+%&%s%H!#(B</li>
+
+
+ <li>Apache $B$r%$%s%9%H!<%k$9$k%G%#%l%/%H%j(B ($B%G%U%)%k%H$O(B
+ <code>C:\Program Files\Apache Group\Apache</code> $B$G$9$,(B
+ $B$3$l$O$I$N%G%#%l%/%H%j$K$G$bJQ99$G$-$^$9(B)$B!#(B</li>
+
+ <li>$B%$%s%9%H!<%k%?%$%W!#(B"Complete" $B%*%W%7%g%s$G$O!"(B
+ $B$9$Y$F$,%$%s%9%H!<%k$5$l$^$9!#$b$7(B <samp>-src.msi</samp>
+ $B%Q%C%1!<%8$r%@%&%s%m!<%I$7$?$N$J$i%=!<%9%3!<%I$b4^$^$l$^$9!#(B
+ $B%I%-%e%a%s%H$d%=!<%9%3!<%I$r%$%s%9%H!<%k(B
+ $B$7$?$/$J$$>l9g$O(B "Custom" $B%$%s%9%H!<%k$rA*$s$G$/$@$5$$!#(B</li>
+ </ul>
+
+ <p>$B%$%s%9%H!<%k$N4V$K!"(BApache $B$O%$%s%9%H!<%k%G%#%l%/%H%jCf$N(B
+ <samp>conf</samp> $B%G%#%l%/%H%j$N%U%!%$%k$r@_Dj$7$^$9!#$7$+$7!"(B
+ $B$3$N%G%#%l%/%H%j$N%U%!%$%k$,$I$l$+B8:_$7$?>l9g$O!"$=$l$r>e=q$-(B
+ <strong>$B$7$^$;$s(B</strong>$B!#Be$o$j$K!"BP1~$7$?%U%!%$%k$,(B
+ <samp>.default.conf</samp> $B$N3HD%;R$rIU$1$FJ]B8$5$l$^$9!#(B
+ $B$D$^$j!"Nc$($P(B <samp>conf\httpd.conf</samp> $B$,B8:_$7$?$J$i!"(B
+ $B$=$l<+BN$OJQ99$5$l$J$$$1$l$I$b!"%$%s%9%H!<%k$5$l$?$G$"$m$&%P!<%8%g%s$,(B
+ <samp>conf\httpd.default.conf</samp> $B$H$7$F;D$5$l$^$9!#%$%s%9%H!<%k8e$K!"(B
+ <samp>.default.conf</samp> $B$G$I$3$,?7$7$/$J$C$?$N$+!"(B
+ $B<jF0$G%A%'%C%/$9$Y$-$G!"I,MW$K1~$8$F4{B8$N@_Dj%U%!%$%k$r(B
+ $B99?7$7$F$/$@$5$$!#(B</p>
+
+ <p><samp>htdocs\index.html</samp>
+ $B%U%!%$%k$b!"$9$G$KB8:_$9$l$P>e=q$-$5$l$^$;$s(B
+ (<samp>index.html.default</samp> $B%U%!%$%k$H$7$F%$%s%9%H!<%k(B
+ $B$5$l$k$3$H$b$"$j$^$;$s(B)$B!#(B
+ $B$3$l$O!"4{B8$N(B Apache $B$X$N>e=q$-%$%s%9%H!<%k$,0BA4$J$3$H$r0UL#$7$^$9(B
+ ($B$7$+$7!"%$%s%9%H!<%k$r$9$kA0$KF0$$$F$$$k4{B8$N%5!<%P$O(B
+ $B;_$a$J$1$l$P$J$j$^$;$s!#(B
+ $B%$%s%9%H!<%k40N;8e$K?7$7$$$b$N$r3+;O$7$F$/$@$5$$(B)$B!#(B</p>
+
+ <p>Apache $B$r%$%s%9%H!<%k$7$?8e$K!"I,MW$J$i(B <samp>conf</samp>
+ $B%G%#%l%/%H%jFb$N@_Dj%U%!%$%k$rJT=8$7$F$/$@$5$$!#(B
+ $B$3$l$i$N%U%!%$%k$O%$%s%9%H!<%k$N4V$K!"(B
+ $B%$%s%9%H!<%k$5$l$?%G%#%l%/%H%j$+$i(B Apache
+ $B$,F0:n$G$-$k$h$&$K@_Dj$5$l!"%I%-%e%a%s%H$O%5%V%G%#%l%/%H%j(B
+ <samp>htdocs</samp> $B$N$b$N$,%/%i%$%"%s%H$KAw$i$l$^$9!#(B
+ Apache $B$r<B:]$K;H$$;O$a$kA0$K!"(B
+ $B@_Dj$5$l$k$Y$-%*%W%7%g%s$OB>$K$bBt;3$"$j$^$9$,!"(B
+ $B$9$0$K;H$$;O$a$?$$>l9g$O!"(B
+ $B%$%s%9%H!<%k$5$l$?$^$^$N>uBV$G$bF0:n$9$k$G$7$g$&!#(B</p>
+
+ <p>$B$b$7(B Apache $B$r%"%s%$%s%9%H!<%k$9$k$3$H$K$J$C$?>l9g!"@_Dj%U%!%$%k$H(B
+ $B%m%0%U%!%$%k$O:o=|$5$l$^$;$s!#@_Dj%U%!%$%k$dB>$N%&%'%V%U%!%$%k$r(B
+ $B;D$7$?$$$H;W$o$J$$$J$i%G%#%l%/%H%j%D%j!<(B ($B%G%U%)%k%H$G$O(B
+ "C:\Program Files\Apache Group") $B$r<+J,$G:o=|$9$kI,MW$,$"$j$^$9!#(B
+ httpd.conf $B%U%!%$%k$O(B Apache $B$r;H$&>e$GC_@Q$5$l$?@.2L$G$"$k$N$G!"(B
+ $B:o=|$9$k$?$a$K$OO+NO$rJ'$&I,MW$,$"$j$^$9!#(B
+ $B$"$J$?$N:n$C$?2DG=@-$,$"$kB>$NA4$F$N%U%!%$%k$K$*$$$F$bF1$8$3$H$,(B
+ $B8@$($^$9!#(BApache $B$,:n$C$?%m%0%U%!%$%k$bF1MM$G$9!#(B</p>
+
+ <h2><a id="run" name="run">Windows $BMQ$N(B Apache $B$r<B9T$9$k(B</a></h2>
+
+ <p>Apache $B$r<B9T$9$k$K$O(B 2 $B$D$NJ}K!$,$"$j$^$9(B</p>
+
+ <ul>
+ <li>$B!V(B<a href="win_service.html">$B%5!<%S%9(B</a>$B!W$H$7$F!#(B
+ $B$b$7%^%7%s%V!<%H;~$K(B Apache $B$K!"<+F0E*$K3+;O$7$?$$!"(B
+ $B$^$?%m%0%*%U$7$F$b!"(BApache $B$NF0:n$OB3$1$?$$$J$i!"(B
+ $B$3$l$,:GA1$N%*%W%7%g%s$G$9!#(B</li>
+
+ <li><a href="#cmdline">$B%3%s%=!<%k%&%#%s%I%&(B</a>$B$+$i!#(B
+ $B$3$N%3%s%=!<%k%&%#%s%I%&$rJD$8$k$3$H$K$h$j(B Apache
+ $B%5!<%P$O=*N;$5$l$^$9!#(B</li>
+ </ul>
+
+ <p><strong>Apache $B$r(B Windows <a href="win_service.html"
+ >$B%5!<%S%9(B</a>$B$H$7$F3+;O$7$h$&$H$9$kA0$K!"(B
+ $B0J2<$N<j=g$r40N;$5$;$F$/$@$5$$(B!</strong></p>
+
+ <p>$B%3%s%=!<%k%&%#%s%I%&$+$i(B Apache $B$r<B9T$9$k$K$O%9%?!<%H%a%K%e!<$+$i!"(B
+ "Start Apache as console app" $B%*%W%7%g%s$rA*$s$G$/$@$5$$(B (Apache
+ 1.3.4 $B0JA0$G$O$3$N%*%W%7%g%s$O(B "Apache Server" $B$H8F$P$l$F$$$^$7$?(B)$B!#(B
+ $B$3$l$K$h$j%3%s%=!<%k%&%#%s%I%&$,3+$+$l!"(BApache $B$O$=$NCf$G<B9T$5$l$^$9!#(B
+ $B%&%#%s%I%&$O!"(BApache $B$r;_$a$k$^$G!"%"%/%F%#%V$G$"$jB3$1$^$9!#(BApache
+ $B$r;_$a$k$K$O!"%9%?!<%H%a%K%e!<$+$i!"(B"Shutdown Apache console app"
+ $B$rA*Br$9$k$+(B (Apache 1.3.4 $B0JA0$G$O;H$($^$;$s(B)$B!"(B<a
+ href="#signal">$B%3%s%=!<%k%&%#%s%I%&$G(B Apache $B$r%3%s%H%m!<%k$9$k(B</a>
+ $B$r;2>H$7$F!"%3%s%=!<%k%&%#%s%I%&$G(B Apache
+ $B$r%3%s%H%m!<%k$9$k%3%^%s%I$r;H$C$F$/$@$5$$!#(B</p>
+
+ <p>Apache 1.3.13 $B0J9_$G$O!"(BCtrl+C $B$^$?$O(B Ctrl+Break
+ $B$r2!$7$F$b!"%3%s%=!<%k%&%#%s%I%&$N(B Apache $B$r0BA4$K(B
+ $B;_$a$i$l$k$h$&$K$J$j$^$7$?!#$=$7$F!"%P!<%8%g%s(B 1.3.13 $B$+$i!"(B
+ Windows NT/2000 $B>e$G;H$&>l9g$O!"%7%9%F%`%a%K%e!<(B
+ ($B%3%s%=!<%k%&%#%s%I%&$N:8>e%3!<%J!<$N%"%$%3%s$r%/%j%C%/(B)
+ $B$+$i!VJD$8$k!W$rA*$V$+!"1&>e%3!<%J!<$N=*N;(B (X)
+ $B%\%?%s$r%/%j%C%/$9$k$3$H$K$h$j(B Apache $B$rDd;_$5$;$k$3$H$b$G$-$^$9!#(B
+ Apache $B%P!<%8%g%s(B 1.3.15 $B$+$i!"%a%K%e!<9`L\$N!VJD$8$k!W$d=*N;(B (X)
+ $B%\%?%s$O(B Windows 95/98 $B$G$bF/$-$^$9!#$7$+$7!"$=$l$h$jA0$N%P!<%8%g%s$N(B
+ Apache $B%5!<%P$G$O$-$l$$$K=*N;$7$J$$$N$G$=$&$$$C$?<jCJ$O(B
+ <em>$B:N$i$J$$$G$/$@$5$$(B</em>$B!#(B</p>
+
+ <h2><a id="test" name="test">Windows $BMQ$N(B Apache $B$r%F%9%H$9$k(B</a></h2>
+
+ <p>Apache $B$N5/F0$K$*$$$F%H%i%V%k$,$"$l$P!"LdBj$r@Z$jN%$9$?$a!"(B
+ $B0J2<$N<j=g$K=>$C$F$/$@$5$$!#$3$l$O(B "Start Apache as a console app"
+ $B$N%7%g!<%H%+%C%H$r%9%?!<%H%a%K%e!<$+$iA*$V$3$H$K$h$j(B Apache
+ $B$r5/F0$7$?$i$9$0$K(B ($B$"$k$$$OFMA3(B) $B%3%s%=!<%k%&%#%s%I%&$,JD$8$?!"$^$?$O(B
+ Apache $B$r%5!<%S%9$H$7$F3+;O$9$k$H$-$K%H%i%V%k$KAx$C$?>l9g$K(B
+ $B$"$F$O$^$j$^$9!#(B
+ </p>
+
+ <p>$B%9%?!<%H%a%K%e!<(B - $B%W%m%0%i%`(B $B$+$i!V%3%^%s%I%W%m%s%W%H!W$r<B9T$7$F$/$@$5$$!#(B
+ Apache $B$r%$%s%9%H!<%k$7$?%U%)%k%@$K0\F0$7!"(Bapache
+ $B%3%^%s%I$rF~NO$7$F%(%i!<%a%C%;!<%8$rFI$s$G$/$@$5$$!#(B
+ $B$=$7$F!"@_Dj%_%9$,$J$$$+!"(Berror.log $B%U%!%$%k$rD4$Y$F$/$@$5$$!#(B
+ Apache $B$r%G%U%)%k%H$G%$%s%9%H!<%k$7$?>l9g$O!"%3%^%s%I$O0J2<$NMM$K$J$j$^$9!#(B</p>
+<pre>
+ c:
+ cd "\program files\apache group\apache"
+ apache
+ <em>Apache $B$,=*N;$9$k$N$rBT$D$+!"(BCtrl+C $B$rF~NO(B</em>
+ more &lt;logs\error.log
+</pre>
+
+ <p>error.log $B$r3NG'$9$k$3$H$G!"$*$=$i$/0-$+$C$?$H$3$m$rD>$7!"(B
+ $BLdBj$r2r7h$7$F$d$jD>$9$3$H$,$G$-$k$G$7$g$&!#$b$7<+NO$G(B
+ $B2r7h$G$-$J$+$C$?>l9g$O!"(B
+ $B$3$NJ8=q$NKAF,$N(B <a href="#help">$BJd=u$N$?$a$N%,%$%I%i%$%s(B</a>
+ $B$d(B <a href="misc/FAQ.html#what2do">FAQ</a> $B$K=>$C$F$/$@$5$$!#(B
+ $BB?$/$N%f!<%6$O$?$/$5$s$N@_Dj%@%$%"%m%0$h$j$b!"(B
+ httpd.conf $B%U%!%$%k$NJ}$,4IM}$d8!::$,4JC1$J$3$H$K5$$E$/$G$7$g$&!#(B</p>
+
+
+ <p>$B3+;O8e$O(B Apache $B$O@_Dj%U%!%$%k$G(B <samp>Port</samp>,
+ <samp>Listen</samp> $B$^$?$O(B <samp>BindAddress</samp>
+ $B%G%#%l%/%F%#%V$rJQ99$7$F$$$J$1$l$P(B
+ ($B%3%s%=!<%k%&%#%s%I%&$G$b%5!<%S%9$G$b(B) 80 $BHV%]!<%H$r(B Listen
+ $B$7$F<B9T$5$l$^$9!#%V%i%&%6$r5/F0$7!"$3$N(B URL</p>
+<pre>
+ http://localhost/
+</pre>
+ <p>$B$rF~NO$7$F%5!<%P$K@\B3$7!"%G%U%)%k%H%Z!<%8$K%"%/%;%9$7$F$/$@$5$$(B</p>
+
+ <p>$B$3$l$G(B welcome $B%Z!<%8$,JV$5$l!"(BApache
+ $B%^%K%e%"%k$X$N%j%s%/$,$"$k$O$:$G$9!#$b$72?$b5/$3$i$J$$$+!"(B
+ $B%(%i!<$@$C$?>l9g$O!"(B<samp>logs</samp> $B%G%#%l%/%H%jCf$N(B
+ <samp>error.log</samp> $B%U%!%$%k$r8+$F$/$@$5$$!#$b$7%[%9%H$,%M%C%H$K(B
+ $B@\B3$5$l$F$$$J$$>l9g$O!"$3$N(B URL</p>
+<pre>
+ http://127.0.0.1/
+</pre>
+ <p>$B$r;H$&I,MW$,$"$k$+$b$7$l$^$;$s(B</p>
+
+ <p>$B$$$C$?$s4pK\E*$J%$%s%9%H!<%k$GF0:n$7$?$i!"(B<samp>conf</samp>
+ $B%G%#%l%/%H%jCf$N%U%!%$%k$rJT=8$7$FE,@Z$K@_Dj$7$F$/$@$5$$!#(B</p>
+
+ <p>Apache $B$OF1$8%]!<%H$rB>$N(B TCP/IP $B%"%W%j%1!<%7%g%s$H6&M-$9$k$3$H$O(B
+ <em>$B=PMh$J$$(B</em> $B$N$G!"$^$:FCDj$N%5!<%S%9$r;_$a$k$+%"%s%$%s%9%H!<%k(B
+ $B$9$kI,MW$,$"$k$+$b$7$l$^$;$s!#$3$l$K$OB>$N%&%'%V%5!<%P$d(B BlackIce
+ $B$J$I$N%U%!%$%"%&%)!<%k@=IJ$,(B ($B$3$l$i$K8B$i$l$^$;$s$,(B) $B4^$^$l$^$9!#(B
+ $B$=$l$i$N%5!<%S%9$r;HMQ$;$:(B Apache $B$@$1$r5/F0$5$;$k$+!"(B
+ $B$=$l$i$N@=IJ$HF1$8(B TCP/IP $B%]!<%H$r(B listen $B$7$J$$$h$&$K!"(BApache
+ $B$^$?$OB>$N@=IJ$r:F@_Dj$7$F$/$@$5$$!#$I$N%]!<%H$,;HMQ$5$l$F$$$k$N$+(B
+ $B$r3NG'$9$k$K$O(B Windows $B$N(B "netstat -an"
+ $B%3%^%s%I$,JXMx$+$bCN$l$^$;$s!#(B</p>
+
+ <h2><a id="use" name="use">Windows $BMQ$N(B Apache $B$r@_Dj$9$k(B</a></h2>
+
+ <p>Apache $B$O(B <samp>conf</samp>
+ $B%G%#%l%/%H%jCf$N%U%!%$%k$K$h$j@_Dj$5$l$^$9!#$3$l$i$O!"(BUnix
+ $B%P!<%8%g%s$N@_DjMQ%U%!%$%k$HF1$8$G$9$,!"(BWindows $B$N(B Apache
+ $B$O$$$/$i$+0[$J$k%G%#%l%/%F%#%V$,$"$j$^$9!#(B
+ $BM-8z$J%G%#%l%/%F%#%V$rCN$k$?$a$K$O(B <a href="./">Apache
+ $B%I%-%e%a%s%H(B</a>$B$r8+$F$/$@$5$$!#(B</p>
+
+
+ <p><code>httpd.conf</code> $B$H$=$N%G%#%l%/%F%#%V$rFI$`$3$H$+$i(B
+ Apache $B%5!<%P$N@_Dj$r$O$8$a$F$/$@$5$$!#(B<code>access.conf</code>
+ $B$H(B <code>srm.conf</code> $B$OB8:_$O$7$F$$$^$9$,!"(B
+ $B8=:_$G$O$[$H$s$I$N4IM}<T$K;H$o$l$J$$8E$$%U%!%$%k$G!"(B
+ $B$=$NCf$K$O%G%#%l%/%F%#%V$,A4$/=q$+$l$F$$$J$$$3$H$,J,$+$k$G$7$g$&!#(B</p>
+
+ <p><code>httpd.conf</code> $B$K$O$=$l<+BN$K%I%-%e%a%s%H$,$?$/$5$s4^$^$l$F$$$F!"(B
+ Apache $B%5!<%P$r3+;O$9$k;~$K?d>)$5$l$k%G%U%)%k%H@_Dj$N%G%#%l%/%F%#%V$,B3$$$F$$$^$9!#(B
+ $B@_Dj%U%!%$%k$rM}2r$9$k$K$O$=$l$i$N%3%a%s%H$rFI$`$3$H$+$i;O$a$F!"(B
+ $B>/$7JQ99$r$7$F$O%3%s%=!<%k%&%#%s%I%&$+$i(B Apache
+ $B$r3+;O$7!"JQ99$rE,MQ$5$;$F$/$@$5$$!#(B
+ $B4V0c$($?$H$-$K:G8e$K9T$C$?JQ99$r85$KLa$9$N$O$h$j4JC1$G$7$g$&!#(B
+ $B$=$&$9$k$&$A$K$I$NJQ99$,%5!<%P$NIT6q9g$K$D$J$,$k$N$+$H$$$&(B
+ $BCN<1$,@8$^$l$^$9!#(B
+ </p>
+
+ <p>Windows $BMQ$N(B Apache $B$G0[$J$k<g$JE@$O0J2<$NDL$j$G$9(B</p>
+
+ <ul>
+ <li>
+ Windows $BMQ$N(B Apache $B$O%^%k%A%9%l%C%I$J$N$G!"(BUnix $B$G$N(B Apache
+ $B$N$h$&$K$=$l$>$l$NMW5a$4$H$KJL8D$N%W%m%;%9$r;H$$$^$;$s!#(B
+ $BBe$o$j$K!"DL>o(B Apache $B%W%m%;%9$,Fs$D$@$1;H$o$l$^$9!#(B
+ $B?F%W%m%;%9$H%j%/%(%9%H$r=hM}$9$k;R%W%m%;%9$G$9!#(B
+ $B;R%W%m%;%9$G$O!"$=$l$>$l$N%j%/%(%9%H$OJL8D$N%9%l%C%I$K$h$j(B
+ $B=hM}$5$l$^$9!#=>$C$F!"!V%W%m%;%9!W(B
+ $B$r4IM}$9$k%G%#%l%/%F%#%V$,0[$J$j$^$9(B:
+
+ <ul>
+ <li><a
+ href="mod/core.html#maxrequestsperchild"
+ >MaxRequestsPerChild</a> - Unix $BMQ$N%G%#%l%/%F%#%V$HF1$8$h$&$K!"(B
+ $B%W%m%;%9$,>C$($k$^$G$K$I$l$/$i$$$N%j%/%(%9%H$r=hM}$9$k$N$+$r(B
+ $B%3%s%H%m!<%k$7$^$9!#$?$@$7!"(BUnix $B$H$O0[$J$j0l$D$N%W%m%;%9$O(B
+ $B0l$D$N%j%/%(%9%H$@$1$N=hM}$G$O$J$/!"$9$Y$F$NMW5a$rF1;~$K=hM}$7$^$9!#(B
+ $B=>$C$F!"$3$l$r@_Dj$9$k>l9g$O!"Hs>o$K9b$$?t$r;H$&$3$H$,?d>)$5$l$^$9!#(B
+ $B?d>)$5$l$?%G%U%)%k%H$N(B <code>MaxRequestsPerChild 0</code>
+ $B$G$O%W%m%;%9$O>C$($^$;$s!#(B</li>
+
+ <li><a
+ href="mod/core.html#threadsperchild">ThreadsPerChild</a> -
+ $B$3$N?7$7$$%G%#%l%/%F%#%V$O!"$$$/$D$N%9%l%C%I$r;H$&$N$+$r(B
+ $B<($7$^$9!#$3$l$O!"F1;~$K%5!<%P$,=hM}$G$-$k@\B3$N(B
+ $B:GBg?t$K$J$j$^$9!#BgNL$N%"%/%;%9$,M-$k$N$J$i!"(B
+ $B$3$l$r==J,$K9b$$?tCM$K@_Dj$7$F$/$@$5$$!#?d>)$N%G%U%)%k%H$O(B
+ <code>ThreadsPerChild 50</code> $B$G$9!#(B
+ </li>
+ </ul>
+ </li>
+
+ <li>$B%G%#%l%/%F%#%V$N0z?t$N%U%!%$%kL>$O(B Unix $B7A<0$G$J$/(B Windows
+ $B7A<0$N%U%!%$%kL>$r;H$o$l$J$1$l$P$J$j$^$;$s!#$7$+$7!"(BApache
+ $BFbIt$G$O(B Unix $B7A<0$NL>A0$r;H$&$N$G!"%P%C%/%9%i%C%7%e$NBe$o$j$K(B
+ $B%9%i%C%7%e$r;H$o$J$1$l$P$J$j$^$;$s!#%I%i%$%VL>$r;H$&$3$H$b$G$-$^$9!#(B
+ $B>JN,$7$?>l9g$O!"(BApache $B$N<B9T%U%!%$%k$,$"$k%I%i%$%V$K$J$j$^$9!#(B
+ </li>
+
+ <li>
+ Windows $BMQ$N(B Apache $B$O%5!<%P$r:F%3%s%Q%$%k$;$:$K<B9T;~$K(B
+ $B%b%8%e!<%k$r%m!<%I$9$k$3$H$,=PMh$^$9!#(BApache $B$rIaDL$K%3%s%Q%$%k(B
+ $B$7$?>l9g$O(B <code>modules</code> $B%G%#%l%/%H%j$K$"$kB?$/$N(B
+ $B%*%W%7%g%s$N%b%8%e!<%k$r%$%s%9%H!<%k$7$^$9!#$=$l$i$N%b%8%e!<%k$d(B
+ $BB>$N%b%8%e!<%k$rM-8z$K$9$k$K$O!"?7$7$$(B <a
+ href="mod/mod_so.html#loadmodule">LoadModule</a>
+ $B%G%#%l%/%F%#%V$r;H$o$J$1$l$P$J$j$^$;$s!#Nc$($P!"(Bstatus
+ $B%b%8%e!<%k$rM-8z$K$9$k$K$O0J2<(B ($B$5$i$K!"(B<code>httpd.conf</code> $B$K(B
+ status $B$rM-8z$K$9$k%G%#%l%/%F%#%V$,I,MW!#>\:Y$K$D$$$F$O(B <a
+ href="mod/mod_status.html">mod_status</a>
+ $B$r;2>H(B) $B$,I,MW$G$9!#(B
+<pre>
+ LoadModule status_module modules/mod_status.so
+</pre>
+
+ <p><a
+ href="mod/mod_so.html#creating"
+ >$B%m!<%I$G$-$k%b%8%e!<%k$N:n@.(B</a>$B$K$D$$$F$N>pJs$b$"$j$^$9!#(B
+ $B%5!<%I%Q!<%F%#!<$N%b%8%e!<%k$NCf$K$O(B
+ $B8E$$7A<0$NL>A0!"(BApacheModuleFoo.dll $B$GG[I[$5$l$F$$$k$3$H$,(B
+ $B$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
+ LoadModule $B%G%#%l%/%F%#%V$O>o$K%5!<%I%Q!<%F%#!<$N%b%8%e!<%k<+?H$N(B
+ $B%I%-%e%a%s%H$K=>$C$F@_Dj$7$F$/$@$5$$!#(B</p></li>
+
+ <li>Windows $BMQ$N(B Apache $B%P!<%8%g%s(B 1.3
+ $B7O$G$OF14|E*$J8F$S=P$7$,<BAu$5$l$F$$$^$9!#(B
+ $B$3$N$3$H$O!"%P%C%U%!$5$l$F$$$J$$7k2L$,D>$A$K%V%i%&%6$G8+$i$l$J$$$H$$$&(B
+ CGI $B@):n<T$K$H$C$F$OBg$-$JLdBj$N860x$K$J$j$^$9!#$3$l$O!"(BApache
+ $B$N(B CGI $B$K5-=R$5$l$?F0:n$G$O$J$/!"(BWindows $B$X$N0\?"$NI{:nMQ$G$9!#(B
+ Apache 2.0 $B$G$O!"K>$^$l$kHsF14|$NF0:n$r<BAu$,9T$J$o$l$F$$$F!"(B
+ NT/2000 $B$G$N<BAu$G!"(BCGI $B$,3[LLDL$j$NF0:n$,2DG=$K$J$k$3$H$r(B
+ $B4|BT$7$F$$$^$9!#(B</li>
+
+ <li>
+ <p>Apache $B$O!"(BMicrosoft $B$N(B IIS $B$dB>$N(B Windows
+ $B%5!<%P$G;H$o$l$k$h$&$J(B ISAPI $B3HD%(B (<em>$B$9$J$o$A(B</em>$B!"(B
+ $B%$%s%?!<%M%C%H%5!<%P%"%W%j%1!<%7%g%s(B) $B$b%m!<%I$G$-$^$9!#(B
+ <a href="mod/mod_isapi.html">$B>\$7$$>pJs$b$"$j$^$9(B</a>$B!#(B
+ Apache $B$O(B ISAPI
+ $B%U%#%k%?$O%m!<%I(B<em>$B$G$-$J$$(B</em>$B$3$H$KCm0U$7$F$/$@$5$$!#(B</p>
+ </li>
+
+ <li>CGI $B$,F0:n$9$k;~$K(B Apache $B$,%9%/%j%W%H$N%$%s%?%W%j%?$r(B
+ $BH=CG$9$kJ}K!$r(B <a href="mod/core.html#scriptinterpretersource"
+ >ScriptInterpreterSource</a> $B%G%#%l%/%F%#%V$r;H$C$F@_Dj$G$-$^$9!#(B
+ </li>
+
+ <li>Windows $B$G$O(B <code>.htaccess</code>
+ $B$N$h$&$JL>A0$N%U%!%$%k$O4IM}$7$K$/$$$3$H$,B?$$$N$G!"(B
+ <a href="mod/core.html#accessfilename">AccessFilename</a>
+ $B%G%#%l%/%F%#%V$r;H$C$F$3$N%U%!%$%kL>$rJQ99$9$k$H(B
+ $BJXMx$+$b$7$l$^$;$s!#(B</li>
+ </ul>
+
+ <h2><a id="cmdline" name="cmdline">$B%3%s%=!<%k%&%#%s%I%&$G(B Apache
+ $B$r<B9T$9$k(B</a></h2>
+
+ <p>$B%9%?!<%H%a%K%e!<%"%$%3%s5Z$S(B NT $B%5!<%S%9%^%M%8%c!<$O!"(B
+ Apache $B$r4IM}$9$k$?$a$N4JC1$J%$%s%?%U%'!<%9$rDs6!$7$^$9!#(B
+ $B$7$+$7!"%3%^%s%I%i%$%s$+$i$NJ}$,4JC1$J>l9g$b$"$j$^$9!#(B</p>
+
+ <p>Apache $B$G2?$+$9$k$H$-$K$O@_Dj%U%!%$%k$r$I$N$h$&$K8+$D$1$k$N$+$r(B
+ $BCN$C$F$$$k$3$H$,=EMW$G$9!#%3%^%s%I%i%$%s$G@_Dj%U%!%$%k$r;XDj$9$k$K$O(B
+ $BFs$D$NJ}K!$,$"$j$^$9(B</p>
+
+ <ul>
+ <li>-f $B$G$OFCDj$N@_Dj%U%!%$%k$N%Q%9$r;XDj$7$^$9(B</li>
+ </ul>
+
+<pre>
+ apache -f "c:\my server\conf\my.conf"
+</pre>
+<pre>
+ apache -f test\test.conf
+</pre>
+
+ <ul>
+ <li>-n $B$O!"%$%s%9%H!<%k$5$l$?(B Apache
+ $B%5!<%S%9$N@_Dj%U%!%$%k$r;XDj$7$^$9(B (Apache 1.3.7$B0J9_(B)</li>
+ </ul>
+<pre>
+ apache -n "service name"
+</pre>
+
+ <p>$B$3$l$i$N>l9g!"@_Dj%U%!%$%k$GE,@Z$J%5!<%P%k!<%H(B
+ $B$,@_Dj$5$l$F$$$kI,MW$,$"$j$^$9!#(B</p>
+
+ <p> -f $B$d(B -n $B$G@_Dj%U%!%$%kL>$r;XDj$7$J$$>l9g$O!"(BApache $B$ODL>o(B
+ "conf/httpd.conf" $B$H$$$&%5!<%P$KAH$_9~$^$l$?(B
+ $B%U%!%$%kL>$,;H$o$l$^$9!#(BApache $B$K(B -V $B%9%$%C%A$rIU$1$?>l9g!"(B
+ SERVER_CONFIG_FILE $B$HL>IU$1$i$l$?$3$NCM$,I=<($5$l$^$9!#(B
+ Apache $B$O!"0J2<$N=g=x$G;n$7$F%5!<%P%k!<%H$r7hDj$7$^$9(B
+ </p>
+
+ <ul>
+ <li>-C $B%9%$%C%A$K$h$k(B ServerRoot $B%G%#%l%/%F%#%V(B</li>
+
+ <li>$B%3%^%s%I%i%$%s$N(B -d $B%9%$%C%A(B</li>
+
+ <li>$B8=:_$N:n6H%G%#%l%/%H%j(B</li>
+
+ <li>$B%P%$%J%j%$%s%9%H!<%k$7$?>l9g$O%l%8%9%H%j$N%(%s%H%j(B</li>
+
+ <li>$B%5!<%P$K%3%s%Q%$%k$5$l$F$$$k%5!<%P%k!<%H(B</li>
+
+ </ul>
+
+ <p>$B%5!<%P$KAH$_9~$^$l$k%5!<%P%k!<%H$O!"DL>o(B "/apache"
+ $B$K$J$j$^$9!#(Bapache $B$K(B -V $B%9%$%C%A$rIU$1$?>l9g$O!"(BHTTPD_ROOT
+ $BL>IU$1$i$l$?$3$NCM$,I=<($5$l$^$9!#(B</p>
+
+ <p>$B%9%?!<%H%a%K%e!<$+$i$N>l9g$ODL>o!"(BApache $B$K0z?t$,EO$5$l$J$$$N$G(B
+ $B%3%s%=!<%k$N(B Apache $B$G$b%l%8%9%H%j$N%(%s%H%j$r;H$&$3$H$,(B
+ $B?d>)$5$l$kJ}K!$G$9!#(B
+ </p>
+
+ <p>$B%P%$%J%j%$%s%9%H!<%kCf$K!"%l%8%9%H%j$N%-!<$,%$%s%9%H!<%k$5$l$^$9!#(B
+ $BNc$($P(B</p>
+<pre>
+ HKEY_LOCAL_MACHINE\Software\Apache Group\Apache\1.3.13\ServerRoot
+</pre>
+
+ <p>$B$3$N%-!<$O%5!<%P$KAH$_9~$^$l$F$$$F!"8=:_$N%P!<%8%g%s$K1F6A$r(B
+ $BM?$($:$K?7$7$$%P!<%8%g%s$r%F%9%H$9$k$3$H$r2DG=$K$7$^$9!#(B
+ $B$b$A$m$s!"%U%!%$%k%7%9%F%`>e$G8E$$%P!<%8%g%s$N>e$K?7$7$$(B
+ $B%P!<%8%g%s$r%$%s%9%H!<%k$7$J$$$h$&$KCm0U$7$J$1$l$P$J$j$^$;$s!#(B</p>
+
+ <p>$B$b$7%P%$%J%j%$%s%9%H!<%k$r$7$J$+$C$?>l9g$O!"(BApache
+ $B$O$$$/$D$+$N6Z=q$K1h$C$F!"7gMn$7$F$$$k%l%8%9%H%j%-!<$K$D$$$F$N7Y9p$rH/$7$^$9!#(B
+ $B$3$N7Y9p$O!"@_Dj%U%!%$%k$r8+$D$1$k$3$H$,2?$i$+$N7A$G=PMh$?$J$i(B
+ $BL5;k$7$F$+$^$$$^$;$s!#(B</p>
+
+ <p>$B$3$N%-!<$NCM$O(B <samp>conf</samp> $B%G%#%l%/%H%j$N$"$k(B
+ "ServerRoot" $B%G%#%l%/%H%j$G$9!#(BApache $B$O3+;O;~$K(B
+ <samp>httpd.conf</samp> $B%U%!%$%k$r$3$N%G%#%l%/%H%j$+$iFI$_$^$9!#(B
+ $B>e5-$N%l%8%9%H%j%-!<$+$iF@$?%G%#%l%/%H%j$H0[$J$k%G%#%l%/%H%j$,(B
+ $B$3$N%U%!%$%k$N(B <samp>ServerRoot</samp> $B%G%#%l%/%F%#%V$G;XDj$5$l$?>l9g$O!"(B
+ Apache $B$O%l%8%9%H%j%-!<$rK:$l$F@_Dj%U%!%$%k$G;X<($5$l$?%G%#%l%/%H%j$r(B
+ $B;H$$$^$9!#$b$7(B Apache $B%G%#%l%/%H%j$d@_Dj%U%!%$%k$rJL$N>l=j$K(B
+ $B%3%T!<$9$k>l9g$O(B <samp>httpd.conf</samp> $B$N(B <samp>ServerRoot</samp>
+ $B$r99?7$9$k$3$H$,4N?4$G$9!#(B
+ </p>
+
+ <p>$B%3%s%=!<%k%"%W%j%1!<%7%g%s$H$7$F%3%^%s%I%i%$%s$+$i(B Apache
+ $B$r<B9T$9$k$K$O!"0J2<$N%3%^%s%I$r;H$C$F$/$@$5$$(B</p>
+<pre>
+ apache
+</pre>
+
+ <p>Apache $B$,<B9T$5$l!"(Bcontrol-C
+ $B$r;H$&$3$H$K$h$j;_$a$i$l$k$^$GF0$-B3$1$^$9!#(B</p>
+
+ <h2><a id="signal" name="signal">$B%3%s%=!<%k%&%#%s%I%&$N(B Apache
+ $B$r%3%s%H%m!<%k$7$^$9(B</a></h2>
+
+ <p>$B<B9TCf$N(B Apache $B$r!"JL$N%3%s%=!<%k%&%#%s%I%&$+$i(B
+ $B0J2<$r<B9T$9$k$3$H$K$h$j;_$a$k$3$H$,$G$-$^$9(B</p>
+<pre>
+ apache -k shutdown
+</pre>
+
+ <p><strong>$BCm(B: $B$3$N%*%W%7%g%s$O(B Apache 1.3.3 $B0J9_$G$N$_M-8z$G$9!#(B
+ </strong></p>
+
+ <p>$B$h$j0JA0$N%P!<%8%g%s$G$O!"%5!<%P$r;_$a$k$K$O!"(BApache
+ $B$N%3%s%=!<%k%&%#%s%I%&$G(B control-C $B$r;H$o$J$1$l$P$J$j$^$;$s!#(B</p>
+
+ <p>$B%P!<%8%g%s(B 1.3.3 $B$+$i(B 1.3.12 $B$^$G$G$O!"(BApache
+ $B$N%3%s%=!<%k%&%#%s%I%&$G(B control-C $B$r;H$&Be$o$j$K$3$l$NJ}$r(B
+ $B;H$&$N$,I,MW$G$7$?!#$=$l$r;H$&$H!"(BApache $B$,$=$N;~E@$G$N(B
+ $B=hM}$r=*N;$7$F$-$l$$$K=*N;$G$-$k$3$H$,$G$-$?$+$i$G$9!#(B
+ </p>
+
+ <p>$B%P!<%8%g%s(B 1.3.13 $B$G!"F0:n$7$F$$$k%&%#%s%I%&$G(B Control-C
+ $B$r;H$C$F$b(B Apache $B$,$-$l$$$K=*N;$9$k$h$&$K$J$C$?$N$G(B
+ -k shutdown $B$NJLL>$H$7$F(B -k stop $B$r;H$C$F$+$^$$$^$;$s!#(B
+ $BAa4|$N%P!<%8%g%s$G$O(B -k stop $B$r2r<a$7$^$;$s!#(B</p>
+
+ <p>Apache $B$r!":F%9%?!<%H$5$;$k$3$H$b$G$-$^$9!#$=$l$K$h$j@_Dj%U%!%$%k(B
+ $B$N:FFI9~$r$7$^$9!#7P2aCf$N$I$N=hM}$b3d9~$^$;$:$K40N;$9$k$3$H$,5v$5$l$^$9!#(B
+ Apache $B$r:F%9%?!<%H$9$k$K$O$3$l$r<B9T$7$F$/$@$5$$(B
+ </p>
+<pre>
+ apache -k restart
+</pre>
+
+ <p><strong>$BCm(B: $B$3$N%*%W%7%g%s$O(B Apache 1.3.3 $B0J9_$G$N$_M-8z$G$9!#(B
+ $BAa4|$N%P!<%8%g%s$G$O!"(BApache $B$N%3%s%=!<%k%&%#%s%I%&$G(B Control-C
+ $B$K$h$j%5!<%P$r=*N;$5$;!"$=$l$+$i(B Apache
+ $B%3%^%s%I$K$h$C$F%5!<%P$r:F5/F0$9$kI,MW$,$"$j$^$9!#(B
+ </strong></p>
+
+ <p>$BB>$K!"@_Dj%U%!%$%k%F%9%H%*%W%7%g%s$H$$$&(B<em>$BHs>o$KJXMx$J(B</em>
+ $B5!G=$,$"$j$^$9!#(BApache
+ $B$N@_Dj%U%!%$%k$r%F%9%H$9$k$K$O$3$l$r<B9T$7$F$/$@$5$$(B:</p>
+<pre>
+ apache -t
+</pre>
+
+ <p>Apache $B$,$^$@<B9T$7$F$$$k$H$-$K@_Dj%U%!%$%k$NJQ99$r$7$?$H$-$K(B
+ $BFC$KJXMx$G$9!#JQ99$r2C$(!"(B"apache -t"
+ $B%3%^%s%I$K$h$j9=J8$,@5$7$$$+3NG'$7$F$+$i(B "apache -k restart" $B$K$h$j(B
+ Apache $B$r:F5/F0$9$k$H$$$&$3$H$,$G$-$^$9!#(BApache
+ $B$O@_Dj%U%!%$%k$rFI$_D>$7!"(B
+ $B3d9~$_$5$;$k$3$H$J$/=hM}$r?J$a$k$3$H$,=PMh$^$9!#(B
+ $B?7$7$$%j%/%(%9%H$O?7$7$$@_Dj$K4p$E$$$F=hM}$5$l$^$9!#(B
+ </p>
+
+ <p>$BCm(B: Apache $B$N(B Unix
+ $B%P!<%8%g%s$K@:DL$7$??M!9$K$O!"$3$l$i$N%3%^%s%I$O(B
+ <code>kill -TERM <em>pid</em></code>
+ $B$*$h$S(B <code>kill -USR1 <em>pid</em></code> $B$HF1Ey$N5!G=$r(B Windows
+ $B$KDs6!$9$k!"$H8@$C$?J}$,$o$+$j$d$9$$$G$7$g$&!#(B
+ $B%3%^%s%I%i%$%s$N%*%W%7%g%s$G;H$o$l$k(B <code>-k</code>
+ $B$O(B Unix $B$K$*$1$k(B "kill" $B%3%^%s%I$rO"A[$5$;$k$b$N$H$7$FA*$P$l$^$7$?!#(B</p>
+ <hr />
+
+ <h3 align="CENTER">Apache HTTP Server</h3>
+ <a href="./"><img src="images/index.gif" alt="Index" /></a>
+
+ </body>
+</html>
diff --git a/usr.sbin/httpd/src/ApacheCore.def b/usr.sbin/httpd/src/ApacheCore.def
index 8b15418d123..7e878c4466d 100644
--- a/usr.sbin/httpd/src/ApacheCore.def
+++ b/usr.sbin/httpd/src/ApacheCore.def
@@ -444,6 +444,9 @@ EXPORTS
ap_recvwithtimeout @436
ap_caret_escape_args @437
ap_double_quotes @438
+ ap_getline @439
+ ap_get_chunk_size @440
+ ap_escape_logitem @441
; EAPI extended symbols
; note; no ID's, so these all bind by name rather than ordinal since
diff --git a/usr.sbin/httpd/src/ApacheCoreOS2.def b/usr.sbin/httpd/src/ApacheCoreOS2.def
index cc765613a48..a2b6139cce7 100644
--- a/usr.sbin/httpd/src/ApacheCoreOS2.def
+++ b/usr.sbin/httpd/src/ApacheCoreOS2.def
@@ -371,3 +371,60 @@ EXPORTS
ap_is_rdirectory @365
ap_stripprefix @366
ap_child_terminate @367
+ ap_getline @368
+ ap_get_chunk_size @369
+ ap_os_dso_load @381
+ ap_os_dso_error @382
+ ap_update_vhost_from_headers @383
+ ap_update_vhost_given_ip @384
+ ap_set_name_virtual_host @385
+ ap_parse_vhost_addrs @386
+ ap_fini_vhost_config @387
+ ap_init_vhost_config @388
+ ap_check_access @389
+ ap_check_auth @390
+ ap_check_user_id @391
+ ap_translate_name @392
+ ap_run_fixups @394
+ ap_invoke_handler @395
+ ap_log_transaction @396
+ ap_header_parse @397
+ ap_run_post_read_request @398
+ ap_init_modules @400
+ ap_child_init_modules @401
+ ap_child_exit_modules @402
+ ap_setup_prelinked_modules @403
+ ap_show_directives @404
+ ap_show_modules @405
+ ap_parse_htaccess @406
+ ap_process_resource_config @407
+ ap_create_request_config @408
+ ap_merge_per_dir_configs @409
+ ap_bind_address @410
+ ap_core_reorder_directories @411
+ ap_coredump_dir @412
+ ap_finalize_sub_req_protocol @413
+ ap_force_library_loading @414
+ ap_get_local_host @415
+ ap_get_virthost_addr @416
+ ap_init_alloc @417
+ ap_keepalive_timeout @418
+ ap_listenbacklog @419
+ ap_lock_fname @420
+ ap_log_pid @421
+ ap_open_logs @422
+ ap_process_request @423
+ ap_read_config @424
+ ap_read_request @425
+ ap_response_code_string @426
+ ap_rfc1413 @427
+ ap_send_http_options @428
+ ap_server_config_defines @429
+ ap_server_post_read_config @430
+ ap_server_pre_read_config @431
+ ap_set_callback_and_alarm @432
+ ap_set_sub_req_protocol @433
+ ap_update_child_status @434
+ ap_caret_escape_args @437
+ ap_double_quotes @438
+ ap_escape_logitem @441
diff --git a/usr.sbin/httpd/src/CHANGES b/usr.sbin/httpd/src/CHANGES
index 3b6063e03da..962f0aa5d5f 100644
--- a/usr.sbin/httpd/src/CHANGES
+++ b/usr.sbin/httpd/src/CHANGES
@@ -1,12 +1,122 @@
+Changes with Apache 1.3.26
+
+ *) Potential NULL referencing fixed in the CGI module. It had
+ been there for 5 years. [Justin Erenkrantz]
+
+ *) Ensure that we set the result value in ap_strtol before
+ we return it. [The whole gang again]
+
+Changes with Apache 1.3.25
+
+ *) Code changes required to address and close the security
+ issues in CAN-2002-0392 (mitre.org) [CERT VU#944335].
+ To support this, we utilize the ANSI functionality of
+ strtol, and provide ap_strtol for completeness.
+ [The whole gang]
+
+ *) PORT: With OpenBSD 3.1 and up, allow modules to work on their
+ ELF-based architectures. [Brad <brad@openbsd.org>]
+
+ *) Add X-Forwarded-Host and X-Forwarded-Server to X-Forwarded-For
+ to the proxy. [Thomas Eibner <thomas@stderr.net>]
+
+ *) Fix a problem in mod_proxy: it would not set the number of bytes
+ transferred, so other modules could not access the value from
+ the request_rec->bytes_sent field.
+ [Anthony Howe <achowe at snert.com>] PR#6841
+
+ *) Fix a problem in mod_rewrite which would lead to 400 Bad Request
+ responses for rewriting rules which resulted in a local path.
+ Note: This will also reject invalid requests like
+ "HEAD /roaming/martin/IMAP localhost HTTP/1.0" as issued by
+ Netscape-4.x Roaming Profiles (on a DAV-enabled server)
+ [Martin Kraemer]
+
+ *) Disallow anything but whitespace on the request line after the
+ HTTP/x.y protocol string. That prevents arbitrary user input
+ from ending up in the access_log and error_log. Also, special
+ characters (especially control characters) are escaped in the
+ log file now, to make a clear distinction between client-supplied
+ strings (with special characters) and server-side strings.
+ [Martin Kraemer]
+
+ *) Get rid of DEFAULT_XFERLOG as it is not used anywhere. It was
+ preserved by the build system, printed with "httpd -V", but
+ apart from that completely ignored: the default transfer log
+ is to not produce any transfer log.
+ [Martin Kraemer]
+
+ *) Fixed sending of binary files under Cygwin. PR 9185.
+ [Cliff Woolley]
+
+ *) Added Cygwin directory layout to config.layout file.
+ [Stipe Tolj, <tolj@wapme-systems.de>]
+
+ *) Added a '-F' flag; which causes the mother/supervisor process to
+ no longer fork down and detach. But instead stays attached to
+ the tty - thus making live for automatic restart and exit checking
+ code easier. [ Contributed by Michael Handler <handler@grendel.net>,
+ Jos Backus <jos@catnook.com> [ Dirk-Willem van Gulik ]].
+
+ *) Make apxs.pl more flexible (file extensions like .so or .dll are
+ no longer hardcoded). [Stipe Tolj <tolj@wapme-systems.de>]
+
+ *) Add an intelligent error message should no proxy submodules be
+ valid to handle a request. PR 8407 [Graham Leggett]
+
+ *) Allow child processes sufficient time for cleanups but making
+ ap_select in reclaim_child_processes more "resistant" to
+ signal interupts. Bugz# 8176
+ [David Winterbourne <davidw@financenter.com>, Jim Jagielski]
+
+ *) Recognize platform specific root directories (other than
+ leading slash) in mod_rewrite for filename rewrite rules.
+ Bugz# 7492 [William Rowe]
+
+ *) For supported versions of Darwin, place dynamically loaded
+ Apache extensions' public symbols into the global symbol
+ table. This allows dynamically loaded PHP extensions.
+ [Marko Karppinen <markonen@php.net>]
+
+ *) Correct proxy to be able to handle the unexpected 100-continue
+ reponses sent during PUT or POST requests. [Graham Leggett]
+
+ *) Correct a timeout problem within proxy which would force long
+ or slow POST requests to close after 300 seconds.
+ [Martin Lichtin <martin@lichtin.net>, Brian Bothwell
+ <brian.bothwell@wisdomtools.com>]
+
+ *) Add support for dechunking chunked responses in proxy.
+ [Graham Leggett]
+
+ *) Made AB's use of the Host: header rfc2616 compliant
+ by Taisuke Yamada <tai@iij.ad.jp> [Dirl-Willem van Gulik].
+
+ *) Update the Red Hat Layout to match Red Hat Linux version 7.
+ PR BZ-7422 [Joe Orton]
+
+ *) Add some popular types to the mime magic file. PR 7730.
+ [Linus Walleij <triad@df.lth.se>, Justin Erenkrantz]
+
+ *) Tighten up the overridden-Server-header bugfix in the proxy, by
+ only overriding if the request is a proxy request. It has been
+ pointed out that the previous fix allows CGIs and modules to
+ override the Server header, which is change to previous behavior.
+ [Graham Leggett, Joshua Slive]
+
+ *) Another fix for the multiple-cookie header bug in proxy. With some
+ luck this bug is actually now dead. [Graham Leggett]
+
Changes with Apache 1.3.24
*) Fixed a segfault in mod_include when #if, #elif, #else, or #endif
directives were improperly terminated. [Cliff Woolley]
- *) Introduce proper escaping of command.com and cmd.exe for Win32.
+ *) Win32 Security: CAN-2002-0061
+ Introduce proper escaping of command.com and cmd.exe for Win32.
These patches close vulnerability CAN-2002-0061, identified and
reported by Ory Segal <ory.segal@sanctuminc>, by which any CGI
- invocation of .bat or .cmd files could comprimize the system
+ invocation of .bat or .cmd files could compromise the system
when the .bat or .cmd was parsed the query args as an argument
to either cmd.exe /c or command.com /c. [William Rowe]
@@ -574,7 +684,7 @@ Changes with Apache 1.3.21
to make results more true to what is measured. The upshot of this it
turns out that 'ab' has often underreported the true performance of
apache. Often by a order of magnitude :-) See talk/paper of Sander
- Temme <sctemme@covalent.net> at April ApacheCon 2001 for details.
+ Temme at April ApacheCon 2001 for details.
[Dirk-Willem van Gulik]
Changes with Apache 1.3.20
@@ -582,7 +692,7 @@ Changes with Apache 1.3.20
*) Autodetect if platforms have isnan() and/or isinf() for use in
ap_snprintf.c. [Jim Jagielski]
- *) Correct a vulnerability in the Win32 and OS2 ports, by which a
+ *) Security/DoS: Correct a vulnerability in the Win32 and OS2 ports, by which a
client submitting a carefully constructed URI could cause a GP
(segment) fault in the child process, which would have to be
cleared by the operator to resume operation. This vulnerability
@@ -722,7 +832,7 @@ Changes with Apache 1.3.18 [not released]
*) SECURITY: The default installation could lead to mod_negotiation
and mod_dir/mod_autoindex displaying a directory listing instead of
the index.html.* files, if a very long path was created artificially
- by using many slashes. Now a 403 FORBIDDEN is returned.
+ by using many slashes. Now a 403 FORBIDDEN is returned. CAN-2001-0925.
[Martin Kraemer]
*) Trailing slashes (if they exist) are now removed from ServerRoot,
@@ -991,7 +1101,7 @@ Changes with Apache 1.3.13 [not released]
tree, and other minor MPE tweaks.
[Mark Bixby <mark_bixby@hp.com>]
- *) Tighten up the syntax checking of Host: headers to fix a
+ *) Security: Tighten up the syntax checking of Host: headers to fix a
security bug in some mass virtual hosting configurations
that can allow a remote attacker to retrieve some files
on the system that should be inaccessible. [Tony Finch]
@@ -1004,7 +1114,8 @@ Changes with Apache 1.3.13 [not released]
SHA1 and plaintext password encodings. Make feature tests a
bit more flexible. [William Rowe]
- *) Fix a security problem that affects some configurations of
+ *) Security: CVE-2000-0913
+ Fix a security problem that affects some configurations of
mod_rewrite. If the result of a RewriteRule is a filename that
contains expansion specifiers, especially regexp backreferences
$0..$9 and %0..%9, then it may have been possible for an attacker
@@ -1239,7 +1350,7 @@ Changes with Apache 1.3.13 [not released]
*) [EBCDIC] Update mod_mmap_static so that an ebcdic box can use
MMapFile for files that shouldn't be converted from ebcdic->ascii.
- [Greg Ames <gregames@us.ibm.com>]
+ [Greg Ames]
*) Revamp the Win32 make environment. Apache.dsw created to bring
together all the pieces. Create new file os/win32/BaseAddr.ref
@@ -4323,7 +4434,7 @@ Changes with Apache 1.3b7
*) Just having APACI's localstatedir is too general and not enough for most
of the systems. 1.3b6 again required manual APACI patches by package
- maintainers from RedHat and FreeBSD because for their filesystem layout a
+ maintainers from Red Hat and FreeBSD because for their filesystem layout a
little bit more flexibility in configuring the paths is needed. Hence we
provide three additional configure options (--runtimedir, --logfiledir,
--proxycachedir) which now can be used for more granular adjustments if
@@ -4333,7 +4444,7 @@ Changes with Apache 1.3b7
*) Make the install root for "make install" in APACI's Makefile overrideable
by package authors. This way we are even more friendly to package
- maintainers (especially Debian and RedHat) who build for the real prefix
+ maintainers (especially Debian and Red Hat) who build for the real prefix
via "configure --prefix=/<real>" but use a different local prefix via
"make root=/tmp/apache install" for rolling the package without bristling
the target location on their system.
diff --git a/usr.sbin/httpd/src/CHANGES.SSL b/usr.sbin/httpd/src/CHANGES.SSL
index d84b96b9f4b..da9c699b186 100644
--- a/usr.sbin/httpd/src/CHANGES.SSL
+++ b/usr.sbin/httpd/src/CHANGES.SSL
@@ -23,6 +23,35 @@
/ __/ | (_) |
__ |_____(_)___/ ___________________________________________
+ Changes with mod_ssl 2.8.10 (19-Jun-2002 to 24-Jun-2002)
+
+ *) Fixed off-by-one buffer overflow bug in the compatibility
+ functionality (mapping of old directives to new ones).
+
+ *) Fixed memory leak in processing of CA certificates.
+
+ *) In case there is actually a certificate chain in the session cache,
+ we now use the value of SSL_get_peer_certificate(ssl) to verify as
+ it will have been removed from the chain before it was put in the
+ cache.
+
+ *) Seed the PRNG with a maximum of 1K from the internal scoreboard.
+
+ Changes with mod_ssl 2.8.9 (27-Mar-2002 to 19-Jun-2002)
+
+ *) Upgraded to Apache 1.3.26.
+
+ *) Support for OpenSSL 0.9.7.
+
+ *) Open random files in binary mode under Win32 to not
+ stop on EOS characters.
+
+ *) Additional internal consistency check on vhost sanity checking
+ in case no DNS entries are found for virtual hosts.
+
+ *) Fixed detection of a faked "Faked Basic Auth" situation for
+ internal redirection situations.
+
Changes with mod_ssl 2.8.8 (23-Feb-2002 to 27-Mar-2002)
*) Upgraded to Apache 1.3.24
diff --git a/usr.sbin/httpd/src/Configure b/usr.sbin/httpd/src/Configure
index 0b53ca5819a..9bee3519645 100644
--- a/usr.sbin/httpd/src/Configure
+++ b/usr.sbin/httpd/src/Configure
@@ -1,5 +1,5 @@
#!/bin/sh
-# $OpenBSD: Configure,v 1.19 2002/03/29 02:08:05 beck Exp $
+# $OpenBSD: Configure,v 1.20 2002/07/19 21:31:15 henning Exp $
## ====================================================================
## The Apache Software License, Version 1.1
##
@@ -2005,7 +2005,7 @@ if [ "x$using_shlib" = "x1" ] ; then
# select the special subtarget for shared core generation
SUBTARGET=target_shared
# determine additional suffixes for libhttpd.so
- V=1 R=3 P=24
+ V=1 R=3 P=26
if [ "x$SHLIB_SUFFIX_DEPTH" = "x0" ]; then
SHLIB_SUFFIX_LIST=""
fi
@@ -2546,8 +2546,8 @@ all clean distclean depend ::
if [ "x\$\$i" != "x" ]; then \\
echo "===> \$(SDP)modules/\$\$i"; \\
case "x\$(OS)" in \\
- xOS390 | xTPF) (cd \$\$i && \$(MAKE) SDP='\$(SDP)' \$@) || exit 1;; \\
- *) (cd \$\$i && \$(MAKE) \$(MFLAGS_STATIC) SDP='\$(SDP)' CC='\$(CC)' AUX_CFLAGS='\$(CFLAGS)' RANLIB='\$(RANLIB)' \$@) || exit 1;; \\
+ xOS390 | xTPF) (cd \$\$i && \$(MAKE) SDP='\$(SDP)' OPTIM='\$(OPTIM)' \$@) || exit 1;; \\
+ *) (cd \$\$i && \$(MAKE) \$(MFLAGS_STATIC) SDP='\$(SDP)' CC='\$(CC)' AUX_CFLAGS='\$(CFLAGS)' RANLIB='\$(RANLIB)' OPTIM='\$(OPTIM)' \$@) || exit 1;; \\
esac; \\
echo "<=== \$(SDP)modules/\$\$i"; \\
fi; \\
diff --git a/usr.sbin/httpd/src/Makefile.tmpl b/usr.sbin/httpd/src/Makefile.tmpl
index c06d17ca176..60ff88b1ce7 100644
--- a/usr.sbin/httpd/src/Makefile.tmpl
+++ b/usr.sbin/httpd/src/Makefile.tmpl
@@ -77,8 +77,8 @@ subdirs:
@for i in $(SUBDIRS); do \
echo "===> $(SDP)$$i"; \
case ".$(OS)" in \
- .OS390 | .TPF) ( cd $$i && $(MAKE) SDP='$(SDP)' ) || exit 1;; \
- *) ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') || exit 1;; \
+ .OS390 | .TPF) ( cd $$i && $(MAKE) SDP='$(SDP)' OPTIM='$(OPTIM)') || exit 1;; \
+ *) ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)' OPTIM='$(OPTIM)') || exit 1;; \
esac; \
echo "<=== $(SDP)$$i"; \
done
@@ -87,14 +87,14 @@ support: support-dir
support-dir:
@echo "===> $(SDP)support"; \
- cd support; $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)' || exit 1; \
+ cd support; $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)' OPTIM='$(OPTIM)' || exit 1; \
echo "<=== $(SDP)support"
clean:
-rm -f $(TARGET) lib$(TARGET).* *.o
@for i in $(SUBDIRS); do \
echo "===> $(SDP)$$i"; \
- ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' $@ ) || exit 1; \
+ ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' OPTIM='$(OPTIM)' $@ ) || exit 1; \
echo "<=== $(SDP)$$i"; \
done
@@ -129,7 +129,7 @@ depend:
> Makefile.tmpl \
&& rm Makefile.new
for i in $(SUBDIRS); do \
- ( cd $$i && $(MAKE) CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)' depend ) || exit 1; \
+ ( cd $$i && $(MAKE) CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)' OPTIM='$(OPTIM)' depend ) || exit 1; \
done
#Dependencies
diff --git a/usr.sbin/httpd/src/ap/Makefile.tmpl b/usr.sbin/httpd/src/ap/Makefile.tmpl
index 4514d702845..9945f17d25b 100644
--- a/usr.sbin/httpd/src/ap/Makefile.tmpl
+++ b/usr.sbin/httpd/src/ap/Makefile.tmpl
@@ -7,7 +7,7 @@ LIB=libap.a
OBJS=ap_cpystrn.o ap_execve.o ap_fnmatch.o ap_getpass.o ap_md5c.o ap_signal.o \
ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o ap_ebcdic.o \
- ap_hook.o ap_ctx.o ap_mm.o
+ ap_strtol.o ap_hook.o ap_ctx.o ap_mm.o
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $<
@@ -77,3 +77,8 @@ ap_snprintf.o: ap_snprintf.c $(INCDIR)/httpd.h $(INCDIR)/ap_config.h \
$(OSDIR)/os-inline.c $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h \
$(INCDIR)/ap_alloc.h $(INCDIR)/buff.h $(INCDIR)/ap.h \
$(INCDIR)/util_uri.h
+ap_strtol.o: ap_strtol.c $(INCDIR)/httpd.h $(INCDIR)/ap_config.h \
+ $(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
+ $(OSDIR)/os-inline.c $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h \
+ $(INCDIR)/ap_alloc.h $(INCDIR)/buff.h $(INCDIR)/ap.h \
+ $(INCDIR)/util_uri.h
diff --git a/usr.sbin/httpd/src/ap/ap.dsp b/usr.sbin/httpd/src/ap/ap.dsp
index f47b5155ce2..d4ccb941e49 100644
--- a/usr.sbin/httpd/src/ap/ap.dsp
+++ b/usr.sbin/httpd/src/ap/ap.dsp
@@ -26,6 +26,7 @@ CFG=ap - Win32 Debug
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
+RSC=rc.exe
!IF "$(CFG)" == "ap - Win32 Release"
@@ -39,9 +40,10 @@ CPP=cl.exe
# PROP Output_Dir "LibR"
# PROP Intermediate_Dir "LibR"
# PROP Target_Dir ""
-RSC=rc.exe
# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
# ADD CPP /nologo /MD /W3 /O2 /I "..\include" /I "..\os\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fd"LibR\ap" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
@@ -61,9 +63,10 @@ LIB32=link.exe -lib
# PROP Output_Dir "LibD"
# PROP Intermediate_Dir "LibD"
# PROP Target_Dir ""
-RSC=rc.exe
# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\include" /I "..\os\win32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fd"LibD\ap" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
diff --git a/usr.sbin/httpd/src/helpers/binbuild.sh b/usr.sbin/httpd/src/helpers/binbuild.sh
index 8b22a9a58b2..616aa5b224c 100644
--- a/usr.sbin/httpd/src/helpers/binbuild.sh
+++ b/usr.sbin/httpd/src/helpers/binbuild.sh
@@ -8,7 +8,7 @@
OS=`src/helpers/GuessOS`
case "x$OS" in
- x*390*) CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most";;
+ x*OS390*) CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most";;
*cygwin*) CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most \
--enable-rule=SHARED_CORE --libexecdir=bin";;
*) CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most --enable-shared=max";;
@@ -274,7 +274,7 @@ else
if [ "x$TAR" != "x" ]
then
case "x$OS" in
- x*390*) $TAR -cfU ../apache_$VER-$OS.tar -C .. apache_$VER;;
+ x*OS390*) $TAR -cfU ../apache_$VER-$OS.tar -C .. apache_$VER;;
*) (cd .. && $TAR -cf apache_$VER-$OS.tar apache_$VER);;
esac
if [ "x$GZIP" != "x" ]
diff --git a/usr.sbin/httpd/src/include/ap.h b/usr.sbin/httpd/src/include/ap.h
index 6e2e488c5ae..4eee68b4851 100644
--- a/usr.sbin/httpd/src/include/ap.h
+++ b/usr.sbin/httpd/src/include/ap.h
@@ -75,6 +75,10 @@ int ap_execle(const char *, const char *, ...);
int ap_execve(const char *, char * const argv[], char * const envp[]);
API_EXPORT(int) ap_getpass(const char *prompt, char *pwbuf, size_t bufsiz);
+#ifndef ap_strtol
+API_EXPORT(long) ap_strtol(const char *nptr, char **endptr, int base);
+#endif
+
/* small utility macros to make things easier to read */
#ifdef WIN32
diff --git a/usr.sbin/httpd/src/include/ap_config.h b/usr.sbin/httpd/src/include/ap_config.h
index c9d6b2aef54..d9c2a9ce6b9 100644
--- a/usr.sbin/httpd/src/include/ap_config.h
+++ b/usr.sbin/httpd/src/include/ap_config.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ap_config.h,v 1.12 2002/07/17 13:11:02 henning Exp $ */
+/* $OpenBSD: ap_config.h,v 1.13 2002/07/19 21:31:15 henning Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -1009,8 +1009,10 @@ typedef int rlim_t;
#define NEED_HASHBANG_EMUL
#elif defined(CYGWIN) /* Cygwin 1.x POSIX layer for Win32 */
+#define SYSTEM_UID 18
#define JMP_BUF jmp_buf
#define NO_KILLPG
+#define NO_SETSID
#define USE_LONGJMP
#define GDBM_STATIC
#define HAVE_MMAP 1
diff --git a/usr.sbin/httpd/src/include/ap_mmn.h b/usr.sbin/httpd/src/include/ap_mmn.h
index 93304da3d7e..b299003e52d 100644
--- a/usr.sbin/httpd/src/include/ap_mmn.h
+++ b/usr.sbin/httpd/src/include/ap_mmn.h
@@ -235,6 +235,8 @@
* filter_callback to the end of buff.h
* 19990320.11 - Add some fields to the end of the core_dir_config
* structure
+ * 19990320.12 - add ap_getline(), ap_get_chunk_size()
+ * 19990320.13 - add ap_strtol()
*/
/*
@@ -258,7 +260,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 19990320
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 11 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 13 /* 0...n */
/* Useful for testing for features. */
#define AP_MODULE_MAGIC_AT_LEAST(major,minor) \
diff --git a/usr.sbin/httpd/src/include/http_protocol.h b/usr.sbin/httpd/src/include/http_protocol.h
index 948790a09f6..ab0562d2559 100644
--- a/usr.sbin/httpd/src/include/http_protocol.h
+++ b/usr.sbin/httpd/src/include/http_protocol.h
@@ -217,6 +217,11 @@ CORE_EXPORT(void) ap_parse_uri(request_rec *r, const char *uri);
*/
API_EXPORT(int) ap_method_number_of(const char *method);
+API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold);
+
+API_EXPORT(long) ap_get_chunk_size(char *b);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/usr.sbin/httpd/src/include/httpd.h b/usr.sbin/httpd/src/include/httpd.h
index fa5060628a1..d68c52e4f98 100644
--- a/usr.sbin/httpd/src/include/httpd.h
+++ b/usr.sbin/httpd/src/include/httpd.h
@@ -175,15 +175,6 @@ extern "C" {
#define DEFAULT_GROUP "#-1"
#endif
-/* The name of the log files */
-#ifndef DEFAULT_XFERLOG
-#if defined(OS2) || defined(WIN32)
-#define DEFAULT_XFERLOG "logs/access.log"
-#else
-#define DEFAULT_XFERLOG "logs/access_log"
-#endif
-#endif /* DEFAULT_XFERLOG */
-
#ifndef DEFAULT_ERRORLOG
#if defined(OS2) || defined(WIN32)
#define DEFAULT_ERRORLOG "logs/error.log"
@@ -466,7 +457,7 @@ extern "C" {
#define SERVER_BASEVENDOR "Apache Group"
#define SERVER_BASEPRODUCT "Apache"
-#define SERVER_BASEREVISION "1.3.24"
+#define SERVER_BASEREVISION "1.3.26"
#define SERVER_BASEVERSION SERVER_BASEPRODUCT "/" SERVER_BASEREVISION
#define SERVER_PRODUCT SERVER_BASEPRODUCT
@@ -490,7 +481,7 @@ API_EXPORT(void) ap_add_config_define(const char *define);
* Always increases along the same track as the source branch.
* For example, Apache 1.4.2 would be '10402100', 2.5b7 would be '20500007'.
*/
-#define APACHE_RELEASE 10324100
+#define APACHE_RELEASE 10326100
#define SERVER_PROTOCOL "HTTP/1.1"
#ifndef SERVER_SUPPORT
@@ -1076,6 +1067,7 @@ API_EXPORT(char *) ap_os_escape_path(pool *p, const char *path, int partial);
API_EXPORT(char *) ap_escape_html(pool *p, const char *s);
API_EXPORT(char *) ap_construct_server(pool *p, const char *hostname,
unsigned port, const request_rec *r);
+API_EXPORT(char *) ap_escape_logitem(pool *p, const char *str);
API_EXPORT(char *) ap_escape_shell_cmd(pool *p, const char *s);
API_EXPORT(int) ap_count_dirs(const char *path);
diff --git a/usr.sbin/httpd/src/main/gen_test_char.c b/usr.sbin/httpd/src/main/gen_test_char.c
index fae84664442..d310dc55624 100644
--- a/usr.sbin/httpd/src/main/gen_test_char.c
+++ b/usr.sbin/httpd/src/main/gen_test_char.c
@@ -8,6 +8,7 @@
#define T_ESCAPE_PATH_SEGMENT (0x02)
#define T_OS_ESCAPE_PATH (0x04)
#define T_HTTP_TOKEN_STOP (0x08)
+#define T_ESCAPE_LOGITEM (0x10)
int main(int argc, char *argv[])
{
@@ -16,25 +17,27 @@ int main(int argc, char *argv[])
printf(
"/* this file is automatically generated by gen_test_char, do not edit */\n"
-"#define T_ESCAPE_SHELL_CMD (%u)\n"
-"#define T_ESCAPE_PATH_SEGMENT (%u)\n"
-"#define T_OS_ESCAPE_PATH (%u)\n"
-"#define T_HTTP_TOKEN_STOP (%u)\n"
-"\n"
-"static const unsigned char test_char_table[256] = {\n"
-" 0,",
+"#define T_ESCAPE_SHELL_CMD 0x%02x /* chars with special meaning in the shell */\n"
+"#define T_ESCAPE_PATH_SEGMENT 0x%02x /* find path segment, as defined in RFC1808 */\n"
+"#define T_OS_ESCAPE_PATH 0x%02x /* escape characters in a path or uri */\n"
+"#define T_HTTP_TOKEN_STOP 0x%02x /* find http tokens, as defined in RFC2616 */\n"
+"#define T_ESCAPE_LOGITEM 0x%02x /* filter what should go in the log file */\n"
+"\n",
T_ESCAPE_SHELL_CMD,
T_ESCAPE_PATH_SEGMENT,
T_OS_ESCAPE_PATH,
- T_HTTP_TOKEN_STOP);
+ T_HTTP_TOKEN_STOP,
+ T_ESCAPE_LOGITEM
+ );
/* we explicitly dealt with NUL above
* in case some strchr() do bogosity with it */
+ printf("static const unsigned char test_char_table[256] = {\n"
+ " 0x00, "); /* print initial item */
+
for (c = 1; c < 256; ++c) {
flags = 0;
- if (c % 20 == 0)
- printf("\n ");
/* escape_shell_cmd */
#if defined(WIN32) || defined(OS2)
@@ -67,8 +70,19 @@ int main(int argc, char *argv[])
if (ap_iscntrl(c) || strchr(" \t()<>@,;:\\/[]?={}", c)) {
flags |= T_HTTP_TOKEN_STOP;
}
- printf("%u%c", flags, (c < 255) ? ',' : ' ');
+ /* For logging, escape all control characters,
+ * double quotes (because they delimit the request in the log file)
+ * backslashes (because we use backslash for escaping)
+ * and 8-bit chars with the high bit set
+ */
+ if (!ap_isprint(c) || c == '"' || c == '\\' || ap_iscntrl(c)) {
+ flags |= T_ESCAPE_LOGITEM;
+ }
+ printf("0x%02x%s", flags, (c < 255) ? ", " : " ");
+
+ if ((c % 8) == 7)
+ printf(" /*0x%02x...0x%02x*/\n ", c-7, c);
}
printf("\n};\n");
diff --git a/usr.sbin/httpd/src/main/http_core.c b/usr.sbin/httpd/src/main/http_core.c
index 0b09e4f646a..49bc03ee222 100644
--- a/usr.sbin/httpd/src/main/http_core.c
+++ b/usr.sbin/httpd/src/main/http_core.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: http_core.c,v 1.11 2002/07/15 09:40:49 henning Exp $ */
+/* $OpenBSD: http_core.c,v 1.12 2002/07/19 21:31:15 henning Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -2939,7 +2939,7 @@ static const char *set_limit_req_body(cmd_parms *cmd, core_dir_config *conf,
* Instead we have an idiotic define in httpd.h that prevents
* it from being used even when it is available. Sheesh.
*/
- conf->limit_req_body = (unsigned long)strtol(arg, (char **)NULL, 10);
+ conf->limit_req_body = (unsigned long)ap_strtol(arg, (char **)NULL, 10);
return NULL;
}
@@ -3882,7 +3882,7 @@ static int default_handler(request_rec *r)
return METHOD_NOT_ALLOWED;
}
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
+#if defined(OS2) || defined(WIN32) || defined(NETWARE) || defined(CYGWIN)
/* Need binary mode for OS/2 */
f = ap_pfopen(r->pool, r->filename, "rb");
#else
diff --git a/usr.sbin/httpd/src/main/http_log.c b/usr.sbin/httpd/src/main/http_log.c
index 78ef1bbf7b1..ee1afe87688 100644
--- a/usr.sbin/httpd/src/main/http_log.c
+++ b/usr.sbin/httpd/src/main/http_log.c
@@ -339,18 +339,6 @@ static void log_error_core(const char *file, int line, int level,
return;
logf = s->error_log;
}
-#ifdef TPF
- else if (tpf_child) {
- /*
- * If we are doing normal logging, don't log messages that are
- * above the server log level unless it is a startup/shutdown notice
- */
- if (((level & APLOG_LEVELMASK) != APLOG_NOTICE) &&
- ((level & APLOG_LEVELMASK) > s->loglevel))
- return;
- logf = stderr;
- }
-#endif /* TPF */
else {
/*
* If we are doing syslog logging, don't log messages that are
diff --git a/usr.sbin/httpd/src/main/http_main.c b/usr.sbin/httpd/src/main/http_main.c
index f2fd92d826f..37bfc24d212 100644
--- a/usr.sbin/httpd/src/main/http_main.c
+++ b/usr.sbin/httpd/src/main/http_main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: http_main.c,v 1.17 2002/07/17 11:19:10 henning Exp $ */
+/* $OpenBSD: http_main.c,v 1.18 2002/07/19 21:31:15 henning Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -349,6 +349,8 @@ static pid_t pgrp;
static int one_process = 0;
+static int do_detach = 1;
+
/* set if timeouts are to be handled by the children and not by the parent.
* i.e. child_timeouts = !standalone || one_process.
*/
@@ -1390,7 +1392,7 @@ static void usage(char *bin)
fprintf(stderr, "Usage: %s [-D name] [-d directory] [-f file]\n", bin);
#endif
fprintf(stderr, " %s [-C \"directive\"] [-c \"directive\"]\n", pad);
- fprintf(stderr, " %s [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] [-u]\n", pad);
+ fprintf(stderr, " %s [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] [-F] [-u]\n", pad);
fprintf(stderr, "Options:\n");
#ifdef SHARED_CORE
fprintf(stderr, " -R directory : specify an alternate location for shared object files\n");
@@ -1413,6 +1415,9 @@ static void usage(char *bin)
#endif
fprintf(stderr, " -t : run syntax check for config files (with docroot check)\n");
fprintf(stderr, " -T : run syntax check for config files (without docroot check)\n");
+#ifndef WIN32
+ fprintf(stderr, " -F : run main process in foreground, for process supervisors\n");
+#endif
#ifdef WIN32
fprintf(stderr, " -n name : name the Apache service for -k options below;\n");
fprintf(stderr, " -k stop|shutdown : tell running Apache to shutdown\n");
@@ -2776,6 +2781,7 @@ static void reclaim_child_processes(int terminate)
struct timeval tv;
int waitret, tries;
int not_dead_yet;
+ int ret;
#ifndef NO_OTHER_CHILD
other_child_rec *ocr, *nocr;
#endif
@@ -2785,12 +2791,15 @@ static void reclaim_child_processes(int terminate)
for (tries = terminate ? 4 : 1; tries <= 12; ++tries) {
/* don't want to hold up progress any more than
* necessary, but we need to allow children a few moments to exit.
- * Set delay with an exponential backoff.
+ * Set delay with an exponential backoff. NOTE: if we get
+ * interupted, we'll wait longer than expected...
*/
tv.tv_sec = waittime / 1000000;
tv.tv_usec = waittime % 1000000;
waittime = waittime * 4;
- ap_select(0, NULL, NULL, NULL, &tv);
+ do {
+ ret = ap_select(0, NULL, NULL, NULL, &tv);
+ } while (ret == -1 && errno == EINTR);
/* now see who is done */
not_dead_yet = 0;
@@ -3424,19 +3433,24 @@ static void detach(void)
!defined(BONE)
/* Don't detach for MPE because child processes can't survive the death of
the parent. */
- if ((x = fork()) > 0)
- exit(0);
- else if (x == -1) {
- perror("fork");
- fprintf(stderr, "%s: unable to fork new process\n", ap_server_argv0);
- exit(1);
+ if (do_detach) {
+ if ((x = fork()) > 0)
+ exit(0);
+ else if (x == -1) {
+ perror("fork");
+ fprintf(stderr, "%s: unable to fork new process\n", ap_server_argv0);
+ exit(1);
+ }
+ RAISE_SIGSTOP(DETACH);
}
- RAISE_SIGSTOP(DETACH);
#endif
#ifndef NO_SETSID
if ((pgrp = setsid()) == -1) {
perror("setsid");
fprintf(stderr, "%s: setsid failed\n", ap_server_argv0);
+ if (!do_detach)
+ fprintf(stderr, "setsid() failed probably because you aren't "
+ "running under a process management tool like daemontools\n");
exit(1);
}
#elif defined(NEXT) || defined(NEWSOS)
@@ -3451,6 +3465,13 @@ static void detach(void)
#elif defined(MPE)
/* MPE uses negative pid for process group */
pgrp = -getpid();
+#elif defined(CYGWIN)
+ /* Cygwin does not take any argument for setpgrp() */
+ if ((pgrp = setpgrp()) == -1) {
+ perror("setpgrp");
+ fprintf(stderr, "%s: setpgrp failed\n", ap_server_argv0);
+ exit(1);
+ }
#else
if ((pgrp = setpgrp(getpid(), 0)) == -1) {
perror("setpgrp");
@@ -4181,9 +4202,6 @@ static void show_compile_settings(void)
#ifdef DEFAULT_LOCKFILE
printf(" -D DEFAULT_LOCKFILE=\"" DEFAULT_LOCKFILE "\"\n");
#endif
-#ifdef DEFAULT_XFERLOG
- printf(" -D DEFAULT_XFERLOG=\"" DEFAULT_XFERLOG "\"\n");
-#endif
#ifdef DEFAULT_ERRORLOG
printf(" -D DEFAULT_ERRORLOG=\"" DEFAULT_ERRORLOG "\"\n");
#endif
@@ -4315,8 +4333,15 @@ static void child_main(int child_num_arg)
}
GETUSERMODE();
#else
- /* Only try to switch if we're running as root */
+ /*
+ * Only try to switch if we're running as root
+ * In case of Cygwin we have the special super-user named SYSTEM
+ */
+#ifdef CYGWIN
+ if (getuid() == SYSTEM_UID && (
+#else
if (!geteuid() && (
+#endif
#ifdef _OSD_POSIX
os_init_job_environment(server_conf, ap_user_name, one_process) != 0 ||
#endif
@@ -4899,13 +4924,16 @@ static int hold_off_on_exponential_spawning;
* is greater then ap_daemons_max_free. Usually we will use SIGUSR1
* to gracefully shutdown, but unfortunatly some OS will need other
* signals to ensure that the child process is terminated and the
- * scoreboard pool is not growing to infinity. This effect has been
- * seen at least on Cygwin 1.x. -- Stipe Tolj <tolj@wapme-systems.de>
+ * scoreboard pool is not growing to infinity. Also set the signal we
+ * use to kill of childs that exceed timeout. This effect has been
+* seen at least on Cygwin 1.x. -- Stipe Tolj <tolj@wapme-systems.de>
*/
#if defined(CYGWIN)
#define SIG_IDLE_KILL SIGKILL
+#define SIG_TIMEOUT_KILL SIGUSR2
#else
#define SIG_IDLE_KILL SIGUSR1
+#define SIG_TIMEOUT_KILL SIGALRM
#endif
static void perform_idle_server_maintenance(void)
@@ -4977,7 +5005,7 @@ static void perform_idle_server_maintenance(void)
else if (ps->last_rtime + ss->timeout_len < now) {
/* no progress, and the timeout length has been exceeded */
ss->timeout_len = 0;
- kill(ps->pid, SIGALRM);
+ kill(ps->pid, SIG_TIMEOUT_KILL);
}
}
#endif
@@ -5466,7 +5494,7 @@ int REALMAIN(int argc, char *argv[])
ap_setup_prelinked_modules();
while ((c = getopt(argc, argv,
- "D:C:c:xXd:f:vVlLR:StThu"
+ "D:C:c:xXd:Ff:vVlLR:StThu"
#ifdef DEBUG_SIGSTOP
"Z:"
#endif
@@ -5488,6 +5516,9 @@ int REALMAIN(int argc, char *argv[])
case 'd':
ap_cpystrn(ap_server_root, optarg, sizeof(ap_server_root));
break;
+ case 'F':
+ do_detach = 0;
+ break;
case 'f':
ap_cpystrn(ap_server_confname, optarg, sizeof(ap_server_confname));
break;
@@ -5599,15 +5630,23 @@ int REALMAIN(int argc, char *argv[])
tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0';
ap_open_logs(server_conf, plog);
ap_tpf_zinet_checks(ap_standalone, tpf_server_name, server_conf);
+ ap_tpf_save_argv(argc, argv); /* save argv parms for children */
}
if (ap_standalone) {
ap_set_version();
ap_init_modules(pconf, server_conf);
version_locked++;
if(tpf_child) {
+ server_conf->error_log = stderr;
+#ifdef HAVE_SYSLOG
+ /* if ErrorLog is syslog call ap_open_logs from the child since
+ syslog isn't redirected to stderr by the Apache parent */
+ if (strncasecmp(server_conf->error_fname, "syslog", 6) == 0) {
+ ap_open_logs(server_conf, plog);
+ }
+#endif /* HAVE_SYSLOG */
copy_listeners(pconf);
reset_tpf_listeners(&input_parms.child);
- server_conf->error_log = NULL;
#ifdef SCOREBOARD_FILE
scoreboard_fd = input_parms.child.scoreboard_fd;
ap_scoreboard_image = &_scoreboard_image;
@@ -5648,8 +5687,16 @@ int REALMAIN(int argc, char *argv[])
}
GETUSERMODE();
#else
- /* Only try to switch if we're running as root */
+ /*
+ * Only try to switch if we're running as root
+ * In case of Cygwin we have the special super-user named SYSTEM
+ * with a pre-defined uid.
+ */
+#ifdef CYGWIN
+ if ((getuid() == SYSTEM_UID) && setuid(ap_user_id) == -1) {
+#else
if (!geteuid() && setuid(ap_user_id) == -1) {
+#endif
ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf,
"setuid: unable to change to uid: %ld",
(long) ap_user_id);
@@ -7399,7 +7446,7 @@ int REALMAIN(int argc, char *argv[])
while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLz:Z:wiuStThk:n:W:")) != -1) {
#else /* !WIN32 */
- while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLesStTh")) != -1) {
+ while ((c = getopt(argc, argv, "D:C:c:Xd:fF:vVlLesStTh")) != -1) {
#endif
char **new;
switch (c) {
@@ -7521,6 +7568,11 @@ int REALMAIN(int argc, char *argv[])
&& ap_server_root[strlen(ap_server_root) - 1] == '/')
ap_server_root[strlen(ap_server_root) - 1] = '\0';
break;
+#ifndef WIN32
+ case 'F':
+ do_detach = 0;
+ break;
+#endif
case 'f':
ap_cpystrn(ap_server_confname,
ap_os_canonical_filename(pcommands, optarg),
@@ -7856,7 +7908,7 @@ __declspec(dllimport)
#endif
-int ap_main(int argc, char *argv[]); /* Load time linked from libhttpd.dll */
+int ap_main(int argc, char *argv[]); /* Load time linked from cyghttpd.dll */
int main(int argc, char *argv[])
{
@@ -7922,13 +7974,14 @@ int main(int argc, char *argv[], char *envp[])
* but only handle the -L option
*/
llp_dir = SHARED_CORE_DIR;
- while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLR:SZ:tTh")) != -1) {
+ while ((c = getopt(argc, argv, "D:C:c:Xd:Ff:vVlLR:SZ:tTh")) != -1) {
switch (c) {
case 'D':
case 'C':
case 'c':
case 'X':
case 'd':
+ case 'F':
case 'f':
case 'v':
case 'V':
diff --git a/usr.sbin/httpd/src/main/http_protocol.c b/usr.sbin/httpd/src/main/http_protocol.c
index b373c76ea83..df87e217b20 100644
--- a/usr.sbin/httpd/src/main/http_protocol.c
+++ b/usr.sbin/httpd/src/main/http_protocol.c
@@ -171,7 +171,7 @@ static enum byterange_token
}
if (ap_isdigit(*r->range))
- *start = strtol(r->range, (char **)&r->range, 10);
+ *start = ap_strtol(r->range, (char **)&r->range, 10);
else
*start = -1;
@@ -186,7 +186,7 @@ static enum byterange_token
++r->range;
if (ap_isdigit(*r->range))
- *end = strtol(r->range, (char **)&r->range, 10);
+ *end = ap_strtol(r->range, (char **)&r->range, 10);
else
*end = -1;
@@ -857,13 +857,13 @@ API_EXPORT(int) ap_method_number_of(const char *method)
* then the actual input line exceeded the buffer length,
* and it would be a good idea for the caller to puke 400 or 414.
*/
-static int getline(char *s, int n, BUFF *in, int fold)
+API_EXPORT(int) ap_getline(char *s, int n, BUFF *in, int fold)
{
char *pos, next;
int retval;
int total = 0;
#ifdef CHARSET_EBCDIC
- /* When getline() is called, the HTTP protocol is in a state
+ /* When ap_getline() is called, the HTTP protocol is in a state
* where we MUST be reading "plain text" protocol stuff,
* (Request line, MIME headers, Chunk sizes) regardless of
* the MIME type and conversion setting of the document itself.
@@ -978,12 +978,12 @@ CORE_EXPORT(void) ap_parse_uri(request_rec *r, const char *uri)
static int read_request_line(request_rec *r)
{
- char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* getline's two extra for \n\0 */
+ char l[DEFAULT_LIMIT_REQUEST_LINE + 2]; /* ap_getline's two extra for \n\0 */
const char *ll = l;
const char *uri;
conn_rec *conn = r->connection;
unsigned int major = 1, minor = 0; /* Assume HTTP/1.0 if non-"HTTP" protocol */
- int len;
+ int len, n;
/* Read past empty lines until we get a real request line,
* a read error, the connection closes (EOF), or we timeout.
@@ -1000,7 +1000,7 @@ static int read_request_line(request_rec *r)
* have to block during a read.
*/
ap_bsetflag(conn->client, B_SAFEREAD, 1);
- while ((len = getline(l, sizeof(l), conn->client, 0)) <= 0) {
+ while ((len = ap_getline(l, sizeof(l), conn->client, 0)) <= 0) {
if ((len < 0) || ap_bgetflag(conn->client, B_EOF)) {
ap_bsetflag(conn->client, B_SAFEREAD, 0);
/* this is a hack to make sure that request time is set,
@@ -1031,7 +1031,7 @@ static int read_request_line(request_rec *r)
ap_parse_uri(r, uri);
- /* getline returns (size of max buffer - 1) if it fills up the
+ /* ap_getline returns (size of max buffer - 1) if it fills up the
* buffer before finding the end-of-line. This is only going to
* happen if it exceeds the configured limit for a request-line.
*/
@@ -1045,18 +1045,34 @@ static int read_request_line(request_rec *r)
r->assbackwards = (ll[0] == '\0');
r->protocol = ap_pstrdup(r->pool, ll[0] ? ll : "HTTP/0.9");
- if (2 == sscanf(r->protocol, "HTTP/%u.%u", &major, &minor)
+ if (2 == sscanf(r->protocol, "HTTP/%u.%u%n", &major, &minor, &n)
&& minor < HTTP_VERSION(1,0)) /* don't allow HTTP/0.1000 */
r->proto_num = HTTP_VERSION(major, minor);
- else
+ else {
r->proto_num = HTTP_VERSION(1,0);
+ n = 0;
+ }
+
+ /* Check for a valid protocol, and disallow everything but whitespace
+ * after the protocol string */
+ while (ap_isspace(r->protocol[n]))
+ ++n;
+ if (r->protocol[n] != '\0') {
+ r->status = HTTP_BAD_REQUEST;
+ r->proto_num = HTTP_VERSION(1,0);
+ r->protocol = ap_pstrdup(r->pool, "HTTP/1.0");
+ ap_table_setn(r->notes, "error-notes",
+ "The request line contained invalid characters "
+ "following the protocol string.<P>\n");
+ return 0;
+ }
return 1;
}
static void get_mime_headers(request_rec *r)
{
- char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* getline's two extra */
+ char field[DEFAULT_LIMIT_REQUEST_FIELDSIZE + 2]; /* ap_getline's two extra */
conn_rec *c = r->connection;
char *value;
char *copy;
@@ -1071,7 +1087,7 @@ static void get_mime_headers(request_rec *r)
* Read header lines until we get the empty separator line, a read error,
* the connection closes (EOF), reach the server limit, or we timeout.
*/
- while ((len = getline(field, sizeof(field), c->client, 1)) > 0) {
+ while ((len = ap_getline(field, sizeof(field), c->client, 1)) > 0) {
if (r->server->limit_req_fields &&
(++fields_read > r->server->limit_req_fields)) {
@@ -1081,7 +1097,7 @@ static void get_mime_headers(request_rec *r)
"this server's limit.<P>\n");
return;
}
- /* getline returns (size of max buffer - 1) if it fills up the
+ /* ap_getline returns (size of max buffer - 1) if it fills up the
* buffer before finding the end-of-line. This is only going to
* happen if it exceeds the configured limit for a field size.
*/
@@ -1173,6 +1189,14 @@ API_EXPORT(request_rec *) ap_read_request(conn_rec *conn)
ap_log_transaction(r);
return r;
}
+ else if (r->status == HTTP_BAD_REQUEST) {
+ ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
+ "request failed: erroneous characters after protocol string: %s",
+ ap_escape_logitem(r->pool, r->the_request));
+ ap_send_error_response(r, 0);
+ ap_log_transaction(r);
+ return r;
+ }
return NULL;
}
if (!r->assbackwards) {
@@ -1522,7 +1546,6 @@ API_EXPORT_NONSTD(int) ap_send_header_field(request_rec *r,
API_EXPORT(void) ap_basic_http_header(request_rec *r)
{
char *protocol;
- const char *server;
if (r->assbackwards)
return;
@@ -1551,10 +1574,13 @@ API_EXPORT(void) ap_basic_http_header(request_rec *r)
/* output the date header */
ap_send_header_field(r, "Date", ap_gm_timestr_822(r->pool, r->request_time));
- /* keep a previously set server header (possible from proxy), otherwise
+ /* keep the set-by-proxy server header, otherwise
* generate a new server header */
- if (server = ap_table_get(r->headers_out, "Server")) {
- ap_send_header_field(r, "Server", server);
+ if (r->proxyreq) {
+ const char *server = ap_table_get(r->headers_out, "Server");
+ if (server) {
+ ap_send_header_field(r, "Server", server);
+ }
}
else {
ap_send_header_field(r, "Server", ap_get_server_version());
@@ -1967,16 +1993,25 @@ API_EXPORT(int) ap_setup_client_block(request_rec *r, int read_policy)
}
else if (lenp) {
const char *pos = lenp;
+ int conversion_error = 0;
while (ap_isdigit(*pos) || ap_isspace(*pos))
++pos;
- if (*pos != '\0') {
+
+ if (*pos == '\0') {
+ char *endstr;
+ errno = 0;
+ r->remaining = ap_strtol(lenp, &endstr, 10);
+ if (errno || (endstr && *endstr)) {
+ conversion_error = 1;
+ }
+ }
+
+ if (*pos != '\0' || conversion_error) {
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
- "Invalid Content-Length %s", lenp);
+ "Invalid Content-Length");
return HTTP_BAD_REQUEST;
}
-
- r->remaining = atol(lenp);
}
if ((r->read_body == REQUEST_NO_BODY) &&
@@ -2025,7 +2060,7 @@ API_EXPORT(int) ap_should_client_block(request_rec *r)
return 1;
}
-static long get_chunk_size(char *b)
+API_EXPORT(long) ap_get_chunk_size(char *b)
{
long chunksize = 0;
long chunkbits = sizeof(long) * 8;
@@ -2120,14 +2155,14 @@ API_EXPORT(long) ap_get_client_block(request_rec *r, char *buffer, int bufsiz)
if (r->remaining == 0) { /* Start of new chunk */
- chunk_start = getline(buffer, bufsiz, r->connection->client, 0);
+ chunk_start = ap_getline(buffer, bufsiz, r->connection->client, 0);
if ((chunk_start <= 0) || (chunk_start >= (bufsiz - 1))
|| !ap_isxdigit(*buffer)) {
r->connection->keepalive = -1;
return -1;
}
- len_to_read = get_chunk_size(buffer);
+ len_to_read = ap_get_chunk_size(buffer);
if (len_to_read == 0) { /* Last chunk indicated, get footers */
if (r->read_body == REQUEST_CHUNKED_DECHUNK) {
@@ -2165,7 +2200,7 @@ API_EXPORT(long) ap_get_client_block(request_rec *r, char *buffer, int bufsiz)
len_read = chunk_start;
while ((bufsiz > 1) && ((len_read =
- getline(buffer, bufsiz, r->connection->client, 1)) > 0)) {
+ ap_getline(buffer, bufsiz, r->connection->client, 1)) > 0)) {
if (len_read != (bufsiz - 1)) {
buffer[len_read++] = CR; /* Restore footer line end */
diff --git a/usr.sbin/httpd/src/main/http_request.c b/usr.sbin/httpd/src/main/http_request.c
index fae2d26d3fd..9fbaaacc963 100644
--- a/usr.sbin/httpd/src/main/http_request.c
+++ b/usr.sbin/httpd/src/main/http_request.c
@@ -925,7 +925,7 @@ API_EXPORT(request_rec *) ap_sub_req_lookup_file(const char *new_file,
*/
if (errno == ENAMETOOLONG) {
ap_log_rerror(APLOG_MARK, APLOG_CRIT, r,
- "Possible DoS attempt? URL=%s", r->filename);
+ "Possible DoS attempt? Path=%s", r->filename);
rnew->status = HTTP_FORBIDDEN;
return rnew;
}
diff --git a/usr.sbin/httpd/src/main/util.c b/usr.sbin/httpd/src/main/util.c
index 05622c197cf..ba2836e117b 100644
--- a/usr.sbin/httpd/src/main/util.c
+++ b/usr.sbin/httpd/src/main/util.c
@@ -1446,6 +1446,81 @@ API_EXPORT(int) ap_find_last_token(pool *p, const char *line, const char *tok)
return (strncasecmp(&line[lidx], tok, tlen) == 0);
}
+/* c2x takes an unsigned, and expects the caller has guaranteed that
+ * 0 <= what < 256... which usually means that you have to cast to
+ * unsigned char first, because (unsigned)(char)(x) first goes through
+ * signed extension to an int before the unsigned cast.
+ *
+ * The reason for this assumption is to assist gcc code generation --
+ * the unsigned char -> unsigned extension is already done earlier in
+ * both uses of this code, so there's no need to waste time doing it
+ * again.
+ */
+static const char c2x_table[] = "0123456789abcdef";
+
+static ap_inline unsigned char *c2x(unsigned what, unsigned char *where)
+{
+#ifdef CHARSET_EBCDIC
+ what = os_toascii[what];
+#endif /*CHARSET_EBCDIC*/
+ *where++ = '%';
+ *where++ = c2x_table[what >> 4];
+ *where++ = c2x_table[what & 0xf];
+ return where;
+}
+
+/* escape a string for logging */
+API_EXPORT(char *) ap_escape_logitem(pool *p, const char *str)
+{
+ char *ret;
+ unsigned char *d;
+ const unsigned char *s;
+
+ if (str == NULL)
+ return NULL;
+
+ ret = ap_palloc(p, 4 * strlen(str) + 1); /* Be safe */
+ d = (unsigned char *)ret;
+ s = (const unsigned char *)str;
+ for (; *s; ++s) {
+
+ if (TEST_CHAR(*s, T_ESCAPE_LOGITEM)) {
+ *d++ = '\\';
+ switch(*s) {
+ case '\b':
+ *d++ = 'b';
+ break;
+ case '\n':
+ *d++ = 'n';
+ break;
+ case '\r':
+ *d++ = 'r';
+ break;
+ case '\t':
+ *d++ = 't';
+ break;
+ case '\v':
+ *d++ = 'v';
+ break;
+ case '\\':
+ case '"':
+ *d++ = *s;
+ break;
+ default:
+ c2x(*s, d);
+ *d = 'x';
+ d += 3;
+ }
+ }
+ else
+ *d++ = *s;
+ }
+ *d = '\0';
+
+ return ret;
+}
+
+
API_EXPORT(char *) ap_escape_shell_cmd(pool *p, const char *str)
{
char *cmd;
@@ -1494,7 +1569,7 @@ static char x2c(const char *what)
xstr[2]=what[0];
xstr[3]=what[1];
xstr[4]='\0';
- digit = os_toebcdic[0xFF & strtol(xstr, NULL, 16)];
+ digit = os_toebcdic[0xFF & ap_strtol(xstr, NULL, 16)];
#endif /*CHARSET_EBCDIC*/
return (digit);
}
@@ -1550,29 +1625,6 @@ API_EXPORT(char *) ap_construct_server(pool *p, const char *hostname,
}
}
-/* c2x takes an unsigned, and expects the caller has guaranteed that
- * 0 <= what < 256... which usually means that you have to cast to
- * unsigned char first, because (unsigned)(char)(x) first goes through
- * signed extension to an int before the unsigned cast.
- *
- * The reason for this assumption is to assist gcc code generation --
- * the unsigned char -> unsigned extension is already done earlier in
- * both uses of this code, so there's no need to waste time doing it
- * again.
- */
-static const char c2x_table[] = "0123456789abcdef";
-
-static ap_inline unsigned char *c2x(unsigned what, unsigned char *where)
-{
-#ifdef CHARSET_EBCDIC
- what = os_toascii[what];
-#endif /*CHARSET_EBCDIC*/
- *where++ = '%';
- *where++ = c2x_table[what >> 4];
- *where++ = c2x_table[what & 0xf];
- return where;
-}
-
/*
* escape_path_segment() escapes a path segment, as defined in RFC 1808. This
* routine is (should be) OS independent.
diff --git a/usr.sbin/httpd/src/main/util_uri.c b/usr.sbin/httpd/src/main/util_uri.c
index e61b7ba52ba..802790aa829 100644
--- a/usr.sbin/httpd/src/main/util_uri.c
+++ b/usr.sbin/httpd/src/main/util_uri.c
@@ -428,7 +428,7 @@ API_EXPORT(int) ap_parse_uri_components(pool *p, const char *uri,
++s;
uptr->port_str = ap_pstrndup(p, s, uri - s);
if (uri != s) {
- port = strtol(uptr->port_str, &endstr, 10);
+ port = ap_strtol(uptr->port_str, &endstr, 10);
uptr->port = port;
if (*endstr == '\0') {
goto deal_with_path;
@@ -483,7 +483,7 @@ API_EXPORT(int) ap_parse_hostinfo_components(pool *p, const char *hostinfo,
++s;
uptr->port_str = ap_pstrdup(p, s);
if (*s != '\0') {
- uptr->port = (unsigned short)strtol(uptr->port_str, &endstr, 10);
+ uptr->port = (unsigned short)ap_strtol(uptr->port_str, &endstr, 10);
if (*endstr == '\0') {
return HTTP_OK;
}
diff --git a/usr.sbin/httpd/src/modules/experimental/mod_auth_digest.c b/usr.sbin/httpd/src/modules/experimental/mod_auth_digest.c
index 6cae1f3533e..956b5f5faa3 100644
--- a/usr.sbin/httpd/src/modules/experimental/mod_auth_digest.c
+++ b/usr.sbin/httpd/src/modules/experimental/mod_auth_digest.c
@@ -594,7 +594,7 @@ static const char *set_nonce_lifetime(cmd_parms *cmd, void *config,
char *endptr;
long lifetime;
- lifetime = strtol(t, &endptr, 10);
+ lifetime = ap_strtol(t, &endptr, 10);
if (endptr < (t+strlen(t)) && !ap_isspace(*endptr))
return ap_pstrcat(cmd->pool, "Invalid time in AuthDigestNonceLifetime: ", t, NULL);
@@ -954,7 +954,7 @@ static int get_digest_rec(request_rec *r, digest_header_rec *resp)
}
if (resp->opaque)
- resp->opaque_num = (unsigned long) strtol(resp->opaque, NULL, 16);
+ resp->opaque_num = (unsigned long) ap_strtol(resp->opaque, NULL, 16);
resp->auth_hdr_sts = VALID;
return OK;
@@ -1396,7 +1396,7 @@ static int check_nc(const request_rec *r, const digest_header_rec *resp,
if (!conf->check_nc || !client_mm)
return OK;
- nc = strtol(snc, &endptr, 16);
+ nc = ap_strtol(snc, &endptr, 16);
if (endptr < (snc+strlen(snc)) && !ap_isspace(*endptr)) {
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
"Digest: invalid nc %s received - not a number", snc);
diff --git a/usr.sbin/httpd/src/modules/proxy/mod_proxy.c b/usr.sbin/httpd/src/modules/proxy/mod_proxy.c
index 99dc72e32d5..3c0d0d0241f 100644
--- a/usr.sbin/httpd/src/modules/proxy/mod_proxy.c
+++ b/usr.sbin/httpd/src/modules/proxy/mod_proxy.c
@@ -99,8 +99,9 @@ static int alias_match(const char *uri, const char *alias_fakename)
while (aliasp < end_fakename) {
if (*aliasp == '/') {
- /* any number of '/' in the alias matches any number in
- * the supplied URI, but there must be at least one...
+ /*
+ * any number of '/' in the alias matches any number in the
+ * supplied URI, but there must be at least one...
*/
if (*urip != '/')
return 0;
@@ -122,9 +123,9 @@ static int alias_match(const char *uri, const char *alias_fakename)
if (aliasp[-1] != '/' && *urip != '\0' && *urip != '/')
return 0;
- /* Return number of characters from URI which matched (may be
- * greater than length of alias, since we may have matched
- * doubled slashes)
+ /*
+ * Return number of characters from URI which matched (may be greater
+ * than length of alias, since we may have matched doubled slashes)
*/
return urip - uri;
@@ -146,14 +147,14 @@ static int proxy_detect(request_rec *r)
void *sconf = r->server->module_config;
proxy_server_conf *conf;
- conf = (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ conf = (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
if (conf->req && r->parsed_uri.scheme) {
/* but it might be something vhosted */
- if (!(r->parsed_uri.hostname
- && !strcasecmp(r->parsed_uri.scheme, ap_http_method(r))
- && ap_matches_request_vhost(r, r->parsed_uri.hostname,
- r->parsed_uri.port_str ? r->parsed_uri.port : ap_default_port(r)))) {
+ if (!(r->parsed_uri.hostname
+ && !strcasecmp(r->parsed_uri.scheme, ap_http_method(r))
+ && ap_matches_request_vhost(r, r->parsed_uri.hostname,
+ r->parsed_uri.port_str ? r->parsed_uri.port : ap_default_port(r)))) {
r->proxyreq = STD_PROXY;
r->uri = r->unparsed_uri;
r->filename = ap_pstrcat(r->pool, "proxy:", r->uri, NULL);
@@ -164,10 +165,10 @@ static int proxy_detect(request_rec *r)
else if (conf->req && r->method_number == M_CONNECT
&& r->parsed_uri.hostname
&& r->parsed_uri.port_str) {
- r->proxyreq = STD_PROXY;
- r->uri = r->unparsed_uri;
- r->filename = ap_pstrcat(r->pool, "proxy:", r->uri, NULL);
- r->handler = "proxy-server";
+ r->proxyreq = STD_PROXY;
+ r->uri = r->unparsed_uri;
+ r->filename = ap_pstrcat(r->pool, "proxy:", r->uri, NULL);
+ r->handler = "proxy-server";
}
return DECLINED;
}
@@ -176,31 +177,33 @@ static int proxy_trans(request_rec *r)
{
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
int i, len;
- struct proxy_alias *ent = (struct proxy_alias *) conf->aliases->elts;
+ struct proxy_alias *ent = (struct proxy_alias *)conf->aliases->elts;
if (r->proxyreq != NOT_PROXY) {
- /* someone has already set up the proxy, it was possibly ourselves
- * in proxy_detect
+ /*
+ * someone has already set up the proxy, it was possibly ourselves in
+ * proxy_detect
*/
return OK;
}
- /* XXX: since r->uri has been manipulated already we're not really
- * compliant with RFC1945 at this point. But this probably isn't
- * an issue because this is a hybrid proxy/origin server.
+ /*
+ * XXX: since r->uri has been manipulated already we're not really
+ * compliant with RFC1945 at this point. But this probably isn't an
+ * issue because this is a hybrid proxy/origin server.
*/
for (i = 0; i < conf->aliases->nelts; i++) {
len = alias_match(r->uri, ent[i].fake);
-
- if (len > 0) {
- r->filename = ap_pstrcat(r->pool, "proxy:", ent[i].real,
- r->uri + len, NULL);
- r->handler = "proxy-server";
- r->proxyreq = PROXY_PASS;
- return OK;
+
+ if (len > 0) {
+ r->filename = ap_pstrcat(r->pool, "proxy:", ent[i].real,
+ r->uri + len, NULL);
+ r->handler = "proxy-server";
+ r->proxyreq = PROXY_PASS;
+ return OK;
}
}
return DECLINED;
@@ -242,7 +245,7 @@ static int proxy_fixup(request_rec *r)
if (p == NULL || p == url)
return HTTP_BAD_REQUEST;
- return OK; /* otherwise; we've done the best we can */
+ return OK; /* otherwise; we've done the best we can */
}
static void proxy_init(server_rec *r, pool *p)
@@ -304,7 +307,7 @@ static int proxy_needsdomain(request_rec *r, const char *url, const char *domain
/* If host does contain a dot already, or it is "localhost", decline */
if (strchr(r->parsed_uri.hostname, '.') != NULL
- || strcasecmp(r->parsed_uri.hostname, "localhost") == 0)
+ || strcasecmp(r->parsed_uri.hostname, "localhost") == 0)
return DECLINED; /* host name has a dot already */
ref = ap_table_get(r->headers_in, "Referer");
@@ -312,17 +315,17 @@ static int proxy_needsdomain(request_rec *r, const char *url, const char *domain
/* Reassemble the request, but insert the domain after the host name */
/* Note that the domain name always starts with a dot */
r->parsed_uri.hostname = ap_pstrcat(r->pool, r->parsed_uri.hostname,
- domain, NULL);
+ domain, NULL);
nuri = ap_unparse_uri_components(r->pool,
- &r->parsed_uri,
- UNP_REVEALPASSWORD);
+ &r->parsed_uri,
+ UNP_REVEALPASSWORD);
ap_table_set(r->headers_out, "Location", nuri);
- ap_log_rerror(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, r,
- "Domain missing: %s sent to %s%s%s", r->uri,
- ap_unparse_uri_components(r->pool, &r->parsed_uri,
- UNP_OMITUSERINFO),
- ref ? " from " : "", ref ? ref : "");
+ ap_log_rerror(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO, r,
+ "Domain missing: %s sent to %s%s%s", r->uri,
+ ap_unparse_uri_components(r->pool, &r->parsed_uri,
+ UNP_OMITUSERINFO),
+ ref ? " from " : "", ref ? ref : "");
return HTTP_MOVED_PERMANENTLY;
}
@@ -335,7 +338,7 @@ static int proxy_handler(request_rec *r)
char *url, *scheme, *p;
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
array_header *proxies = conf->proxies;
struct proxy_remote *ents = (struct proxy_remote *) proxies->elts;
int i, rc;
@@ -348,7 +351,7 @@ static int proxy_handler(request_rec *r)
if (r->method_number == M_TRACE &&
(maxfwd_str = ap_table_get(r->headers_in, "Max-Forwards")) != NULL) {
- long maxfwd = strtol(maxfwd_str, NULL, 10);
+ long maxfwd = ap_strtol(maxfwd_str, NULL, 10);
if (maxfwd < 1) {
int access_status;
r->proxyreq = NOT_PROXY;
@@ -358,8 +361,8 @@ static int proxy_handler(request_rec *r)
ap_finalize_request_protocol(r);
return OK;
}
- ap_table_setn(r->headers_in, "Max-Forwards",
- ap_psprintf(r->pool, "%ld", (maxfwd > 0) ? maxfwd-1 : 0));
+ ap_table_setn(r->headers_in, "Max-Forwards",
+ ap_psprintf(r->pool, "%ld", (maxfwd > 0) ? maxfwd - 1 : 0));
}
if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR)))
@@ -389,18 +392,18 @@ static int proxy_handler(request_rec *r)
/* Check URI's destination host against NoProxy hosts */
/* Bypass ProxyRemote server lookup if configured as NoProxy */
/* we only know how to handle communication to a proxy via http */
- /*if (strcasecmp(scheme, "http") == 0) */
+ /* if (strcasecmp(scheme, "http") == 0) */
{
int ii;
- struct dirconn_entry *list = (struct dirconn_entry *) conf->dirconn->elts;
+ struct dirconn_entry *list = (struct dirconn_entry *)conf->dirconn->elts;
for (direct_connect = ii = 0; ii < conf->dirconn->nelts && !direct_connect; ii++) {
direct_connect = list[ii].matcher(&list[ii], r);
}
#if DEBUGGING
- ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r,
- (direct_connect) ? "NoProxy for %s" : "UseProxy for %s",
- r->uri);
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r,
+ (direct_connect) ? "NoProxy for %s" : "UseProxy for %s",
+ r->uri);
#endif
}
@@ -412,9 +415,10 @@ static int proxy_handler(request_rec *r)
if (strcmp(ents[i].scheme, "*") == 0 ||
(p == NULL && strcasecmp(scheme, ents[i].scheme) == 0) ||
(p != NULL &&
- strncasecmp(url, ents[i].scheme, strlen(ents[i].scheme)) == 0)) {
- /* CONNECT is a special method that bypasses the normal
- * proxy code.
+ strncasecmp(url, ents[i].scheme, strlen(ents[i].scheme)) == 0)) {
+ /*
+ * CONNECT is a special method that bypasses the normal proxy
+ * code.
*/
#ifdef EAPI
if (!ap_hook_use("ap::mod_proxy::handler",
@@ -426,11 +430,11 @@ static int proxy_handler(request_rec *r)
#endif /* EAPI */
if (r->method_number == M_CONNECT)
rc = ap_proxy_connect_handler(r, cr, url, ents[i].hostname,
- ents[i].port);
+ ents[i].port);
/* we only know how to handle communication to a proxy via http */
else if (strcasecmp(ents[i].protocol, "http") == 0)
rc = ap_proxy_http_handler(r, cr, url, ents[i].hostname,
- ents[i].port);
+ ents[i].port);
else
rc = DECLINED;
#ifdef EAPI
@@ -444,10 +448,11 @@ static int proxy_handler(request_rec *r)
}
}
-/* otherwise, try it direct */
-/* N.B. what if we're behind a firewall, where we must use a proxy or
- * give up??
- */
+ /* otherwise, try it direct */
+ /* N.B. what if we're behind a firewall, where we must use a proxy or
+ * give up??
+ */
+
/* handle the scheme */
#ifdef EAPI
if (ap_hook_use("ap::mod_proxy::handler",
@@ -457,14 +462,23 @@ static int proxy_handler(request_rec *r)
NULL, 0, scheme) && rc != DECLINED)
return rc;
#endif /* EAPI */
- if (r->method_number == M_CONNECT)
+ if (r->method_number == M_CONNECT) {
return ap_proxy_connect_handler(r, cr, url, NULL, 0);
- if (strcasecmp(scheme, "http") == 0)
+ }
+ if (strcasecmp(scheme, "http") == 0) {
return ap_proxy_http_handler(r, cr, url, NULL, 0);
- if (strcasecmp(scheme, "ftp") == 0)
+ }
+ if (strcasecmp(scheme, "ftp") == 0) {
return ap_proxy_ftp_handler(r, cr, url);
- else
+ }
+ else {
+ ap_log_rerror(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, r,
+ "proxy: No protocol handler was valid for the URL %s. "
+ "If you are using a DSO version of mod_proxy, make sure "
+ "the proxy submodules are included in the configuration "
+ "using LoadModule.", r->uri);
return HTTP_FORBIDDEN;
+ }
}
/* -------------------------------------------------------------- */
@@ -483,11 +497,12 @@ static void *
ps->nocaches = ap_make_array(p, 10, sizeof(struct nocache_entry));
ps->allowed_connect_ports = ap_make_array(p, 10, sizeof(int));
ps->domain = NULL;
- ps->viaopt = via_off; /* initially backward compatible with 1.3.1 */
- ps->viaopt_set = 0; /* 0 means default */
+ ps->viaopt = via_off; /* initially backward compatible with 1.3.1 */
+ ps->viaopt_set = 0; /* 0 means default */
ps->req = 0;
ps->req_set = 0;
- ps->recv_buffer_size = 0; /* this default was left unset for some reason */
+ ps->recv_buffer_size = 0; /* this default was left unset for some
+ * reason */
ps->recv_buffer_size_set = 0;
ps->io_buffer_size = IOBUFSIZE;
ps->io_buffer_size_set = 0;
@@ -516,11 +531,11 @@ static void *
static void *
merge_proxy_config(pool *p, void *basev,
- void *overridesv)
+ void *overridesv)
{
proxy_server_conf *ps = ap_pcalloc(p, sizeof(proxy_server_conf));
- proxy_server_conf *base = (proxy_server_conf *) basev;
- proxy_server_conf *overrides = (proxy_server_conf *) overridesv;
+ proxy_server_conf *base = (proxy_server_conf *)basev;
+ proxy_server_conf *overrides = (proxy_server_conf *)overridesv;
ps->proxies = ap_append_arrays(p, base->proxies, overrides->proxies);
ps->aliases = ap_append_arrays(p, base->aliases, overrides->aliases);
@@ -555,7 +570,7 @@ static const char *
{
server_rec *s = cmd->server;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(s->module_config, &proxy_module);
struct proxy_remote *new;
char *p, *q;
int port;
@@ -573,8 +588,8 @@ static const char *
port = -1;
*p = '\0';
if (strchr(f, ':') == NULL)
- ap_str_tolower(f); /* lowercase scheme */
- ap_str_tolower(p + 3); /* lowercase hostname */
+ ap_str_tolower(f); /* lowercase scheme */
+ ap_str_tolower(p + 3); /* lowercase hostname */
if (port == -1) {
int i;
@@ -597,7 +612,7 @@ static const char *
{
server_rec *s = cmd->server;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(s->module_config, &proxy_module);
struct proxy_alias *new;
new = ap_push_array(conf->aliases);
@@ -607,14 +622,14 @@ static const char *
}
static const char *
- add_pass_reverse(cmd_parms *cmd, void *dummy, char *f, char *r)
+ add_pass_reverse(cmd_parms *cmd, void *dummy, char *f, char *r)
{
server_rec *s = cmd->server;
proxy_server_conf *conf;
struct proxy_alias *new;
- conf = (proxy_server_conf *)ap_get_module_config(s->module_config,
- &proxy_module);
+ conf = (proxy_server_conf *)ap_get_module_config(s->module_config,
+ &proxy_module);
new = ap_push_array(conf->raliases);
new->fake = f;
new->real = r;
@@ -644,7 +659,10 @@ static const char *
new->name = arg;
/* Don't do name lookups on things that aren't dotted */
if (strchr(arg, '.') != NULL && ap_proxy_host2addr(new->name, &hp) == NULL)
- /*@@@FIXME: This copies only the first of (possibly many) IP addrs */
+ /*
+ * @@@FIXME: This copies only the first of (possibly many) IP
+ * addrs
+ */
memcpy(&new->addr, hp.h_addr, sizeof(struct in_addr));
else
new->addr.s_addr = 0;
@@ -656,11 +674,11 @@ static const char *
* Set the ports CONNECT can use
*/
static const char *
- set_allowed_ports(cmd_parms *parms, void *dummy, char *arg)
+ set_allowed_ports(cmd_parms *parms, void *dummy, char *arg)
{
server_rec *s = parms->server;
proxy_server_conf *conf =
- ap_get_module_config(s->module_config, &proxy_module);
+ ap_get_module_config(s->module_config, &proxy_module);
int *New;
if (!ap_isdigit(arg[0]))
@@ -681,7 +699,7 @@ static const char *
proxy_server_conf *conf =
ap_get_module_config(s->module_config, &proxy_module);
struct dirconn_entry *New;
- struct dirconn_entry *list = (struct dirconn_entry *) conf->dirconn->elts;
+ struct dirconn_entry *list = (struct dirconn_entry *)conf->dirconn->elts;
int found = 0;
int i;
@@ -798,7 +816,7 @@ static const char *
if (sscanf(arg, "%lg", &val) != 1)
return "CacheMaxExpire value must be a float";
- psf->cache.maxexpire = (int) (val * (double) SEC_ONE_HR);
+ psf->cache.maxexpire = (int)(val * (double)SEC_ONE_HR);
psf->cache.maxexpire_set = 1;
return NULL;
}
@@ -812,7 +830,7 @@ static const char *
if (sscanf(arg, "%lg", &val) != 1)
return "CacheDefaultExpire value must be a float";
- psf->cache.defaultexpire = (int) (val * (double) SEC_ONE_HR);
+ psf->cache.defaultexpire = (int)(val * (double)SEC_ONE_HR);
psf->cache.defaultexpire_set = 1;
return NULL;
}
@@ -826,7 +844,7 @@ static const char *
if (sscanf(arg, "%lg", &val) != 1)
return "CacheGcInterval value must be a float";
- psf->cache.gcinterval = (int) (val * (double) SEC_ONE_HR);
+ psf->cache.gcinterval = (int)(val * (double)SEC_ONE_HR);
psf->cache.gcinterval_set = 1;
return NULL;
}
@@ -888,7 +906,10 @@ static const char *
new->name = arg;
/* Don't do name lookups on things that aren't dotted */
if (strchr(arg, '.') != NULL && ap_proxy_host2addr(new->name, &hp) == NULL)
- /*@@@FIXME: This copies only the first of (possibly many) IP addrs */
+ /*
+ * @@@FIXME: This copies only the first of (possibly many) IP
+ * addrs
+ */
memcpy(&new->addr, hp.h_addr, sizeof(struct in_addr));
else
new->addr.s_addr = 0;
@@ -923,26 +944,26 @@ static const char *
return NULL;
}
-static const char*
- set_cache_completion(cmd_parms *parms, void *dummy, char *arg)
+static const char *
+ set_cache_completion(cmd_parms *parms, void *dummy, char *arg)
{
proxy_server_conf *psf =
ap_get_module_config(parms->server->module_config, &proxy_module);
int s = atoi(arg);
if (s > 100 || s < 0) {
return "CacheForceCompletion must be <= 100 percent, "
- "or 0 for system default.";
+ "or 0 for system default.";
}
if (s > 0)
- psf->cache.cache_completion = ((float)s / 100);
+ psf->cache.cache_completion = ((float)s / 100);
psf->cache.cache_completion_set = 1;
- return NULL;
+ return NULL;
}
-static const char*
- set_via_opt(cmd_parms *parms, void *dummy, char *arg)
+static const char *
+ set_via_opt(cmd_parms *parms, void *dummy, char *arg)
{
proxy_server_conf *psf =
ap_get_module_config(parms->server->module_config, &proxy_module);
@@ -957,11 +978,11 @@ static const char*
psf->viaopt = via_full;
else {
return "ProxyVia must be one of: "
- "off | on | full | block";
+ "off | on | full | block";
}
psf->viaopt_set = 1;
- return NULL;
+ return NULL;
}
static const handler_rec proxy_handlers[] =
@@ -973,47 +994,47 @@ static const handler_rec proxy_handlers[] =
static const command_rec proxy_cmds[] =
{
{"ProxyRequests", set_proxy_req, NULL, RSRC_CONF, FLAG,
- "on if the true proxy requests should be accepted"},
+ "on if the true proxy requests should be accepted"},
{"ProxyRemote", add_proxy, NULL, RSRC_CONF, TAKE2,
- "a scheme, partial URL or '*' and a proxy server"},
+ "a scheme, partial URL or '*' and a proxy server"},
{"ProxyPass", add_pass, NULL, RSRC_CONF, TAKE2,
- "a virtual path and a URL"},
+ "a virtual path and a URL"},
{"ProxyPassReverse", add_pass_reverse, NULL, RSRC_CONF, TAKE2,
- "a virtual path and a URL for reverse proxy behaviour"},
+ "a virtual path and a URL for reverse proxy behaviour"},
{"ProxyBlock", set_proxy_exclude, NULL, RSRC_CONF, ITERATE,
- "A list of names, hosts or domains to which the proxy will not connect"},
+ "A list of names, hosts or domains to which the proxy will not connect"},
{"ProxyReceiveBufferSize", set_recv_buffer_size, NULL, RSRC_CONF, TAKE1,
- "Receive buffer size for outgoing HTTP and FTP connections in bytes"},
+ "Receive buffer size for outgoing HTTP and FTP connections in bytes"},
{"ProxyIOBufferSize", set_io_buffer_size, NULL, RSRC_CONF, TAKE1,
- "IO buffer size for outgoing HTTP and FTP connections in bytes"},
+ "IO buffer size for outgoing HTTP and FTP connections in bytes"},
{"NoProxy", set_proxy_dirconn, NULL, RSRC_CONF, ITERATE,
- "A list of domains, hosts, or subnets to which the proxy will connect directly"},
+ "A list of domains, hosts, or subnets to which the proxy will connect directly"},
{"ProxyDomain", set_proxy_domain, NULL, RSRC_CONF, TAKE1,
- "The default intranet domain name (in absence of a domain in the URL)"},
+ "The default intranet domain name (in absence of a domain in the URL)"},
{"AllowCONNECT", set_allowed_ports, NULL, RSRC_CONF, ITERATE,
- "A list of ports which CONNECT may connect to"},
+ "A list of ports which CONNECT may connect to"},
{"CacheRoot", set_cache_root, NULL, RSRC_CONF, TAKE1,
- "The directory to store cache files"},
+ "The directory to store cache files"},
{"CacheSize", set_cache_size, NULL, RSRC_CONF, TAKE1,
- "The maximum disk space used by the cache in Kb"},
+ "The maximum disk space used by the cache in Kb"},
{"CacheMaxExpire", set_cache_maxex, NULL, RSRC_CONF, TAKE1,
- "The maximum time in hours to cache a document"},
+ "The maximum time in hours to cache a document"},
{"CacheDefaultExpire", set_cache_defex, NULL, RSRC_CONF, TAKE1,
- "The default time in hours to cache a document"},
+ "The default time in hours to cache a document"},
{"CacheLastModifiedFactor", set_cache_factor, NULL, RSRC_CONF, TAKE1,
- "The factor used to estimate Expires date from LastModified date"},
+ "The factor used to estimate Expires date from LastModified date"},
{"CacheGcInterval", set_cache_gcint, NULL, RSRC_CONF, TAKE1,
- "The interval between garbage collections, in hours"},
+ "The interval between garbage collections, in hours"},
{"CacheDirLevels", set_cache_dirlevels, NULL, RSRC_CONF, TAKE1,
- "The number of levels of subdirectories in the cache"},
+ "The number of levels of subdirectories in the cache"},
{"CacheDirLength", set_cache_dirlength, NULL, RSRC_CONF, TAKE1,
- "The number of characters in subdirectory names"},
+ "The number of characters in subdirectory names"},
{"NoCache", set_cache_exclude, NULL, RSRC_CONF, ITERATE,
- "A list of names, hosts or domains for which caching is *not* provided"},
+ "A list of names, hosts or domains for which caching is *not* provided"},
{"CacheForceCompletion", set_cache_completion, NULL, RSRC_CONF, TAKE1,
- "Force a http cache completion after this percentage is loaded"},
+ "Force a http cache completion after this percentage is loaded"},
{"ProxyVia", set_via_opt, NULL, RSRC_CONF, TAKE1,
- "Configure Via: proxy header header to one of: on | off | block | full"},
+ "Configure Via: proxy header header to one of: on | off | block | full"},
{NULL}
};
@@ -1045,5 +1066,3 @@ module MODULE_VAR_EXPORT proxy_module =
NULL /* EAPI: new_connection */
#endif
};
-
-
diff --git a/usr.sbin/httpd/src/modules/proxy/mod_proxy.h b/usr.sbin/httpd/src/modules/proxy/mod_proxy.h
index 94178e5da3d..79d1ed8998b 100644
--- a/usr.sbin/httpd/src/modules/proxy/mod_proxy.h
+++ b/usr.sbin/httpd/src/modules/proxy/mod_proxy.h
@@ -297,7 +297,7 @@ char *ap_proxy_canon_netloc(pool *p, char **const urlp, char **userp,
char **passwordp, char **hostp, int *port);
const char *ap_proxy_date_canon(pool *p, const char *x);
table *ap_proxy_read_headers(request_rec *r, char *buffer, int size, BUFF *f);
-long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, size_t recv_buffer_size);
+long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, int chunked, size_t recv_buffer_size);
void ap_proxy_write_headers(cache_req *c, const char *respline, table *t);
int ap_proxy_liststr(const char *list, const char *key, char **val);
void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength);
@@ -321,6 +321,7 @@ BUFF *ap_proxy_create_cachefile(request_rec *r, char *filename);
void ap_proxy_clear_connection(pool *p, table *headers);
int ap_proxy_table_replace(table *base, table *overlay);
void ap_proxy_table_unmerge(pool *p, table *t, char *key);
+int ap_proxy_read_response_line(BUFF *f, request_rec *r, char *buffer, int size, int *backasswards, int *major, int *minor);
/* WARNING - PRIVATE DEFINITION BELOW */
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_cache.c b/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
index 41d619e6b23..ff2bb0681f2 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
@@ -68,7 +68,7 @@
#include <sys/utime.h>
#else
#include <utime.h>
-#endif /* WIN32 */
+#endif /* WIN32 */
#include "multithread.h"
#include "ap_md5.h"
#ifdef __TANDEM
@@ -87,8 +87,8 @@ struct gc_ent {
/* Poor man's 61 bit arithmetic */
typedef struct {
- long lower; /* lower 30 bits of result */
- long upper; /* upper 31 bits of result */
+ long lower; /* lower 30 bits of result */
+ long upper; /* upper 31 bits of result */
} long61_t;
/* FIXME: The block size can be different on a `per file system' base.
@@ -123,7 +123,7 @@ int ap_proxy_garbage_init(server_rec *r, pool *p)
static int sub_garbage_coll(request_rec *r, array_header *files,
- const char *cachedir, const char *cachesubdir);
+ const char *cachedir, const char *cachesubdir);
static void help_proxy_garbage_coll(request_rec *r);
static int should_proxy_garbage_coll(request_rec *r);
#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) && !defined(TPF)
@@ -135,14 +135,14 @@ void ap_proxy_garbage_coll(request_rec *r)
{
static int inside = 0;
- (void) ap_acquire_mutex(garbage_mutex);
+ (void)ap_acquire_mutex(garbage_mutex);
if (inside == 1) {
- (void) ap_release_mutex(garbage_mutex);
+ (void)ap_release_mutex(garbage_mutex);
return;
}
else
inside = 1;
- (void) ap_release_mutex(garbage_mutex);
+ (void)ap_release_mutex(garbage_mutex);
ap_block_alarms(); /* avoid SIGALRM on big cache cleanup */
if (should_proxy_garbage_coll(r))
@@ -153,14 +153,13 @@ void ap_proxy_garbage_coll(request_rec *r)
#endif
ap_unblock_alarms();
- (void) ap_acquire_mutex(garbage_mutex);
+ (void)ap_acquire_mutex(garbage_mutex);
inside = 0;
- (void) ap_release_mutex(garbage_mutex);
+ (void)ap_release_mutex(garbage_mutex);
}
-static void
-add_long61 (long61_t *accu, long val)
+static void add_long61(long61_t *accu, long val)
{
/* Add in lower 30 bits */
accu->lower += (val & 0x3FFFFFFFL);
@@ -170,8 +169,7 @@ add_long61 (long61_t *accu, long val)
accu->lower &= 0x3FFFFFFFL;
}
-static void
-sub_long61 (long61_t *accu, long val)
+static void sub_long61(long61_t *accu, long val)
{
int carry = (val & 0x3FFFFFFFL) > accu->lower;
/* Subtract lower 30 bits */
@@ -185,11 +183,10 @@ sub_long61 (long61_t *accu, long val)
* return 0 when left == right
* return >0 when left > right
*/
-static long
-cmp_long61 (long61_t *left, long61_t *right)
+static long cmp_long61(long61_t *left, long61_t *right)
{
return (left->upper == right->upper) ? (left->lower - right->lower)
- : (left->upper - right->upper);
+ : (left->upper - right->upper);
}
/* Compare two gc_ent's, sort them by expiration date */
@@ -215,66 +212,74 @@ static void detached_proxy_garbage_coll(request_rec *r)
#if 0
ap_log_error(APLOG_MARK, APLOG_DEBUG, r->server,
- "proxy: Guess what; we fork() again...");
+ "proxy: Guess what; we fork() again...");
#endif
switch (pid = fork()) {
- case -1:
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
- "proxy: fork() for cache cleanup failed");
- return;
+ case -1:
+ ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
+ "proxy: fork() for cache cleanup failed");
+ return;
- case 0: /* Child */
+ case 0: /* Child */
- /* close all sorts of things, including the socket fd */
- ap_cleanup_for_exec();
+ /* close all sorts of things, including the socket fd */
+ ap_cleanup_for_exec();
- /* Fork twice to disassociate from the child */
- switch (pid = fork()) {
- case -1:
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
+ /* Fork twice to disassociate from the child */
+ switch (pid = fork()) {
+ case -1:
+ ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
"proxy: fork(2nd) for cache cleanup failed");
- exit(1);
+ exit(1);
- case 0: /* Child */
- /* The setpgrp() stuff was snarfed from http_main.c */
+ case 0: /* Child */
+ /* The setpgrp() stuff was snarfed from http_main.c */
#ifndef NO_SETSID
- if ((pgrp = setsid()) == -1) {
- perror("setsid");
- fprintf(stderr, "%s: setsid failed\n",
- ap_server_argv0);
- exit(1);
- }
+ if ((pgrp = setsid()) == -1) {
+ perror("setsid");
+ fprintf(stderr, "%s: setsid failed\n",
+ ap_server_argv0);
+ exit(1);
+ }
#elif defined(NEXT) || defined(NEWSOS)
- if (setpgrp(0, getpid()) == -1 || (pgrp = getpgrp(0)) == -1) {
- perror("setpgrp");
- fprintf(stderr, "%S: setpgrp or getpgrp failed\n",
- ap_server_argv0);
- exit(1);
- }
+ if (setpgrp(0, getpid()) == -1 || (pgrp = getpgrp(0)) == -1) {
+ perror("setpgrp");
+ fprintf(stderr, "%S: setpgrp or getpgrp failed\n",
+ ap_server_argv0);
+ exit(1);
+ }
+#elif defined(CYGWIN)
+ /* Cygwin does not take any argument for setpgrp() */
+ if ((pgrp = setpgrp()) == -1) {
+ perror("setpgrp");
+ fprintf(stderr, "%S: setpgrp failed\n",
+ ap_server_argv0);
+ exit(1);
+ }
#else
- if ((pgrp = setpgrp(getpid(), 0)) == -1) {
- perror("setpgrp");
- fprintf(stderr, "%s: setpgrp failed\n",
- ap_server_argv0);
- exit(1);
- }
+ if ((pgrp = setpgrp(getpid(), 0)) == -1) {
+ perror("setpgrp");
+ fprintf(stderr, "%s: setpgrp failed\n",
+ ap_server_argv0);
+ exit(1);
+ }
#endif
- help_proxy_garbage_coll(r);
- exit(0);
+ help_proxy_garbage_coll(r);
+ exit(0);
- default: /* Father */
- /* After grandson has been forked off, */
- /* there's nothing else to do. */
- exit(0);
- }
- default:
- /* Wait until grandson has been forked off */
- /* (without wait we'd leave a zombie) */
- waitpid(pid, &status, 0);
- return;
+ default: /* Father */
+ /* After grandson has been forked off, */
+ /* there's nothing else to do. */
+ exit(0);
+ }
+ default:
+ /* Wait until grandson has been forked off */
+ /* (without wait we'd leave a zombie) */
+ waitpid(pid, &status, 0);
+ return;
}
}
-#endif /* ndef WIN32 */
+#endif /* ndef WIN32 */
#define DOT_TIME "/.time" /* marker */
@@ -282,7 +287,7 @@ static int should_proxy_garbage_coll(request_rec *r)
{
void *sconf = r->server->module_config;
proxy_server_conf *pconf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
const struct cache_conf *conf = &pconf->cache;
const char *cachedir = conf->root;
@@ -290,34 +295,36 @@ static int should_proxy_garbage_coll(request_rec *r)
struct stat buf;
int timefd;
time_t every = conf->gcinterval;
- static time_t lastcheck = BAD_DATE; /* static (per-process) data!!! */
+ static time_t lastcheck = BAD_DATE; /* static (per-process) data!!! */
if (cachedir == NULL || every == -1)
return 0;
- filename = ap_palloc(r->pool, strlen(cachedir) + strlen( DOT_TIME ) +1);
+ filename = ap_palloc(r->pool, strlen(cachedir) + strlen(DOT_TIME) + 1);
garbage_now = time(NULL);
- /* Usually, the modification time of <cachedir>/.time can only increase.
+ /*
+ * Usually, the modification time of <cachedir>/.time can only increase.
* Thus, even with several child processes having their own copy of
- * lastcheck, if time(NULL) still < lastcheck then it's not time
- * for GC yet.
+ * lastcheck, if time(NULL) still < lastcheck then it's not time for GC
+ * yet.
*/
if (garbage_now != -1 && lastcheck != BAD_DATE && garbage_now < lastcheck + every)
return 0;
- strcpy(filename,cachedir);
- strcat(filename,DOT_TIME);
+ strcpy(filename, cachedir);
+ strcat(filename, DOT_TIME);
- /* At this point we have a bit of an engineering compromise. We could either
- * create and/or mark the .time file (prior to the fork which might
- * fail on a resource issue) or wait until we are safely forked. The
- * advantage of doing it now in this process is that we get some
- * usefull live out of the global last check variable. (XXX which
- * should go scoreboard IMHO.) Note that the actual counting is
- * at a later moment.
+ /*
+ * At this point we have a bit of an engineering compromise. We could
+ * either create and/or mark the .time file (prior to the fork which
+ * might fail on a resource issue) or wait until we are safely forked.
+ * The advantage of doing it now in this process is that we get some
+ * usefull live out of the global last check variable. (XXX which should
+ * go scoreboard IMHO.) Note that the actual counting is at a later
+ * moment.
*/
- if (stat(filename, &buf) == -1) { /* does not exist */
+ if (stat(filename, &buf) == -1) { /* does not exist */
if (errno != ENOENT) {
ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
"proxy: stat(%s)", filename);
@@ -351,7 +358,7 @@ static void help_proxy_garbage_coll(request_rec *r)
const char *cachedir;
void *sconf = r->server->module_config;
proxy_server_conf *pconf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
const struct cache_conf *conf = &pconf->cache;
array_header *files;
struct gc_ent *fent;
@@ -372,9 +379,9 @@ static void help_proxy_garbage_coll(request_rec *r)
sub_garbage_coll(r, files, cachedir, "/");
if (cmp_long61(&curbytes, &cachesize) < 0L) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "proxy GC: Cache is %ld%% full (nothing deleted)",
- (long)(((curbytes.upper<<20)|(curbytes.lower>>10))*100/conf->space));
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "proxy GC: Cache is %ld%% full (nothing deleted)",
+ (long)(((curbytes.upper << 20) | (curbytes.lower >> 10)) * 100 / conf->space));
ap_unblock_alarms();
return;
}
@@ -385,7 +392,7 @@ static void help_proxy_garbage_coll(request_rec *r)
for (i = 0; i < files->nelts; i++) {
fent = &((struct gc_ent *) files->elts)[i];
sprintf(filename, "%s%s", cachedir, fent->file);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "GC Unlinking %s (expiry %ld, garbage_now %ld)", filename, (long)fent->expire, (long)garbage_now);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "GC Unlinking %s (expiry %ld, garbage_now %ld)", filename, (long)fent->expire, (long)garbage_now);
#if TESTING
fprintf(stderr, "Would unlink %s\n", filename);
#else
@@ -403,16 +410,16 @@ static void help_proxy_garbage_coll(request_rec *r)
}
}
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "proxy GC: Cache is %ld%% full (%d deleted)",
- (long)(((curbytes.upper<<20)|(curbytes.lower>>10))*100/conf->space), i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "proxy GC: Cache is %ld%% full (%d deleted)",
+ (long)(((curbytes.upper << 20) | (curbytes.lower >> 10)) * 100 / conf->space), i);
ap_unblock_alarms();
}
static int sub_garbage_coll(request_rec *r, array_header *files,
const char *cachebasedir, const char *cachesubdir)
{
- char line[17*(3)];
+ char line[17 * (3)];
char cachedir[HUGE_STRING_LEN];
struct stat buf;
int fd, i;
@@ -428,7 +435,7 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
ap_snprintf(cachedir, sizeof(cachedir), "%s%s", cachebasedir, cachesubdir);
filename = ap_palloc(r->pool, strlen(cachedir) + HASH_LEN + 2);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "GC Examining directory %s", cachedir);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "GC Examining directory %s", cachedir);
dir = opendir(cachedir);
if (dir == NULL) {
ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
@@ -440,7 +447,7 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
if (ent->d_name[0] == '.')
continue;
sprintf(filename, "%s%s", cachedir, ent->d_name);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "GC Examining file %s", filename);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "GC Examining file %s", filename);
/* is it a temporary file? */
if (strncmp(ent->d_name, "tmp", 3) == 0) {
/* then stat it to see how old it is; delete temporary files > 1 day old */
@@ -451,9 +458,9 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
}
else if (garbage_now != -1 && buf.st_atime < garbage_now - SEC_ONE_DAY &&
buf.st_mtime < garbage_now - SEC_ONE_DAY) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "GC unlink %s", filename);
- ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, r->server,
- "proxy gc: deleting orphaned cache file %s", filename);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "GC unlink %s", filename);
+ ap_log_error(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO, r->server,
+ "proxy gc: deleting orphaned cache file %s", filename);
#if TESTING
fprintf(stderr, "Would unlink %s\n", filename);
#else
@@ -465,22 +472,23 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
++nfiles;
/* is it another file? */
/* FIXME: Shouldn't any unexpected files be deleted? */
- /* if (strlen(ent->d_name) != HASH_LEN) continue; */
+ /* if (strlen(ent->d_name) != HASH_LEN) continue; */
/* under OS/2 use dirent's d_attr to identify a diretory */
/* under TPF use stat to identify a directory */
#if defined(OS2) || defined(TPF)
/* is it a directory? */
#ifdef OS2
- if (ent->d_attr & A_DIR) {
+ if (ent->d_attr & A_DIR)
#elif defined(TPF)
- if (stat(filename, &buf) == -1) {
- if (errno != ENOENT)
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
- "proxy gc: stat(%s)", filename);
- }
- if (S_ISDIR(buf.st_mode)) {
+ if (stat(filename, &buf) == -1) {
+ if (errno != ENOENT)
+ ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
+ "proxy gc: stat(%s)", filename);
+ }
+ if (S_ISDIR(buf.st_mode))
#endif
+ {
char newcachedir[HUGE_STRING_LEN];
ap_snprintf(newcachedir, sizeof(newcachedir),
"%s%s/", cachesubdir, ent->d_name);
@@ -500,9 +508,9 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
/* read the file */
#if defined(WIN32)
- /* On WIN32 open does not work for directories,
- * so we us stat instead of fstat to determine
- * if the file is a directory
+ /*
+ * On WIN32 open does not work for directories, so we us stat instead
+ * of fstat to determine if the file is a directory
*/
if (stat(filename, &buf) == -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
@@ -545,7 +553,8 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
rmdir(newcachedir);
#endif
--nfiles;
- } else {
+ }
+ else {
/* Directory is not empty. Account for its size: */
add_long61(&curbytes, ROUNDUP2BLOCKS(buf.st_size));
}
@@ -554,8 +563,9 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
#endif
#if defined(WIN32)
- /* Since we have determined above that the file is not a directory,
- * it should be safe to open it now
+ /*
+ * Since we have determined above that the file is not a directory,
+ * it should be safe to open it now
*/
fd = open(filename, O_RDONLY | O_BINARY);
if (fd == -1) {
@@ -565,8 +575,8 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
continue;
}
#endif
-
- i = read(fd, line, 17*(3)-1);
+
+ i = read(fd, line, 17 * (3) - 1);
close(fd);
if (i == -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
@@ -574,13 +584,13 @@ static int sub_garbage_coll(request_rec *r, array_header *files,
continue;
}
line[i] = '\0';
- garbage_expire = ap_proxy_hex2sec(line + 17*(2));
+ garbage_expire = ap_proxy_hex2sec(line + 17 * (2));
if (!ap_checkmask(line, "&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&") ||
garbage_expire == BAD_DATE) {
/* bad file */
if (garbage_now != -1 && buf.st_atime > garbage_now + SEC_ONE_DAY &&
buf.st_mtime > garbage_now + SEC_ONE_DAY) {
- ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, r->server,
+ ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, r->server,
"proxy: deleting bad cache file with future date: %s", filename);
#if TESTING
fprintf(stderr, "Would unlink bad file %s\n", filename);
@@ -632,49 +642,51 @@ static int rdcache(request_rec *r, BUFF *cachefp, cache_req *c)
/* read the data from the cache file */
- /* Format:
- *
- * The cache needs to keep track of the following information:
- * - Date, LastMod, Version, ReqTime, RespTime, ContentLength
- * - The original request headers (for Vary)
- * - The original response headers (for returning with a cached response)
- * - The body of the message
- *
- * date SP lastmod SP expire SP count SP request-time SP response-time SP content-lengthCRLF
- * (dates are stored as hex seconds since 1970)
- * Original URLCRLF
- * Original Request Headers
- * CRLF
- * Original Response Headers
- * CRLF
- * Body
+ /*
+ * Format:
+ *
+ * The cache needs to keep track of the following information: - Date,
+ * LastMod, Version, ReqTime, RespTime, ContentLength - The original
+ * request headers (for Vary) - The original response headers (for
+ * returning with a cached response) - The body of the message
+ *
+ * date SP lastmod SP expire SP count SP request-time SP response-time SP
+ * content-lengthCRLF (dates are stored as hex seconds since 1970)
+ * Original URLCRLF Original Request Headers CRLF Original Response
+ * Headers CRLF Body
*
*/
/* retrieve cachefile information values */
len = ap_bgets(urlbuff, sizeof urlbuff, cachefp);
- if (len == -1)
+ if (len == -1) {
+ /* Delete broken cache file */
+ unlink(c->filename);
return -1;
+ }
if (len == 0 || urlbuff[len - 1] != '\n')
return 0;
urlbuff[len - 1] = '\0';
if (!ap_checkmask(urlbuff,
- "&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&"))
+ "&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&"))
return 0;
- c->date = ap_proxy_hex2sec(urlbuff + 17*(0));
- c->lmod = ap_proxy_hex2sec(urlbuff + 17*(1));
- c->expire = ap_proxy_hex2sec(urlbuff + 17*(2));
- c->version = ap_proxy_hex2sec(urlbuff + 17*(3));
- c->req_time = ap_proxy_hex2sec(urlbuff + 17*(4));
- c->resp_time = ap_proxy_hex2sec(urlbuff + 17*(5));
- c->len = ap_proxy_hex2sec(urlbuff + 17*(6));
+ c->date = ap_proxy_hex2sec(urlbuff + 17 * (0));
+ c->lmod = ap_proxy_hex2sec(urlbuff + 17 * (1));
+ c->expire = ap_proxy_hex2sec(urlbuff + 17 * (2));
+ c->version = ap_proxy_hex2sec(urlbuff + 17 * (3));
+ c->req_time = ap_proxy_hex2sec(urlbuff + 17 * (4));
+ c->resp_time = ap_proxy_hex2sec(urlbuff + 17 * (5));
+ c->len = ap_proxy_hex2sec(urlbuff + 17 * (6));
/* check that we have the same URL */
len = ap_bgets(urlbuff, sizeof urlbuff, cachefp);
- if (len == -1)
+ if (len == -1) {
+ /* Delete broken cache file */
+ unlink(c->filename);
return -1;
+ }
if (len == 0 || strncmp(urlbuff, "X-URL: ", 7) != 0 ||
urlbuff[len - 1] != '\n')
return 0;
@@ -684,13 +696,19 @@ static int rdcache(request_rec *r, BUFF *cachefp, cache_req *c)
/* then the original request headers */
c->req_hdrs = ap_proxy_read_headers(r, urlbuff, sizeof urlbuff, cachefp);
- if (c->req_hdrs == NULL)
+ if (c->req_hdrs == NULL) {
+ /* Delete broken cache file */
+ unlink(c->filename);
return -1;
+ }
/* then the original response headers */
len = ap_bgets(urlbuff, sizeof urlbuff, cachefp);
- if (len == -1)
+ if (len == -1) {
+ /* Delete broken cache file */
+ unlink(c->filename);
return -1;
+ }
if (len == 0 || urlbuff[len - 1] != '\n')
return 0;
urlbuff[--len] = '\0';
@@ -702,15 +720,18 @@ static int rdcache(request_rec *r, BUFF *cachefp, cache_req *c)
c->status = atoi(strp);
c->hdrs = ap_proxy_read_headers(r, urlbuff, sizeof urlbuff, cachefp);
- if (c->hdrs == NULL)
+ if (c->hdrs == NULL) {
+ /* Delete broken cache file */
+ unlink(c->filename);
return -1;
- if (c->len != -1) /* add a content-length header */
+ }
+ if (c->len != -1) /* add a content-length header */
if (ap_table_get(c->hdrs, "Content-Length") == NULL) {
ap_table_set(c->hdrs, "Content-Length",
ap_psprintf(r->pool, "%lu", (unsigned long)c->len));
}
-
+
return 1;
}
@@ -735,52 +756,53 @@ int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp)
/* check for If-Match, If-Unmodified-Since */
while (1) {
- /* check If-Match and If-Unmodified-Since exist
- *
- * If neither of these exist, the request is not conditional, and
- * we serve it normally
+ /*
+ * check If-Match and If-Unmodified-Since exist
+ *
+ * If neither of these exist, the request is not conditional, and we
+ * serve it normally
*/
if (!c->im && BAD_DATE == c->ius) {
break;
}
- /* check If-Match
- *
- * we check if the Etag on the cached file is in the list of Etags
- * in the If-Match field. The comparison must be a strong comparison,
- * so the Etag cannot be marked as weak. If the comparision fails
- * we return 412 Precondition Failed.
- *
- * if If-Match is specified AND
- * If-Match is not a "*" AND
- * Etag is missing or weak or not in the list THEN
- * return 412 Precondition Failed
+ /*
+ * check If-Match
+ *
+ * we check if the Etag on the cached file is in the list of Etags in
+ * the If-Match field. The comparison must be a strong comparison, so
+ * the Etag cannot be marked as weak. If the comparision fails we
+ * return 412 Precondition Failed.
+ *
+ * if If-Match is specified AND If-Match is not a "*" AND Etag is
+ * missing or weak or not in the list THEN return 412 Precondition
+ * Failed
*/
if (c->im) {
if (strcmp(c->im, "*") &&
- (!etag || (strlen(etag) > 1 && 'W' == etag[0] && '/' == etag[1]) || !ap_proxy_liststr(c->im, etag, NULL))) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-Match specified, and it didn't - return 412");
+ (!etag || (strlen(etag) > 1 && 'W' == etag[0] && '/' == etag[1]) || !ap_proxy_liststr(c->im, etag, NULL))) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-Match specified, and it didn't - return 412");
}
else {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-Match specified, and it matched");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-Match specified, and it matched");
break;
}
}
- /* check If-Unmodified-Since
- *
- * if If-Unmodified-Since is specified AND
- * Last-Modified is specified somewhere AND
- * If-Unmodified-Since is in the past compared to Last-Modified THEN
- * return 412 Precondition Failed
+ /*
+ * check If-Unmodified-Since
+ *
+ * if If-Unmodified-Since is specified AND Last-Modified is specified
+ * somewhere AND If-Unmodified-Since is in the past compared to
+ * Last-Modified THEN return 412 Precondition Failed
*/
if (BAD_DATE != c->ius && BAD_DATE != c->lmod) {
if (c->ius < c->lmod) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-Unmodified-Since specified, but it wasn't - return 412");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-Unmodified-Since specified, but it wasn't - return 412");
}
else {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-Unmodified-Since specified, and it was unmodified");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-Unmodified-Since specified, and it was unmodified");
break;
}
}
@@ -788,13 +810,13 @@ int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp)
/* if cache file is being updated */
if (c->origfp) {
ap_proxy_write_headers(c, c->resp_line, c->hdrs);
- ap_proxy_send_fb(c->origfp, r, c, c->len, 1, IOBUFSIZE);
+ ap_proxy_send_fb(c->origfp, r, c, c->len, 1, 0, IOBUFSIZE);
ap_proxy_cache_tidy(c);
}
else
ap_pclosef(r->pool, ap_bfileno(cachefp, B_WR));
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Use your cached copy, conditional precondition failed.");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Use your cached copy, conditional precondition failed.");
return HTTP_PRECONDITION_FAILED;
}
@@ -802,53 +824,54 @@ int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp)
/* check for If-None-Match, If-Modified-Since */
while (1) {
- /* check for existance of If-None-Match and If-Modified-Since
- *
- * if neither of these headers have been set, then the request
- * is not conditional, and we just send the cached response and
- * be done with it.
+ /*
+ * check for existance of If-None-Match and If-Modified-Since
+ *
+ * if neither of these headers have been set, then the request is not
+ * conditional, and we just send the cached response and be done with
+ * it.
*/
if (!c->inm && BAD_DATE == c->ims) {
break;
}
- /* check If-None-Match
- *
- * we check if the Etag on the cached file is in the list of Etags
- * in the If-None-Match field. The comparison must be a strong comparison,
- * so the Etag cannot be marked as weak. If the comparision fails
- * we return 412 Precondition Failed.
- *
- * if If-None-Match is specified:
- * if If-None-Match is a "*" THEN 304
- * else if Etag is specified AND we get a match THEN 304
- * else if Weak Etag is specified AND we get a match THEN 304
- * else sent the original object
+ /*
+ * check If-None-Match
+ *
+ * we check if the Etag on the cached file is in the list of Etags in
+ * the If-None-Match field. The comparison must be a strong
+ * comparison, so the Etag cannot be marked as weak. If the
+ * comparision fails we return 412 Precondition Failed.
+ *
+ * if If-None-Match is specified: if If-None-Match is a "*" THEN 304
+ * else if Etag is specified AND we get a match THEN 304 else if Weak
+ * Etag is specified AND we get a match THEN 304 else sent the
+ * original object
*/
if (c->inm) {
if (!strcmp(c->inm, "*")) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-None-Match: * specified, return 304");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-None-Match: * specified, return 304");
}
else if (etag && ap_proxy_liststr(c->inm, etag, NULL)) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-None-Match: specified and we got a strong match - return 304");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-None-Match: specified and we got a strong match - return 304");
}
else if (wetag && ap_proxy_liststr(c->inm, wetag, NULL)) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-None-Match specified, and we got a weak match - return 304");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-None-Match specified, and we got a weak match - return 304");
}
else
break;
}
- /* check If-Modified-Since
- *
- * if If-Modified-Since is specified AND
- * Last-Modified is specified somewhere:
- * if last modification date is earlier than If-Modified-Since THEN 304
- * else send the original object
+ /*
+ * check If-Modified-Since
+ *
+ * if If-Modified-Since is specified AND Last-Modified is specified
+ * somewhere: if last modification date is earlier than
+ * If-Modified-Since THEN 304 else send the original object
*/
if (BAD_DATE != c->ims && BAD_DATE != c->lmod) {
if (c->ims >= c->lmod) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "If-Modified-Since specified and not modified, try return 304");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "If-Modified-Since specified and not modified, try return 304");
}
else
break;
@@ -858,47 +881,43 @@ int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp)
/* are we updating the cache file? */
if (c->origfp) {
ap_proxy_write_headers(c, c->resp_line, c->hdrs);
- ap_proxy_send_fb(c->origfp, r, c, c->len, 1, IOBUFSIZE);
+ ap_proxy_send_fb(c->origfp, r, c, c->len, 1, 0, IOBUFSIZE);
ap_proxy_cache_tidy(c);
}
else
ap_pclosef(r->pool, ap_bfileno(cachefp, B_WR));
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Use local copy, cached file hasn't changed");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Use local copy, cached file hasn't changed");
return HTTP_NOT_MODIFIED;
}
/* No conditional - just send it cousin! */
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Local copy modified, send it");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Local copy modified, send it");
r->status_line = strchr(c->resp_line, ' ') + 1;
r->status = c->status;
/* Prepare and send headers to client */
- ap_overlap_tables(r->headers_out, c->hdrs, AP_OVERLAP_TABLES_SET);
+ ap_proxy_table_replace(r->headers_out, c->hdrs);
/* make sure our X-Cache header does not stomp on a previous header */
ap_table_mergen(r->headers_out, "X-Cache", c->xcache);
/* content type is already set in the headers */
r->content_type = ap_table_get(r->headers_out, "Content-Type");
- /* cookies are special: they must not be merged (stupid browsers) */
- ap_proxy_table_unmerge(r->pool, r->headers_out, "Set-Cookie");
- ap_proxy_table_unmerge(r->pool, r->headers_out, "Set-Cookie2");
-
ap_send_http_header(r);
/* are we rewriting the cache file? */
if (c->origfp) {
ap_proxy_write_headers(c, c->resp_line, c->hdrs);
- ap_proxy_send_fb(c->origfp, r, c, c->len, r->header_only, IOBUFSIZE);
+ ap_proxy_send_fb(c->origfp, r, c, c->len, r->header_only, 0, IOBUFSIZE);
ap_proxy_cache_tidy(c);
return OK;
}
/* no, we not */
if (!r->header_only) {
- ap_proxy_send_fb(cachefp, r, NULL, c->len, 0, IOBUFSIZE);
+ ap_proxy_send_fb(cachefp, r, NULL, c->len, 0, 0, IOBUFSIZE);
}
else {
ap_pclosef(r->pool, ap_bfileno(cachefp, B_WR));
@@ -922,17 +941,17 @@ int ap_proxy_cache_conditional(request_rec *r, cache_req *c, BUFF *cachefp)
* if last modified after if-modified-since then add
* last modified date to request
*/
-int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
- cache_req **cr)
+int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf * conf,
+ cache_req **cr)
{
- const char *datestr, *pragma_req = NULL, *pragma_cresp = NULL, *cc_req = NULL, *cc_cresp = NULL, *vary = NULL;
+ const char *datestr, *pragma_req = NULL, *pragma_cresp = NULL, *cc_req = NULL,
+ *cc_cresp = NULL;
cache_req *c;
- time_t now;
BUFF *cachefp;
int i;
void *sconf = r->server->module_config;
proxy_server_conf *pconf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
const char *agestr = NULL;
char *val;
time_t age_c = 0;
@@ -948,7 +967,7 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
c->origfp = NULL;
c->version = 0;
c->len = -1;
- c->req_hdrs = NULL;
+ c->req_hdrs = NULL;
c->hdrs = NULL;
c->xcache = NULL;
@@ -957,10 +976,10 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
datestr = ap_table_get(r->headers_in, "If-Modified-Since");
if (datestr != NULL) {
/* this may modify the value in the original table */
- datestr = ap_proxy_date_canon(r->pool, datestr);
- c->ims = ap_parseHTTPdate(datestr);
- if (c->ims == BAD_DATE) /* bad or out of range date; remove it */
- ap_table_unset(r->headers_in, "If-Modified-Since");
+ datestr = ap_proxy_date_canon(r->pool, datestr);
+ c->ims = ap_parseHTTPdate(datestr);
+ if (c->ims == BAD_DATE) /* bad or out of range date; remove it */
+ ap_table_unset(r->headers_in, "If-Modified-Since");
}
/* get the If-Unmodified-Since date of the request, if it exists */
@@ -968,15 +987,15 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
datestr = ap_table_get(r->headers_in, "If-Unmodified-Since");
if (datestr != NULL) {
/* this may modify the value in the original table */
- datestr = ap_proxy_date_canon(r->pool, datestr);
- c->ius = ap_parseHTTPdate(datestr);
- if (c->ius == BAD_DATE) /* bad or out of range date; remove it */
- ap_table_unset(r->headers_in, "If-Unmodified-Since");
+ datestr = ap_proxy_date_canon(r->pool, datestr);
+ c->ius = ap_parseHTTPdate(datestr);
+ if (c->ius == BAD_DATE) /* bad or out of range date; remove it */
+ ap_table_unset(r->headers_in, "If-Unmodified-Since");
}
-
+
/* get the If-Match of the request, if it exists */
c->im = ap_table_get(r->headers_in, "If-Match");
-
+
/* get the If-None-Match of the request, if it exists */
c->inm = ap_table_get(r->headers_in, "If-None-Match");
@@ -984,13 +1003,13 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
if (conf->root != NULL) {
char hashfile[66];
ap_proxy_hash(url, hashfile, pconf->cache.dirlevels, pconf->cache.dirlength);
- c->filename = ap_pstrcat(r->pool, conf->root, "/", hashfile, NULL);
+ c->filename = ap_pstrcat(r->pool, conf->root, "/", hashfile, NULL);
}
else {
- c->filename = NULL;
- c->fp = NULL;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "No CacheRoot, so no caching. Declining.");
- return DECLINED;
+ c->filename = NULL;
+ c->fp = NULL;
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "No CacheRoot, so no caching. Declining.");
+ return DECLINED;
}
/* find certain cache controlling headers */
@@ -1013,35 +1032,37 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
if (ap_proxy_liststr(cc_req, "no-store", NULL)) {
/* delete the previously cached file */
- if (c->filename)
- unlink(c->filename);
- c->fp = NULL;
- c->filename = NULL;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "no-store forbids caching. Declining.");
- return DECLINED;
+ if (c->filename)
+ unlink(c->filename);
+ c->fp = NULL;
+ c->filename = NULL;
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "no-store forbids caching. Declining.");
+ return DECLINED;
}
/* if the cache file exists, open it */
cachefp = NULL;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Request for %s, pragma_req=%s, ims=%ld", url,
- pragma_req, c->ims);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Request for %s, pragma_req=%s, ims=%ld", url,
+ (pragma_req == NULL) ? "(unset)" : pragma_req, c->ims);
/* find out about whether the request can access the cache */
if (c->filename != NULL && r->method_number == M_GET &&
- strlen(url) < 1024 ) {
- cachefp = ap_proxy_open_cachefile(r, c->filename);
+ strlen(url) < 1024) {
+ cachefp = ap_proxy_open_cachefile(r, c->filename);
}
- /* if a cache file exists, try reading body and headers from cache file */
+ /*
+ * if a cache file exists, try reading body and headers from cache file
+ */
if (cachefp != NULL) {
i = rdcache(r, cachefp, c);
if (i == -1)
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: error reading cache file %s",
- c->filename);
+ "proxy: error reading cache file %s",
+ c->filename);
else if (i == 0)
- ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, r,
- "proxy: bad (short?) cache file: %s", c->filename);
+ ap_log_rerror(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, r,
+ "proxy: bad (short?) cache file: %s", c->filename);
if (i != 1) {
ap_pclosef(r->pool, ap_bfileno(cachefp, B_WR));
cachefp = NULL;
@@ -1049,7 +1070,6 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
if (c->hdrs) {
cc_cresp = ap_table_get(c->hdrs, "Cache-Control");
pragma_cresp = ap_table_get(c->hdrs, "Pragma");
- vary = ap_table_get(c->hdrs, "Vary");
if ((agestr = ap_table_get(c->hdrs, "Age"))) {
age_c = atoi(agestr);
}
@@ -1065,16 +1085,17 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
*/
/* FIXME: Shouldn't we check the URL somewhere? */
- /* Check Content-Negotiation - Vary
- *
+ /*
+ * Check Content-Negotiation - Vary
+ *
* At this point we need to make sure that the object we found in the cache
* is the same object that would be delivered to the client, when the
* effects of content negotiation are taken into effect.
- *
+ *
* In plain english, we want to make sure that a language-negotiated
* document in one language is not given to a client asking for a
* language negotiated document in a different language by mistake.
- *
+ *
* RFC2616 13.6 and 14.44 describe the Vary mechanism.
*/
if (c->hdrs && c->req_hdrs) {
@@ -1092,8 +1113,10 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
++vary;
}
- /* is this header in the request and the header in the cached
- * request identical? If not, we give up and do a straight get */
+ /*
+ * is this header in the request and the header in the cached
+ * request identical? If not, we give up and do a straight get
+ */
h1 = ap_table_get(r->headers_in, name);
h2 = ap_table_get(c->req_hdrs, name);
if (h1 == h2) {
@@ -1106,42 +1129,43 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
/* headers do not match, so Vary failed */
c->fp = cachefp;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Vary header mismatch - object must be fetched from scratch. Declining.");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Vary header mismatch - object must be fetched from scratch. Declining.");
return DECLINED;
}
}
}
- /* We now want to check if our cached data is still fresh. This depends
+ /*
+ * We now want to check if our cached data is still fresh. This depends
* on a few things, in this order:
- *
- * - RFC2616 14.9.4 End to end reload, Cache-Control: no-cache
- * no-cache in either the request or the cached response means that
- * we must revalidate the request unconditionally, overriding any
- * expiration mechanism. It's equivalent to max-age=0,must-revalidate.
- *
- * - RFC2616 14.32 Pragma: no-cache
- * This is treated the same as Cache-Control: no-cache.
- *
- * - RFC2616 14.9.3 Cache-Control: max-stale, must-revalidate, proxy-revalidate
- * if the max-stale request header exists, modify the stale calculations
- * below so that an object can be at most <max-stale> seconds stale before
- * we request a revalidation, _UNLESS_ a must-revalidate or
- * proxy-revalidate cached response header exists to stop us doing this.
- *
- * - RFC2616 14.9.3 Cache-Control: s-maxage
- * the origin server specifies the maximum age an object can be before
- * it is considered stale. This directive has the effect of proxy|must
- * revalidate, which in turn means simple ignore any max-stale setting.
- *
- * - RFC2616 14.9.4 Cache-Control: max-age
- * this header can appear in both requests and responses. If both are
- * specified, the smaller of the two takes priority.
- *
- * - RFC2616 14.21 Expires:
- * if this request header exists in the cached entity, and it's value is
- * in the past, it has expired.
+ *
+ * - RFC2616 14.9.4 End to end reload, Cache-Control: no-cache no-cache in
+ * either the request or the cached response means that we must
+ * revalidate the request unconditionally, overriding any expiration
+ * mechanism. It's equivalent to max-age=0,must-revalidate.
+ *
+ * - RFC2616 14.32 Pragma: no-cache This is treated the same as
+ * Cache-Control: no-cache.
+ *
+ * - RFC2616 14.9.3 Cache-Control: max-stale, must-revalidate,
+ * proxy-revalidate if the max-stale request header exists, modify the
+ * stale calculations below so that an object can be at most <max-stale>
+ * seconds stale before we request a revalidation, _UNLESS_ a
+ * must-revalidate or proxy-revalidate cached response header exists to
+ * stop us doing this.
+ *
+ * - RFC2616 14.9.3 Cache-Control: s-maxage the origin server specifies the
+ * maximum age an object can be before it is considered stale. This
+ * directive has the effect of proxy|must revalidate, which in turn means
+ * simple ignore any max-stale setting.
+ *
+ * - RFC2616 14.9.4 Cache-Control: max-age this header can appear in both
+ * requests and responses. If both are specified, the smaller of the two
+ * takes priority.
+ *
+ * - RFC2616 14.21 Expires: if this request header exists in the cached
+ * entity, and it's value is in the past, it has expired.
*
*/
@@ -1156,17 +1180,19 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
/* extract max-age from request */
if (cc_req && ap_proxy_liststr(cc_req, "max-age", &val))
- maxage_req = atoi(val);
+ maxage_req = atoi(val);
else
maxage_req = -1;
/* extract max-age from response */
if (cc_cresp && ap_proxy_liststr(cc_cresp, "max-age", &val))
- maxage_cresp = atoi(val);
+ maxage_cresp = atoi(val);
else
maxage_cresp = -1;
- /* if both maxage request and response, the smaller one takes priority */
+ /*
+ * if both maxage request and response, the smaller one takes priority
+ */
if (-1 == maxage_req)
maxage = maxage_cresp;
else if (-1 == maxage_cresp)
@@ -1176,48 +1202,46 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
/* extract max-stale */
if (cc_req && ap_proxy_liststr(cc_req, "max-stale", &val))
- maxstale = atoi(val);
+ maxstale = atoi(val);
else
maxstale = 0;
/* extract min-fresh */
if (cc_req && ap_proxy_liststr(cc_req, "min-fresh", &val))
- minfresh = atoi(val);
+ minfresh = atoi(val);
else
minfresh = 0;
/* override maxstale if must-revalidate or proxy-revalidate */
- if (maxstale && ( (cc_cresp && ap_proxy_liststr(cc_cresp, "must-revalidate", NULL)) || (cc_cresp && ap_proxy_liststr(cc_cresp, "proxy-revalidate", NULL)) ))
+ if (maxstale && ((cc_cresp && ap_proxy_liststr(cc_cresp, "must-revalidate", NULL)) || (cc_cresp && ap_proxy_liststr(cc_cresp, "proxy-revalidate", NULL))))
maxstale = 0;
- now = time(NULL);
if (cachefp != NULL &&
- /* handle no-cache */
- !( (cc_req && ap_proxy_liststr(cc_req, "no-cache", NULL)) ||
+ /* handle no-cache */
+ !((cc_req && ap_proxy_liststr(cc_req, "no-cache", NULL)) ||
(pragma_req && ap_proxy_liststr(pragma_req, "no-cache", NULL)) ||
(cc_cresp && ap_proxy_liststr(cc_cresp, "no-cache", NULL)) ||
- (pragma_cresp && ap_proxy_liststr(pragma_cresp, "no-cache", NULL)) ) &&
-
- /* handle expiration */
- ( (-1 < smaxage && age < (smaxage - minfresh)) ||
- (-1 < maxage && age < (maxage + maxstale - minfresh)) ||
- (c->expire != BAD_DATE && age < (c->expire - c->date + maxstale - minfresh)) )
+ (pragma_cresp && ap_proxy_liststr(pragma_cresp, "no-cache", NULL))) &&
+ /* handle expiration */
+ ((-1 < smaxage && age < (smaxage - minfresh)) ||
+ (-1 < maxage && age < (maxage + maxstale - minfresh)) ||
+ (c->expire != BAD_DATE && age < (c->expire - c->date + maxstale - minfresh)))
) {
/* it's fresh darlings... */
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Unexpired data available");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Unexpired data available");
/* set age header on response */
ap_table_set(c->hdrs, "Age",
- ap_psprintf(r->pool, "%lu", (unsigned long)age));
+ ap_psprintf(r->pool, "%lu", (unsigned long)age));
/* add warning if maxstale overrode freshness calculation */
- if (!( (-1 < smaxage && age < smaxage) ||
- (-1 < maxage && age < maxage) ||
- (c->expire != BAD_DATE && (c->expire - c->date) > age) )) {
+ if (!((-1 < smaxage && age < smaxage) ||
+ (-1 < maxage && age < maxage) ||
+ (c->expire != BAD_DATE && (c->expire - c->date) > age))) {
/* make sure we don't stomp on a previous warning */
ap_table_merge(c->hdrs, "Warning", "110 Response is stale");
}
@@ -1229,11 +1253,12 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
}
- /* at this point we have determined our cached data needs revalidation
+ /*
+ * at this point we have determined our cached data needs revalidation
* but first - we check 1 thing:
- *
- * RFC2616 14.9.4 - if "only-if-cached" specified, send a
- * 504 Gateway Timeout - we're not allowed to revalidate the object
+ *
+ * RFC2616 14.9.4 - if "only-if-cached" specified, send a 504 Gateway
+ * Timeout - we're not allowed to revalidate the object
*/
if (ap_proxy_liststr(cc_req, "only-if-cached", NULL)) {
if (cachefp)
@@ -1242,12 +1267,13 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
}
- /* If we already have cached data and a last-modified date, and it is
- * not a head request, then add an If-Modified-Since.
- *
- * If we also have an Etag, then the object must have come from
- * an HTTP/1.1 server. Add an If-None-Match as well.
- *
+ /*
+ * If we already have cached data and a last-modified date, and it is not
+ * a head request, then add an If-Modified-Since.
+ *
+ * If we also have an Etag, then the object must have come from an HTTP/1.1
+ * server. Add an If-None-Match as well.
+ *
* See RFC2616 13.3.4
*/
@@ -1257,13 +1283,15 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
/* If-Modified-Since */
if (c->lmod != BAD_DATE) {
- /* use the later of the one from the request and the last-modified date
- * from the cache */
+ /*
+ * use the later of the one from the request and the
+ * last-modified date from the cache
+ */
if (c->ims == BAD_DATE || c->ims < c->lmod) {
const char *q;
if ((q = ap_table_get(c->hdrs, "Last-Modified")) != NULL)
- ap_table_set(r->headers_in, "If-Modified-Since", (char *) q);
+ ap_table_set(r->headers_in, "If-Modified-Since", (char *)q);
}
}
@@ -1277,7 +1305,7 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
c->fp = cachefp;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Local copy not present or expired. Declining.");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Local copy not present or expired. Declining.");
return DECLINED;
}
@@ -1295,19 +1323,19 @@ int ap_proxy_cache_check(request_rec *r, char *url, struct cache_conf *conf,
* otherwise, delete the old cached file and open a new temporary file
*/
int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
- const int is_HTTP1, int nocache)
+ const int is_HTTP1, int nocache)
{
#if defined(ULTRIX_BRAIN_DEATH) || defined(SINIX_D_RESOLVER_BUG)
- extern char *mktemp(char *template);
-#endif
+ extern char *mktemp(char *template);
+#endif
request_rec *r = c->req;
char *p;
const char *expire, *lmods, *dates, *clen;
time_t expc, date, lmod, now;
- char buff[17*7+1];
+ char buff[17 * 7 + 1];
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
const char *cc_resp;
table *req_hdrs;
@@ -1316,9 +1344,11 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
c->tempfile = NULL;
/* we've received the response from the origin server */
-
- /* read expiry date; if a bad date, then leave it so the client can
- * read it */
+
+ /*
+ * read expiry date; if a bad date, then leave it so the client can read
+ * it
+ */
expire = ap_table_get(resp_hdrs, "Expires");
if (expire != NULL)
expc = ap_parseHTTPdate(expire);
@@ -1340,55 +1370,66 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
/*
* what responses should we not cache?
- *
- * At this point we decide based on the response headers whether it
- * is appropriate _NOT_ to cache the data from the server. There are
- * a whole lot of conditions that prevent us from caching this data.
- * They are tested here one by one to be clear and unambiguous. */
-
- /* RFC2616 13.4 we are allowed to cache 200, 203, 206, 300, 301 or 410
- * We don't cache 206, because we don't (yet) cache partial responses.
- * We include 304 Not Modified here too as this is the origin server
- * telling us to serve the cached copy. */
+ *
+ * At this point we decide based on the response headers whether it is
+ * appropriate _NOT_ to cache the data from the server. There are a whole
+ * lot of conditions that prevent us from caching this data. They are
+ * tested here one by one to be clear and unambiguous.
+ */
+
+ /*
+ * RFC2616 13.4 we are allowed to cache 200, 203, 206, 300, 301 or 410 We
+ * don't cache 206, because we don't (yet) cache partial responses. We
+ * include 304 Not Modified here too as this is the origin server telling
+ * us to serve the cached copy.
+ */
if ((r->status != HTTP_OK && r->status != HTTP_NON_AUTHORITATIVE && r->status != HTTP_MULTIPLE_CHOICES && r->status != HTTP_MOVED_PERMANENTLY && r->status != HTTP_NOT_MODIFIED) ||
/* if a broken Expires header is present, don't cache it */
(expire != NULL && expc == BAD_DATE) ||
- /* if the server said 304 Not Modified but we have no cache file - pass
- * this untouched to the user agent, it's not for us. */
+ /*
+ * if the server said 304 Not Modified but we have no cache file - pass
+ * this untouched to the user agent, it's not for us.
+ */
(r->status == HTTP_NOT_MODIFIED && (c == NULL || c->fp == NULL)) ||
- /* 200 OK response from HTTP/1.0 and up without a Last-Modified header */
+ /*
+ * 200 OK response from HTTP/1.0 and up without a Last-Modified header
+ */
(r->status == HTTP_OK && lmods == NULL && is_HTTP1) ||
/* HEAD requests */
r->header_only ||
- /* RFC2616 14.9.2 Cache-Control: no-store response indicating do not
- * cache, or stop now if you are trying to cache it */
+ /*
+ * RFC2616 14.9.2 Cache-Control: no-store response indicating do not
+ * cache, or stop now if you are trying to cache it
+ */
ap_proxy_liststr(cc_resp, "no-store", NULL) ||
- /* RFC2616 14.9.1 Cache-Control: private
- * this object is marked for this user's eyes only. Behave as a tunnel. */
+ /*
+ * RFC2616 14.9.1 Cache-Control: private this object is marked for this
+ * user's eyes only. Behave as a tunnel.
+ */
ap_proxy_liststr(cc_resp, "private", NULL) ||
- /* RFC2616 14.8 Authorisation:
- * if authorisation is included in the request, we don't cache, but we
- * can cache if the following exceptions are true:
- * 1) If Cache-Control: s-maxage is included
- * 2) If Cache-Control: must-revalidate is included
- * 3) If Cache-Control: public is included
+ /*
+ * RFC2616 14.8 Authorisation: if authorisation is included in the
+ * request, we don't cache, but we can cache if the following exceptions
+ * are true: 1) If Cache-Control: s-maxage is included 2) If
+ * Cache-Control: must-revalidate is included 3) If Cache-Control: public
+ * is included
*/
(ap_table_get(r->headers_in, "Authorization") != NULL
- && !(ap_proxy_liststr(cc_resp, "s-maxage", NULL) || ap_proxy_liststr(cc_resp, "must-revalidate", NULL) || ap_proxy_liststr(cc_resp, "public", NULL))
- ) ||
+ && !(ap_proxy_liststr(cc_resp, "s-maxage", NULL) || ap_proxy_liststr(cc_resp, "must-revalidate", NULL) || ap_proxy_liststr(cc_resp, "public", NULL))
+ ) ||
/* or we've been asked not to cache it above */
nocache) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Response is not cacheable, unlinking %s", c->filename);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Response is not cacheable, unlinking %s", c->filename);
/* close the file */
if (c->fp != NULL) {
@@ -1403,15 +1444,15 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
}
- /* It's safe to cache the response.
- *
- * We now want to update the cache file header information with
- * the new date, last modified, expire and content length and write
- * it away to our cache file. First, we determine these values from
- * the response, using heuristics if appropriate.
- *
- * In addition, we make HTTP/1.1 age calculations and write them away
- * too.
+ /*
+ * It's safe to cache the response.
+ *
+ * We now want to update the cache file header information with the new
+ * date, last modified, expire and content length and write it away to
+ * our cache file. First, we determine these values from the response,
+ * using heuristics if appropriate.
+ *
+ * In addition, we make HTTP/1.1 age calculations and write them away too.
*/
/* Read the date. Generate one if one is not supplied */
@@ -1430,7 +1471,7 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
date = now;
dates = ap_gm_timestr_822(r->pool, now);
ap_table_set(resp_hdrs, "Date", dates);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Added date header");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Added date header");
}
/* set response_time for HTTP/1.1 age calculations */
@@ -1442,16 +1483,17 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
{
lmod = date;
lmods = dates;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Last modified is in the future, replacing with now");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Last modified is in the future, replacing with now");
}
/* if the response did not contain the header, then use the cached version */
if (lmod == BAD_DATE && c->fp != NULL) {
lmod = c->lmod;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Reusing cached last modified");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Reusing cached last modified");
}
/* we now need to calculate the expire data for the object. */
- if (expire == NULL && c->fp != NULL) { /* no expiry data sent in response */
+ if (expire == NULL && c->fp != NULL) { /* no expiry data sent in
+ * response */
expire = ap_table_get(c->hdrs, "Expires");
if (expire != NULL)
expc = ap_parseHTTPdate(expire);
@@ -1463,18 +1505,18 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
* else
* expire date = now + defaultexpire
*/
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Expiry date is %ld", (long)expc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Expiry date is %ld", (long)expc);
if (expc == BAD_DATE) {
if (lmod != BAD_DATE) {
- double x = (double) (date - lmod) * conf->cache.lmfactor;
+ double x = (double)(date - lmod) * conf->cache.lmfactor;
double maxex = conf->cache.maxexpire;
if (x > maxex)
x = maxex;
- expc = now + (int) x;
+ expc = now + (int)x;
}
else
expc = now + conf->cache.defaultexpire;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Expiry date calculated %ld", (long)expc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Expiry date calculated %ld", (long)expc);
}
/* get the content-length header */
@@ -1486,21 +1528,21 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
/* we have all the header information we need - write it to the cache file */
c->version++;
- ap_proxy_sec2hex(date, buff + 17*(0));
- buff[17*(1)-1] = ' ';
- ap_proxy_sec2hex(lmod, buff + 17*(1));
- buff[17*(2)-1] = ' ';
- ap_proxy_sec2hex(expc, buff + 17*(2));
- buff[17*(3)-1] = ' ';
- ap_proxy_sec2hex(c->version, buff + 17*(3));
- buff[17*(4)-1] = ' ';
- ap_proxy_sec2hex(c->req_time, buff + 17*(4));
- buff[17*(5)-1] = ' ';
- ap_proxy_sec2hex(c->resp_time, buff + 17*(5));
- buff[17*(6)-1] = ' ';
- ap_proxy_sec2hex(c->len, buff + 17*(6));
- buff[17*(7)-1] = '\n';
- buff[17*(7)] = '\0';
+ ap_proxy_sec2hex(date, buff + 17 * (0));
+ buff[17 * (1) - 1] = ' ';
+ ap_proxy_sec2hex(lmod, buff + 17 * (1));
+ buff[17 * (2) - 1] = ' ';
+ ap_proxy_sec2hex(expc, buff + 17 * (2));
+ buff[17 * (3) - 1] = ' ';
+ ap_proxy_sec2hex(c->version, buff + 17 * (3));
+ buff[17 * (4) - 1] = ' ';
+ ap_proxy_sec2hex(c->req_time, buff + 17 * (4));
+ buff[17 * (5) - 1] = ' ';
+ ap_proxy_sec2hex(c->resp_time, buff + 17 * (5));
+ buff[17 * (6) - 1] = ' ';
+ ap_proxy_sec2hex(c->len, buff + 17 * (6));
+ buff[17 * (7) - 1] = '\n';
+ buff[17 * (7)] = '\0';
/* Was the server response a 304 Not Modified?
*
@@ -1510,7 +1552,7 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
*/
/* if response from server 304 not modified */
- if (r->status == HTTP_NOT_MODIFIED) {
+ if (r->status == HTTP_NOT_MODIFIED) {
/* Have the headers changed?
*
@@ -1518,107 +1560,107 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
*/
if (c->hdrs) {
- if (!ap_proxy_table_replace(c->hdrs, resp_hdrs)) {
- c->xcache = ap_pstrcat(r->pool, "HIT from ", ap_get_server_name(r), " (with revalidation)", NULL);
- return ap_proxy_cache_conditional(r, c, c->fp);
+ if (!ap_proxy_table_replace(c->hdrs, resp_hdrs)) {
+ c->xcache = ap_pstrcat(r->pool, "HIT from ", ap_get_server_name(r), " (with revalidation)", NULL);
+ return ap_proxy_cache_conditional(r, c, c->fp);
}
}
else
- c->hdrs = resp_hdrs;
+ c->hdrs = resp_hdrs;
/* if we get here - the headers have changed. Go through the motions
* of creating a new temporary cache file below, we'll then serve
* the request like we would have in ap_proxy_cache_conditional()
* above, and at the same time we will also rewrite the contents
* to the new temporary file.
*/
- }
+ }
-/*
+/*
* Ok - lets prepare and open the cached file
- *
+ *
* If a cached file (in c->fp) is already open, then we want to
* update that cached file. Copy the c->fp to c->origfp and open
* up a new one.
- *
+ *
* If the cached file (in c->fp) is NULL, we must open a new cached
* file from scratch.
*
* The new cache file will be moved to it's final location in the
* directory tree later, overwriting the old cache file should it exist.
- */
+ */
/* if a cache file was already open */
if (c->fp != NULL) {
- c->origfp = c->fp;
+ c->origfp = c->fp;
}
while (1) {
/* create temporary filename */
#ifndef TPF
#define TMPFILESTR "/tmpXXXXXX"
- if (conf->cache.root == NULL) {
- c = ap_proxy_cache_error(c);
- break;
- }
- c->tempfile = ap_palloc(r->pool, strlen(conf->cache.root) + sizeof(TMPFILESTR));
- strcpy(c->tempfile, conf->cache.root);
- strcat(c->tempfile, TMPFILESTR);
+ if (conf->cache.root == NULL) {
+ c = ap_proxy_cache_error(c);
+ break;
+ }
+ c->tempfile = ap_palloc(r->pool, strlen(conf->cache.root) + sizeof(TMPFILESTR));
+ strcpy(c->tempfile, conf->cache.root);
+ strcat(c->tempfile, TMPFILESTR);
#undef TMPFILESTR
- p = mktemp(c->tempfile);
+ p = mktemp(c->tempfile);
#else
- if (conf->cache.root == NULL) {
- c = ap_proxy_cache_error(c);
- break;
- }
- c->tempfile = ap_palloc(r->pool, strlen(conf->cache.root) +1+ L_tmpnam);
- strcpy(c->tempfile, conf->cache.root);
- strcat(c->tempfile, "/");
- p = tmpnam(NULL);
- strcat(c->tempfile, p);
+ if (conf->cache.root == NULL) {
+ c = ap_proxy_cache_error(c);
+ break;
+ }
+ c->tempfile = ap_palloc(r->pool, strlen(conf->cache.root) + 1 + L_tmpnam);
+ strcpy(c->tempfile, conf->cache.root);
+ strcat(c->tempfile, "/");
+ p = tmpnam(NULL);
+ strcat(c->tempfile, p);
#endif
- if (p == NULL) {
- c = ap_proxy_cache_error(c);
- break;
- }
+ if (p == NULL) {
+ c = ap_proxy_cache_error(c);
+ break;
+ }
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Create temporary file %s", c->tempfile);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Create temporary file %s", c->tempfile);
/* create the new file */
- c->fp = ap_proxy_create_cachefile(r, c->tempfile);
- if (NULL == c->fp) {
- c = ap_proxy_cache_error(c);
- break;
- }
+ c->fp = ap_proxy_create_cachefile(r, c->tempfile);
+ if (NULL == c->fp) {
+ c = ap_proxy_cache_error(c);
+ break;
+ }
/* write away the cache header and the URL */
- if (ap_bvputs(c->fp, buff, "X-URL: ", c->url, "\n", NULL) == -1) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: error writing cache file(%s)", c->tempfile);
- c = ap_proxy_cache_error(c);
- break;
- }
+ if (ap_bvputs(c->fp, buff, "X-URL: ", c->url, "\n", NULL) == -1) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
+ "proxy: error writing cache file(%s)", c->tempfile);
+ c = ap_proxy_cache_error(c);
+ break;
+ }
/* get original request headers */
- if (c->req_hdrs)
- req_hdrs = ap_copy_table(r->pool, c->req_hdrs);
- else
- req_hdrs = ap_copy_table(r->pool, r->headers_in);
+ if (c->req_hdrs)
+ req_hdrs = ap_copy_table(r->pool, c->req_hdrs);
+ else
+ req_hdrs = ap_copy_table(r->pool, r->headers_in);
/* remove hop-by-hop headers */
- ap_proxy_clear_connection(r->pool, req_hdrs);
+ ap_proxy_clear_connection(r->pool, req_hdrs);
/* save original request headers */
- if (c->req_hdrs)
+ if (c->req_hdrs)
ap_table_do(ap_proxy_send_hdr_line, c, c->req_hdrs, NULL);
- else
+ else
ap_table_do(ap_proxy_send_hdr_line, c, r->headers_in, NULL);
- if (ap_bputs(CRLF, c->fp) == -1) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error writing request headers terminating CRLF to %s", c->tempfile);
- c = ap_proxy_cache_error(c);
- break;
- }
- break;
+ if (ap_bputs(CRLF, c->fp) == -1) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
+ "proxy: error writing request headers terminating CRLF to %s", c->tempfile);
+ c = ap_proxy_cache_error(c);
+ break;
+ }
+ break;
}
/* Was the server response a 304 Not Modified?
@@ -1632,8 +1674,8 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
if (r->status == HTTP_NOT_MODIFIED) {
/* fulfil the request */
- c->xcache = ap_pstrcat(r->pool, "HIT from ", ap_get_server_name(r), " (with revalidation)", NULL);
- return ap_proxy_cache_conditional(r, c, c->fp);
+ c->xcache = ap_pstrcat(r->pool, "HIT from ", ap_get_server_name(r), " (with revalidation)", NULL);
+ return ap_proxy_cache_conditional(r, c, c->fp);
}
return DECLINED;
@@ -1677,10 +1719,10 @@ void ap_proxy_cache_tidy(cache_req *c)
c->len = bc;
ap_bflush(c->fp);
ap_proxy_sec2hex(c->len, buff);
- curpos = lseek(ap_bfileno(c->fp, B_WR), 17*6, SEEK_SET);
+ curpos = lseek(ap_bfileno(c->fp, B_WR), 17 * 6, SEEK_SET);
if (curpos == -1)
ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "proxy: error seeking on cache file %s", c->tempfile);
+ "proxy: error seeking on cache file %s", c->tempfile);
else if (write(ap_bfileno(c->fp, B_WR), buff, sizeof(buff) - 1) == -1)
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error updating cache file %s", c->tempfile);
@@ -1695,7 +1737,7 @@ void ap_proxy_cache_tidy(cache_req *c)
return;
}
- if (ap_pclosef(c->req->pool, ap_bfileno(c->fp, B_WR)) == -1) {
+ if (ap_pclosef(c->req->pool, ap_bfileno(c->fp, B_WR))== -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error closing cache file %s", c->tempfile);
unlink(c->tempfile);
@@ -1705,12 +1747,13 @@ void ap_proxy_cache_tidy(cache_req *c)
if (unlink(c->filename) == -1 && errno != ENOENT) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error deleting old cache file %s",
- c->tempfile);
+ c->filename);
+ (void)unlink(c->tempfile);
}
else {
char *p;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(s->module_config, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(s->module_config, &proxy_module);
for (p = c->filename + strlen(conf->cache.root) + 1;;) {
p = strchr(p, '/');
@@ -1720,10 +1763,10 @@ void ap_proxy_cache_tidy(cache_req *c)
#if defined(WIN32) || defined(NETWARE)
if (mkdir(c->filename) < 0 && errno != EEXIST)
#elif defined(__TANDEM)
- if (mkdir(c->filename, S_IRWXU | S_IRWXG | S_IRWXO) < 0 && errno != EEXIST)
+ if (mkdir(c->filename, S_IRWXU | S_IRWXG | S_IRWXO) < 0 && errno != EEXIST)
#else
if (mkdir(c->filename, S_IREAD | S_IWRITE | S_IEXEC) < 0 && errno != EEXIST)
-#endif /* WIN32 */
+#endif /* WIN32 */
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error creating cache directory %s",
c->filename);
@@ -1732,22 +1775,21 @@ void ap_proxy_cache_tidy(cache_req *c)
}
#if defined(OS2) || defined(WIN32) || defined(NETWARE) || defined(MPE)
/* Under OS/2 use rename. */
- if (rename(c->tempfile, c->filename) == -1)
+ if (rename(c->tempfile, c->filename) == -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error renaming cache file %s to %s",
c->tempfile, c->filename);
- }
+ (void)unlink(c->tempfile);
+ }
#else
if (link(c->tempfile, c->filename) == -1)
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"proxy: error linking cache file %s to %s",
c->tempfile, c->filename);
- }
-
- if (unlink(c->tempfile) == -1)
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "proxy: error deleting temp file %s", c->tempfile);
+ if (unlink(c->tempfile) == -1)
+ ap_log_error(APLOG_MARK, APLOG_ERR, s,
+ "proxy: error deleting temp file %s", c->tempfile);
#endif
-
+ }
}
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_connect.c b/usr.sbin/httpd/src/modules/proxy/proxy_connect.c
index 4870e009088..9b955d51776 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_connect.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_connect.c
@@ -66,7 +66,7 @@
#include <bstring.h> /* for IRIX, FD_SET calls bzero() */
#endif
-/*
+/*
* This handles Netscape CONNECT method secure proxy requests.
* A connection is opened to the specified host and data is
* passed through between the WWW site and the browser.
@@ -75,8 +75,8 @@
* "Tunneling SSL Through a WWW Proxy" currently at
* http://www.mcom.com/newsref/std/tunneling_ssl.html.
*
- * If proxyhost and proxyport are set, we send a CONNECT to
- * the specified proxy..
+ * If proxyhost and proxyport are set, we send a CONNECT to
+ * the specified proxy..
*
* FIXME: this is bad, because it does its own socket I/O
* instead of using the I/O in buff.c. However,
@@ -96,14 +96,13 @@
* FIXME: no check for r->assbackwards, whatever that is.
*/
-static int
-allowed_port(proxy_server_conf *conf, int port)
+static int allowed_port(proxy_server_conf *conf, int port)
{
int i;
- int *list = (int *) conf->allowed_connect_ports->elts;
+ int *list = (int *)conf->allowed_connect_ports->elts;
- for(i = 0; i < conf->allowed_connect_ports->nelts; i++) {
- if(port == list[i])
+ for (i = 0; i < conf->allowed_connect_ports->nelts; i++) {
+ if (port == list[i])
return 1;
}
return 0;
@@ -111,7 +110,7 @@ allowed_port(proxy_server_conf *conf, int port)
int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
- const char *proxyhost, int proxyport)
+ const char *proxyhost, int proxyport)
{
struct sockaddr_in server;
struct in_addr destaddr;
@@ -125,8 +124,8 @@ int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
- struct noproxy_entry *npent = (struct noproxy_entry *)conf->noproxies->elts;
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
+ struct noproxy_entry *npent = (struct noproxy_entry *) conf->noproxies->elts;
memset(&server, '\0', sizeof(server));
server.sin_family = AF_INET;
@@ -156,22 +155,23 @@ int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
if (conf->allowed_connect_ports->nelts == 0) {
/* Default setting if not overridden by AllowCONNECT */
switch (port) {
- case DEFAULT_HTTPS_PORT:
- case DEFAULT_SNEWS_PORT:
- break;
- default:
- return HTTP_FORBIDDEN;
+ case DEFAULT_HTTPS_PORT:
+ case DEFAULT_SNEWS_PORT:
+ break;
+ default:
+ return HTTP_FORBIDDEN;
}
- } else if(!allowed_port(conf, port))
+ }
+ else if (!allowed_port(conf, port))
return HTTP_FORBIDDEN;
if (proxyhost) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "CONNECT to remote proxy %s on port %d", proxyhost, proxyport);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "CONNECT to remote proxy %s on port %d", proxyhost, proxyport);
}
else {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "CONNECT to %s on port %d", host, port);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "CONNECT to %s on port %d", host, port);
}
/* Nasty cast to work around broken terniary expressions on MSVC */
@@ -180,7 +180,7 @@ int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
if (err != NULL)
return ap_proxyerror(r,
- proxyhost ? HTTP_BAD_GATEWAY : HTTP_INTERNAL_SERVER_ERROR, err);
+ proxyhost ? HTTP_BAD_GATEWAY : HTTP_INTERNAL_SERVER_ERROR, err);
sock = ap_psocket(r->pool, PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == -1) {
@@ -190,11 +190,11 @@ int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
#ifdef CHECK_FD_SETSIZE
if (sock >= FD_SETSIZE) {
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, NULL,
- "proxy_connect_handler: filedescriptor (%u) "
- "larger than FD_SETSIZE (%u) "
- "found, you probably need to rebuild Apache with a "
- "larger FD_SETSIZE", sock, FD_SETSIZE);
+ ap_log_error(APLOG_MARK, APLOG_NOERRNO | APLOG_WARNING, NULL,
+ "proxy_connect_handler: filedescriptor (%u) "
+ "larger than FD_SETSIZE (%u) "
+ "found, you probably need to rebuild Apache with a "
+ "larger FD_SETSIZE", sock, FD_SETSIZE);
ap_pclosesocket(r->pool, sock);
return HTTP_INTERNAL_SERVER_ERROR;
}
@@ -212,73 +212,76 @@ int ap_proxy_connect_handler(request_rec *r, cache_req *c, char *url,
if (i == -1) {
ap_pclosesocket(r->pool, sock);
return ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR, ap_pstrcat(r->pool,
- "Could not connect to remote machine:<br>", strerror(errno), NULL));
+ "Could not connect to remote machine:<br>", strerror(errno), NULL));
}
- /* If we are connecting through a remote proxy, we need to pass
- * the CONNECT request on to it.
+ /*
+ * If we are connecting through a remote proxy, we need to pass the
+ * CONNECT request on to it.
*/
if (proxyport) {
- /* FIXME: We should not be calling write() directly, but we currently
- * have no alternative. Error checking ignored. Also, we force
- * a HTTP/1.0 request to keep things simple.
+ /*
+ * FIXME: We should not be calling write() directly, but we currently
+ * have no alternative. Error checking ignored. Also, we force a
+ * HTTP/1.0 request to keep things simple.
*/
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "Sending the CONNECT request to the remote proxy");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "Sending the CONNECT request to the remote proxy");
ap_snprintf(buffer, sizeof(buffer), "CONNECT %s HTTP/1.0" CRLF, r->uri);
- send(sock, buffer, strlen(buffer),0);
+ send(sock, buffer, strlen(buffer), 0);
ap_snprintf(buffer, sizeof(buffer),
- "Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
- send(sock, buffer, strlen(buffer),0);
+ "Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
+ send(sock, buffer, strlen(buffer), 0);
}
else {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "Returning 200 OK Status");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "Returning 200 OK Status");
ap_rvputs(r, "HTTP/1.0 200 Connection established" CRLF, NULL);
ap_rvputs(r, "Proxy-agent: ", ap_get_server_version(), CRLF CRLF, NULL);
ap_bflush(r->connection->client);
}
- while (1) { /* Infinite loop until error (one side closes the connection) */
+ while (1) { /* Infinite loop until error (one side closes
+ * the connection) */
FD_ZERO(&fds);
FD_SET(sock, &fds);
FD_SET(ap_bfileno(r->connection->client, B_WR), &fds);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "Going to sleep (select)");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "Going to sleep (select)");
i = ap_select((ap_bfileno(r->connection->client, B_WR) > sock ?
- ap_bfileno(r->connection->client, B_WR) + 1 :
- sock + 1), &fds, NULL, NULL, NULL);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "Woke from select(), i=%d", i);
+ ap_bfileno(r->connection->client, B_WR) + 1 :
+ sock + 1), &fds, NULL, NULL, NULL);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "Woke from select(), i=%d", i);
if (i) {
if (FD_ISSET(sock, &fds)) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "sock was set");
- if ((nbytes = recv(sock, buffer, HUGE_STRING_LEN,0)) != 0) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "sock was set");
+ if ((nbytes = recv(sock, buffer, HUGE_STRING_LEN, 0)) != 0) {
if (nbytes == -1)
break;
if (send(ap_bfileno(r->connection->client, B_WR), buffer,
- nbytes,0) == EOF)
+ nbytes, 0) == EOF)
break;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO,
- r->server, "Wrote %d bytes to client", nbytes);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO,
+ r->server, "Wrote %d bytes to client", nbytes);
}
else
break;
}
else if (FD_ISSET(ap_bfileno(r->connection->client, B_WR), &fds)) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server,
- "client->fd was set");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server,
+ "client->fd was set");
if ((nbytes = recv(ap_bfileno(r->connection->client, B_WR),
- buffer, HUGE_STRING_LEN, 0)) != 0) {
+ buffer, HUGE_STRING_LEN, 0)) != 0) {
if (nbytes == -1)
break;
if (send(sock, buffer, nbytes, 0) == EOF)
break;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO,
- r->server, "Wrote %d bytes to server", nbytes);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO,
+ r->server, "Wrote %d bytes to server", nbytes);
}
else
break;
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_ftp.c b/usr.sbin/httpd/src/modules/proxy/proxy_ftp.c
index 8f29738f8e2..076d23b00a7 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_ftp.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_ftp.c
@@ -73,7 +73,7 @@ static int decodeenc(char *x)
int i, j, ch;
if (x[0] == '\0')
- return 0; /* special case for no characters */
+ return 0; /* special case for no characters */
for (i = 0, j = 0; x[i] != '\0'; i++, j++) {
/* decode it if not already done */
ch = x[i];
@@ -173,10 +173,10 @@ int ap_proxy_ftp_canon(request_rec *r, char *url)
sport[0] = '\0';
r->filename = ap_pstrcat(p, "proxy:ftp://", (user != NULL) ? user : "",
- (password != NULL) ? ":" : "",
- (password != NULL) ? password : "",
+ (password != NULL) ? ":" : "",
+ (password != NULL) ? password : "",
(user != NULL) ? "@" : "", host, sport, "/", path,
- (parms[0] != '\0') ? ";" : "", parms, NULL);
+ (parms[0] != '\0') ? ";" : "", parms, NULL);
return OK;
}
@@ -195,7 +195,7 @@ static int ftp_getrc(BUFF *ctrl)
return -1;
/* check format */
if (len < 5 || !ap_isdigit(linebuff[0]) || !ap_isdigit(linebuff[1]) ||
- !ap_isdigit(linebuff[2]) || (linebuff[3] != ' ' && linebuff[3] != '-'))
+ !ap_isdigit(linebuff[2]) || (linebuff[3] != ' ' && linebuff[3] != '-'))
status = 0;
else
status = 100 * linebuff[0] + 10 * linebuff[1] + linebuff[2] - 111 * '0';
@@ -222,26 +222,25 @@ static int ftp_getrc(BUFF *ctrl)
}
/*
- * Like ftp_getrc but returns both the ftp status code and
+ * Like ftp_getrc but returns both the ftp status code and
* remembers the response message in the supplied buffer
*/
static int ftp_getrc_msg(BUFF *ctrl, char *msgbuf, int msglen)
{
int len, status;
char linebuff[100], buff[5];
- char *mb = msgbuf,
- *me = &msgbuf[msglen];
+ char *mb = msgbuf, *me = &msgbuf[msglen];
len = ap_bgets(linebuff, sizeof linebuff, ctrl);
if (len == -1)
return -1;
if (len < 5 || !ap_isdigit(linebuff[0]) || !ap_isdigit(linebuff[1]) ||
- !ap_isdigit(linebuff[2]) || (linebuff[3] != ' ' && linebuff[3] != '-'))
+ !ap_isdigit(linebuff[2]) || (linebuff[3] != ' ' && linebuff[3] != '-'))
status = 0;
else
status = 100 * linebuff[0] + 10 * linebuff[1] + linebuff[2] - 111 * '0';
- mb = ap_cpystrn(mb, linebuff+4, me - mb);
+ mb = ap_cpystrn(mb, linebuff + 4, me - mb);
if (linebuff[len - 1] != '\n')
(void)ap_bskiplf(ctrl);
@@ -256,7 +255,7 @@ static int ftp_getrc_msg(BUFF *ctrl, char *msgbuf, int msglen)
if (linebuff[len - 1] != '\n') {
(void)ap_bskiplf(ctrl);
}
- mb = ap_cpystrn(mb, linebuff+4, me - mb);
+ mb = ap_cpystrn(mb, linebuff + 4, me - mb);
} while (memcmp(linebuff, buff, 4) != 0);
}
return status;
@@ -275,7 +274,8 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
conn_rec *con = r->connection;
pool *p = r->pool;
char *dir, *path, *reldir, *site, *type = NULL;
- char *basedir = ""; /* By default, path is relative to the $HOME dir */
+ char *basedir = ""; /* By default, path is relative to the $HOME
+ * dir */
/* create default sized buffers for the stuff below */
buf_size = IOBUFSIZE;
@@ -283,9 +283,9 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
buf2 = ap_palloc(r->pool, buf_size);
/* Save "scheme://site" prefix without password */
- site = ap_unparse_uri_components(p, &r->parsed_uri, UNP_OMITPASSWORD|UNP_OMITPATHINFO);
+ site = ap_unparse_uri_components(p, &r->parsed_uri, UNP_OMITPASSWORD | UNP_OMITPATHINFO);
/* ... and path without query args */
- path = ap_unparse_uri_components(p, &r->parsed_uri, UNP_OMITSITEPART|UNP_OMITQUERY);
+ path = ap_unparse_uri_components(p, &r->parsed_uri, UNP_OMITSITEPART | UNP_OMITQUERY);
/* If path began with /%2f, change the basedir */
if (strncasecmp(path, "/%2f", 4) == 0) {
@@ -298,24 +298,24 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
(void)decodeenc(path);
- while (path[1] == '/') /* collapse multiple leading slashes to one */
+ while (path[1] == '/') /* collapse multiple leading slashes to one */
++path;
/* Copy path, strip (all except the last) trailing slashes */
/* (the trailing slash is needed for the dir component loop below) */
path = dir = ap_pstrcat(r->pool, path, "/", NULL);
- for (n = strlen(path); n > 1 && path[n-1] == '/' && path[n-2] == '/'; --n)
- path[n-1] = '\0';
+ for (n = strlen(path); n > 1 && path[n - 1] == '/' && path[n - 2] == '/'; --n)
+ path[n - 1] = '\0';
/* print "ftp://host/" */
n = ap_snprintf(buf, buf_size, DOCTYPE_HTML_3_2
- "<html><head><title>%s%s%s</title>\n"
- "<base href=\"%s%s%s\"></head>\n"
- "<body><h2>Directory of "
- "<a href=\"/\">%s</a>/",
- site, basedir, ap_escape_html(p,path),
- site, basedir, ap_escape_uri(p,path),
- site);
+ "<html><head><title>%s%s%s</title>\n"
+ "<base href=\"%s%s%s\"></head>\n"
+ "<body><h2>Directory of "
+ "<a href=\"/\">%s</a>/",
+ site, basedir, ap_escape_html(p, path),
+ site, basedir, ap_escape_uri(p, path),
+ site);
total_bytes_sent += ap_proxy_bputs2(buf, con->client, c);
/* Add a link to the root directory (if %2f hack was used) */
@@ -323,11 +323,10 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
total_bytes_sent += ap_proxy_bputs2("<a href=\"/%2f/\">%2f</a>/", con->client, c);
}
- for (dir = path+1; (dir = strchr(dir, '/')) != NULL; )
- {
+ for (dir = path + 1; (dir = strchr(dir, '/')) != NULL;) {
*dir = '\0';
- if ((reldir = strrchr(path+1, '/'))==NULL) {
- reldir = path+1;
+ if ((reldir = strrchr(path + 1, '/')) == NULL) {
+ reldir = path + 1;
}
else
++reldir;
@@ -339,14 +338,15 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
total_bytes_sent += ap_proxy_bputs2(buf, con->client, c);
*dir = '/';
while (*dir == '/')
- ++dir;
+ ++dir;
}
/* If the caller has determined the current directory, and it differs */
/* from what the client requested, then show the real name */
- if (cwd == NULL || strncmp (cwd, path, strlen(cwd)) == 0) {
+ if (cwd == NULL || strncmp(cwd, path, strlen(cwd)) == 0) {
ap_snprintf(buf, buf_size, "</h2>\n<hr /><pre>");
- } else {
+ }
+ else {
ap_snprintf(buf, buf_size, "</h2>\n(%s)\n<hr /><pre>",
ap_escape_html(p, cwd));
}
@@ -357,21 +357,21 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
if (n == -1) { /* input error */
if (c != NULL) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error reading from %s", c->url);
+ "proxy: error reading from %s", c->url);
c = ap_proxy_cache_error(c);
}
break;
}
if (n == 0)
- break; /* EOF */
+ break; /* EOF */
- if (buf[n-1] == '\n') /* strip trailing '\n' */
+ if (buf[n - 1] == '\n') /* strip trailing '\n' */
buf[--n] = '\0';
- if (buf[n-1] == '\r') /* strip trailing '\r' if present */
+ if (buf[n - 1] == '\r') /* strip trailing '\r' if present */
buf[--n] = '\0';
/* Handle unix-style symbolic link */
- if (buf[0] == 'l' && (filename=strstr(buf, " -> ")) != NULL) {
+ if (buf[0] == 'l' && (filename = strstr(buf, " -> ")) != NULL) {
char *link_ptr = filename;
do {
@@ -382,7 +382,7 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
*(link_ptr++) = '\0';
ap_snprintf(buf2, buf_size, "%s <a href=\"%s\">%s %s</a>\n",
ap_escape_html(p, buf),
- ap_escape_uri(p,filename),
+ ap_escape_uri(p, filename),
ap_escape_html(p, filename),
ap_escape_html(p, link_ptr));
ap_cpystrn(buf, buf2, buf_size);
@@ -416,13 +416,13 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
/* Special handling for '.' and '..': append slash to link */
if (!strcmp(filename, ".") || !strcmp(filename, "..") || buf[0] == 'd') {
ap_snprintf(buf2, buf_size, "%s <a href=\"%s/\">%s</a>\n",
- ap_escape_html(p, buf), ap_escape_uri(p,filename),
+ ap_escape_html(p, buf), ap_escape_uri(p, filename),
ap_escape_html(p, filename));
}
else {
ap_snprintf(buf2, buf_size, "%s <a href=\"%s\">%s</a>\n",
ap_escape_html(p, buf),
- ap_escape_uri(p,filename),
+ ap_escape_uri(p, filename),
ap_escape_html(p, filename));
}
ap_cpystrn(buf, buf2, buf_size);
@@ -430,13 +430,13 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
}
/* else??? What about other OS's output formats? */
else {
- strcat(buf, "\n"); /* re-append the newline char */
+ strcat(buf, "\n"); /* re-append the newline char */
ap_cpystrn(buf, ap_escape_html(p, buf), buf_size);
}
total_bytes_sent += ap_proxy_bputs2(buf, con->client, c);
- ap_reset_timeout(r); /* reset timeout after successfule write */
+ ap_reset_timeout(r); /* reset timeout after successfule write */
}
total_bytes_sent += ap_proxy_bputs2("</pre><hr />\n", con->client, c);
@@ -457,23 +457,24 @@ static long int send_dir(BUFF *data, request_rec *r, cache_req *c, char *cwd)
* Note that we "invent" a realm name which consists of the
* ftp://user@host part of the reqest (sans password -if supplied but invalid-)
*/
-static int ftp_unauthorized (request_rec *r, int log_it)
+static int ftp_unauthorized(request_rec *r, int log_it)
{
r->proxyreq = NOT_PROXY;
- /* Log failed requests if they supplied a password
- * (log username/password guessing attempts)
+ /*
+ * Log failed requests if they supplied a password (log username/password
+ * guessing attempts)
*/
if (log_it)
- ap_log_rerror(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO, r,
"proxy: missing or failed auth to %s",
ap_unparse_uri_components(r->pool,
- &r->parsed_uri, UNP_OMITPATHINFO));
+ &r->parsed_uri, UNP_OMITPATHINFO));
ap_table_setn(r->err_headers_out, "WWW-Authenticate",
ap_pstrcat(r->pool, "Basic realm=\"",
- ap_unparse_uri_components(r->pool, &r->parsed_uri,
- UNP_OMITPASSWORD|UNP_OMITPATHINFO),
- "\"", NULL));
+ ap_unparse_uri_components(r->pool, &r->parsed_uri,
+ UNP_OMITPASSWORD | UNP_OMITPATHINFO),
+ "\"", NULL));
return HTTP_UNAUTHORIZED;
}
@@ -481,7 +482,7 @@ static int ftp_unauthorized (request_rec *r, int log_it)
/* Set ftp server to TYPE {A,I,E} before transfer of a directory or file */
static int ftp_set_TYPE(request_rec *r, BUFF *ctrl, char xfer_type)
{
- static char old_type[2] = { 'A', '\0' }; /* After logon, mode is ASCII */
+ static char old_type[2] = {'A', '\0'}; /* After logon, mode is ASCII */
int ret = HTTP_OK;
int rc;
@@ -492,7 +493,7 @@ static int ftp_set_TYPE(request_rec *r, BUFF *ctrl, char xfer_type)
old_type[0] = xfer_type;
ap_bvputs(ctrl, "TYPE ", old_type, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: TYPE %s", old_type);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: TYPE %s", old_type);
/* responses: 200, 421, 500, 501, 504, 530 */
/* 200 Command okay. */
@@ -502,37 +503,36 @@ static int ftp_set_TYPE(request_rec *r, BUFF *ctrl, char xfer_type)
/* 504 Command not implemented for that parameter. */
/* 530 Not logged in. */
rc = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
if (rc == -1 || rc == 421) {
ap_kill_timeout(r);
ret = ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server");
+ "Error reading from remote server");
}
else if (rc != 200 && rc != 504) {
ap_kill_timeout(r);
ret = ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Unable to set transfer type");
+ "Unable to set transfer type");
}
/* Allow not implemented */
else if (rc == 504)
- /* ignore it silently */;
+ /* ignore it silently */ ;
return ret;
}
/* Common cleanup routine: close open BUFFers or sockets, and return an error */
-static int
-ftp_cleanup_and_return(request_rec *r, BUFF *ctrl, BUFF *data, int csock, int dsock, int rc)
+static int ftp_cleanup_and_return(request_rec *r, BUFF *ctrl, BUFF *data, int csock, int dsock, int rc)
{
if (ctrl != NULL)
- ap_bclose(ctrl);
+ ap_bclose(ctrl);
else if (csock != -1)
- ap_pclosesocket(r->pool, csock);
+ ap_pclosesocket(r->pool, csock);
if (data != NULL)
- ap_bclose(data);
+ ap_bclose(data);
else if (dsock != -1)
- ap_pclosesocket(r->pool, dsock);
+ ap_pclosesocket(r->pool, dsock);
ap_kill_timeout(r);
@@ -564,12 +564,12 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
pool *p = r->pool;
int one = 1;
NET_SIZE_T clen;
- char xfer_type = 'A'; /* after ftp login, the default is ASCII */
+ char xfer_type = 'A'; /* after ftp login, the default is ASCII */
int get_dirlisting = 0;
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
struct noproxy_entry *npent = (struct noproxy_entry *) conf->noproxies->elts;
struct nocache_entry *ncent = (struct nocache_entry *) conf->nocaches->elts;
@@ -595,8 +595,8 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
host = r->parsed_uri.hostname;
port = (r->parsed_uri.port != 0)
- ? r->parsed_uri.port
- : ap_default_port_for_request(r);
+ ? r->parsed_uri.port
+ : ap_default_port_for_request(r);
path = ap_pstrdup(p, r->parsed_uri.path);
if (path == NULL)
path = "";
@@ -604,25 +604,27 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
while (*path == '/')
++path;
- /* The "Authorization:" header must be checked first.
- * We allow the user to "override" the URL-coded user [ & password ]
- * in the Browsers' User&Password Dialog.
- * NOTE that this is only marginally more secure than having the
- * password travel in plain as part of the URL, because Basic Auth
- * simply uuencodes the plain text password.
- * But chances are still smaller that the URL is logged regularly.
+ /*
+ * The "Authorization:" header must be checked first. We allow the user
+ * to "override" the URL-coded user [ & password ] in the Browsers'
+ * User&Password Dialog. NOTE that this is only marginally more secure
+ * than having the password travel in plain as part of the URL, because
+ * Basic Auth simply uuencodes the plain text password. But chances are
+ * still smaller that the URL is logged regularly.
*/
if ((password = ap_table_get(r->headers_in, "Authorization")) != NULL
&& strcasecmp(ap_getword(r->pool, &password, ' '), "Basic") == 0
&& (password = ap_pbase64decode(r->pool, password))[0] != ':') {
- /* Note that this allocation has to be made from r->connection->pool
- * because it has the lifetime of the connection. The other allocations
- * are temporary and can be tossed away any time.
+ /*
+ * Note that this allocation has to be made from r->connection->pool
+ * because it has the lifetime of the connection. The other
+ * allocations are temporary and can be tossed away any time.
*/
- user = ap_getword_nulls (r->connection->pool, &password, ':');
+ user = ap_getword_nulls(r->connection->pool, &password, ':');
r->connection->ap_auth_type = "Basic";
r->connection->user = r->parsed_uri.user = user;
- nocache = 1; /* This resource only accessible with username/password */
+ nocache = 1; /* This resource only accessible with
+ * username/password */
}
else if ((user = r->parsed_uri.user) != NULL) {
user = ap_pstrdup(p, user);
@@ -632,7 +634,8 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
decodeenc(tmp);
password = tmp;
}
- nocache = 1; /* This resource only accessible with username/password */
+ nocache = 1; /* This resource only accessible with
+ * username/password */
}
else {
user = "anonymous";
@@ -644,12 +647,12 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
for (i = 0; i < conf->noproxies->nelts; i++) {
if (destaddr.s_addr == npent[i].addr.s_addr ||
(npent[i].name != NULL &&
- (npent[i].name[0] == '*' || strstr(host, npent[i].name) != NULL)))
+ (npent[i].name[0] == '*' || strstr(host, npent[i].name) != NULL)))
return ap_proxyerror(r, HTTP_FORBIDDEN,
"Connect to remote machine blocked");
}
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: connect to %s:%d", host, port);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: connect to %s:%d", host, port);
parms = strchr(path, ';');
if (parms != NULL)
@@ -665,33 +668,33 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
sock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: error creating socket");
+ "proxy: error creating socket");
return HTTP_INTERNAL_SERVER_ERROR;
}
#if !defined(TPF) && !defined(BEOS)
if (conf->recv_buffer_size > 0
&& setsockopt(sock, SOL_SOCKET, SO_RCVBUF,
- (const char *) &conf->recv_buffer_size, sizeof(int))
- == -1) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
+ (const char *)&conf->recv_buffer_size, sizeof(int))
+ == -1) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
+ "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
}
#endif
- if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &one,
+ if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&one,
sizeof(one)) == -1) {
-#ifndef _OSD_POSIX /* BS2000 has this option "always on" */
+#ifndef _OSD_POSIX /* BS2000 has this option "always on" */
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: error setting reuseaddr option: setsockopt(SO_REUSEADDR)");
+ "proxy: error setting reuseaddr option: setsockopt(SO_REUSEADDR)");
ap_pclosesocket(p, sock);
return HTTP_INTERNAL_SERVER_ERROR;
-#endif /*_OSD_POSIX*/
+#endif /* _OSD_POSIX */
}
#ifdef SINIX_D_RESOLVER_BUG
{
- struct in_addr *ip_addr = (struct in_addr *) *server_hp.h_addr_list;
+ struct in_addr *ip_addr = (struct in_addr *)*server_hp.h_addr_list;
for (; ip_addr->s_addr != 0; ++ip_addr) {
memcpy(&server.sin_addr, ip_addr, sizeof(struct in_addr));
@@ -715,7 +718,7 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
ap_proxyerror(r, HTTP_BAD_GATEWAY, ap_pstrcat(r->pool,
"Could not connect to remote machine: ",
- strerror(errno), NULL)));
+ strerror(errno), NULL)));
}
/* record request_time for HTTP/1.1 age calculation */
@@ -726,8 +729,8 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* shouldn't we implement telnet control options here? */
#ifdef CHARSET_EBCDIC
- ap_bsetflag(ctrl, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 1);
-#endif /*CHARSET_EBCDIC*/
+ ap_bsetflag(ctrl, B_ASCII2EBCDIC | B_EBCDIC2ASCII, 1);
+#endif /* CHARSET_EBCDIC */
/* possible results: */
/* 120 Service ready in nnn minutes. */
@@ -735,39 +738,40 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 421 Service not available, closing control connection. */
ap_hard_timeout("proxy ftp", r);
i = ftp_getrc_msg(ctrl, resp, sizeof resp);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
}
#if 0
if (i == 120) {
- /* RFC2068 states:
- * 14.38 Retry-After
+ /*
+ * RFC2068 states: 14.38 Retry-After
*
- * The Retry-After response-header field can be used with a 503 (Service
- * Unavailable) response to indicate how long the service is expected to
- * be unavailable to the requesting client. The value of this field can
- * be either an HTTP-date or an integer number of seconds (in decimal)
- * after the time of the response.
- * Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds )
+ * The Retry-After response-header field can be used with a 503 (Service
+ * Unavailable) response to indicate how long the service is expected
+ * to be unavailable to the requesting client. The value of this
+ * field can be either an HTTP-date or an integer number of seconds
+ * (in decimal) after the time of the response. Retry-After =
+ * "Retry-After" ":" ( HTTP-date | delta-seconds )
*/
- ap_set_header("Retry-After", ap_psprintf(p, "%u", 60*wait_mins);
+/**INDENT** Error@756: Unbalanced parens */
+ ap_set_header("Retry-After", ap_psprintf(p, "%u", 60 * wait_mins);
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_SERVICE_UNAVAILABLE, resp));
+ ap_proxyerror(r, HTTP_SERVICE_UNAVAILABLE, resp));
}
#endif
if (i != 220) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY, resp));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY, resp));
}
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: connected.");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: connected.");
ap_bvputs(ctrl, "USER ", user, CRLF, NULL);
- ap_bflush(ctrl); /* capture any errors */
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: USER %s", user);
+ ap_bflush(ctrl); /* capture any errors */
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: USER %s", user);
/* possible results; 230, 331, 332, 421, 500, 501, 530 */
/* states: 1 - error, 2 - success; 3 - send password, 4,5 fail */
@@ -776,19 +780,19 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 332 Need account for login. */
/* 421 Service not available, closing control connection. */
/* 500 Syntax error, command unrecognized. */
- /* (This may include errors such as command line too long.) */
+ /* (This may include errors such as command line too long.) */
/* 501 Syntax error in parameters or arguments. */
/* 530 Not logged in. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
}
if (i == 530) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ftp_unauthorized (r, 1));
+ ftp_unauthorized(r, 1));
}
if (i != 230 && i != 331) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
@@ -798,50 +802,51 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (i == 331) { /* send password */
if (password == NULL) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ftp_unauthorized (r, 0));
+ ftp_unauthorized(r, 0));
}
ap_bvputs(ctrl, "PASS ", password, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PASS %s", password);
- /* possible results 202, 230, 332, 421, 500, 501, 503, 530 */
- /* 230 User logged in, proceed. */
- /* 332 Need account for login. */
- /* 421 Service not available, closing control connection. */
- /* 500 Syntax error, command unrecognized. */
- /* 501 Syntax error in parameters or arguments. */
- /* 503 Bad sequence of commands. */
- /* 530 Not logged in. */
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PASS %s", password);
+ /* possible results 202, 230, 332, 421, 500, 501, 503, 530 */
+ /* 230 User logged in, proceed. */
+ /* 332 Need account for login. */
+ /* 421 Service not available, closing control connection. */
+ /* 500 Syntax error, command unrecognized. */
+ /* 501 Syntax error in parameters or arguments. */
+ /* 503 Bad sequence of commands. */
+ /* 530 Not logged in. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
}
if (i == 332) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_UNAUTHORIZED,
- "Need account for login"));
+ ap_proxyerror(r, HTTP_UNAUTHORIZED,
+ "Need account for login"));
}
/* @@@ questionable -- we might as well return a 403 Forbidden here */
- if (i == 530) /* log it: passwd guessing attempt? */
+ if (i == 530) /* log it: passwd guessing attempt? */
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ftp_unauthorized (r, 1));
+ ftp_unauthorized(r, 1));
if (i != 230 && i != 202)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_BAD_GATEWAY);
}
- /* Special handling for leading "%2f": this enforces a "cwd /"
- * out of the $HOME directory which was the starting point after login
+ /*
+ * Special handling for leading "%2f": this enforces a "cwd /" out of the
+ * $HOME directory which was the starting point after login
*/
if (strncasecmp(path, "%2f", 3) == 0) {
path += 3;
- while (*path == '/') /* skip leading '/' (after root %2f) */
+ while (*path == '/') /* skip leading '/' (after root %2f) */
++path;
ap_bputs("CWD /" CRLF, ctrl);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: CWD /");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: CWD /");
/* possible results: 250, 421, 500, 501, 502, 530, 550 */
/* 250 Requested file action okay, completed. */
@@ -852,11 +857,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 530 Not logged in. */
/* 550 Requested action not taken. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
else if (i == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
@@ -869,7 +874,7 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
* this is what we must do if we don't know the OS type of the remote
* machine
*/
- for ( ; (strp = strchr(path, '/')) != NULL ; path = strp + 1) {
+ for (; (strp = strchr(path, '/')) != NULL; path = strp + 1) {
char *slash = strp;
*slash = '\0';
@@ -880,38 +885,38 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (strp[1] == '\0')
break;
- len = decodeenc(path); /* Note! This decodes a %2f -> "/" */
- if (strchr(path, '/')) /* were there any '/' characters? */
+ len = decodeenc(path); /* Note! This decodes a %2f -> "/" */
+ if (strchr(path, '/')) /* were there any '/' characters? */
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_REQUEST,
- "Use of %2F is only allowed at the base directory"));
+ ap_proxyerror(r, HTTP_BAD_REQUEST,
+ "Use of %2F is only allowed at the base directory"));
ap_bvputs(ctrl, "CWD ", path, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
*slash = '/';
/* responses: 250, 421, 500, 501, 502, 530, 550 */
- /* 250 Requested file action okay, completed. */
- /* 421 Service not available, closing control connection. */
- /* 500 Syntax error, command unrecognized. */
- /* 501 Syntax error in parameters or arguments. */
- /* 502 Command not implemented. */
- /* 530 Not logged in. */
- /* 550 Requested action not taken. */
+ /* 250 Requested file action okay, completed. */
+ /* 421 Service not available, closing control connection. */
+ /* 500 Syntax error, command unrecognized. */
+ /* 501 Syntax error in parameters or arguments. */
+ /* 502 Command not implemented. */
+ /* 530 Not logged in. */
+ /* 550 Requested action not taken. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (i == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
if (i == 500 || i == 501)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_REQUEST,
- "Syntax error in filename (reported by ftp server)"));
+ ap_proxyerror(r, HTTP_BAD_REQUEST,
+ "Syntax error in filename (reported by ftp server)"));
if (i != 250)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_BAD_GATEWAY);
@@ -919,18 +924,19 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (parms != NULL && strncmp(parms, "type=", 5) == 0
&& ap_isalpha(parms[5])) {
- /* "type=d" forces a dir listing.
- * The other types (i|a|e) are directly used for the ftp TYPE command
+ /*
+ * "type=d" forces a dir listing. The other types (i|a|e) are
+ * directly used for the ftp TYPE command
*/
- if ( ! (get_dirlisting = (parms[5] == 'd')))
+ if (!(get_dirlisting = (parms[5] == 'd')))
xfer_type = ap_toupper(parms[5]);
/* Check valid types, rather than ignoring invalid types silently: */
if (strchr("AEI", xfer_type) == NULL)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
ap_proxyerror(r, HTTP_BAD_REQUEST, ap_pstrcat(r->pool,
- "ftp proxy supports only types 'a', 'i', or 'e': \"",
- parms, "\" is invalid.", NULL)));
+ "ftp proxy supports only types 'a', 'i', or 'e': \"",
+ parms, "\" is invalid.", NULL)));
}
else {
/* make binary transfers the default */
@@ -941,23 +947,23 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
dsock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (dsock == -1) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
- "proxy: error creating PASV socket"));
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ "proxy: error creating PASV socket"));
}
#if !defined (TPF) && !defined(BEOS)
if (conf->recv_buffer_size) {
if (setsockopt(dsock, SOL_SOCKET, SO_RCVBUF,
- (const char *) &conf->recv_buffer_size, sizeof(int)) == -1) {
+ (const char *)&conf->recv_buffer_size, sizeof(int)) == -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
+ "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
}
}
#endif
ap_bputs("PASV" CRLF, ctrl);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PASV command issued");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PASV command issued");
/* possible results: 227, 421, 500, 501, 502, 530 */
/* 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). */
/* 421 Service not available, closing control connection. */
@@ -969,19 +975,19 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
i = ap_bgets(pasv, sizeof(pasv), ctrl);
if (i == -1 || i == 421) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
- "proxy: PASV: control connection is toast"));
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ "proxy: PASV: control connection is toast"));
}
else {
pasv[i - 1] = '\0';
- pstr = strtok(pasv, " "); /* separate result code */
+ pstr = strtok(pasv, " "); /* separate result code */
if (pstr != NULL) {
presult = atoi(pstr);
if (*(pstr + strlen(pstr) + 1) == '=')
pstr += strlen(pstr) + 2;
- else
- {
- pstr = strtok(NULL, "("); /* separate address & port params */
+ else {
+ pstr = strtok(NULL, "("); /* separate address & port
+ * params */
if (pstr != NULL)
pstr = strtok(NULL, ")");
}
@@ -989,15 +995,15 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
else
presult = atoi(pasv);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", presult);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", presult);
if (presult == 227 && pstr != NULL && (sscanf(pstr,
"%d,%d,%d,%d,%d,%d", &h3, &h2, &h1, &h0, &p1, &p0) == 6)) {
/* pardon the parens, but it makes gcc happy */
paddr = (((((h3 << 8) + h2) << 8) + h1) << 8) + h0;
pport = (p1 << 8) + p0;
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: contacting host %d.%d.%d.%d:%d",
- h3, h2, h1, h0, pport);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: contacting host %d.%d.%d.%d:%d",
+ h3, h2, h1, h0, pport);
data_addr.sin_family = AF_INET;
data_addr.sin_addr.s_addr = htonl(paddr);
data_addr.sin_port = htons(pport);
@@ -1005,10 +1011,10 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (i == -1) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- ap_pstrcat(r->pool,
- "Could not connect to remote machine: ",
- strerror(errno), NULL)));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ ap_pstrcat(r->pool,
+ "Could not connect to remote machine: ",
+ strerror(errno), NULL)));
}
pasvmode = 1;
}
@@ -1020,45 +1026,45 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (!pasvmode) { /* set up data connection */
clen = sizeof(struct sockaddr_in);
- if (getsockname(sock, (struct sockaddr *) &server, &clen) < 0) {
+ if (getsockname(sock, (struct sockaddr *)&server, &clen) < 0) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
"proxy: error getting socket address"));
}
dsock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (dsock == -1) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
- "proxy: error creating socket"));
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ "proxy: error creating socket"));
}
- if (setsockopt(dsock, SOL_SOCKET, SO_REUSEADDR, (void *) &one,
+ if (setsockopt(dsock, SOL_SOCKET, SO_REUSEADDR, (void *)&one,
sizeof(one)) == -1) {
-#ifndef _OSD_POSIX /* BS2000 has this option "always on" */
+#ifndef _OSD_POSIX /* BS2000 has this option "always on" */
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
- "proxy: error setting reuseaddr option"));
-#endif /*_OSD_POSIX*/
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ "proxy: error setting reuseaddr option"));
+#endif /* _OSD_POSIX */
}
- if (bind(dsock, (struct sockaddr *) &server,
+ if (bind(dsock, (struct sockaddr *)&server,
sizeof(struct sockaddr_in)) == -1) {
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
- ap_psprintf(p, "proxy: error binding to ftp data socket %s:%d",
- inet_ntoa(server.sin_addr), server.sin_port)));
+ ap_proxyerror(r, HTTP_INTERNAL_SERVER_ERROR,
+ ap_psprintf(p, "proxy: error binding to ftp data socket %s:%d",
+ inet_ntoa(server.sin_addr), server.sin_port)));
}
- listen(dsock, 2); /* only need a short queue */
+ listen(dsock, 2); /* only need a short queue */
}
/* set request; "path" holds last path component */
len = decodeenc(path);
- if (strchr(path, '/')) /* were there any '/' characters? */
+ if (strchr(path, '/')) /* were there any '/' characters? */
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_REQUEST,
- "Use of %2F is only allowed at the base directory"));
+ ap_proxyerror(r, HTTP_BAD_REQUEST,
+ "Use of %2F is only allowed at the base directory"));
/* TM - if len == 0 then it must be a directory (you can't RETR nothing) */
@@ -1068,16 +1074,16 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
else {
ap_bvputs(ctrl, "SIZE ", path, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: SIZE %s", path);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: SIZE %s", path);
i = ftp_getrc_msg(ctrl, resp, sizeof resp);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d with response %s", i, resp);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d with response %s", i, resp);
if (i != 500) { /* Size command not recognized */
if (i == 550) { /* Not a regular file */
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: SIZE shows this is a directory");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: SIZE shows this is a directory");
get_dirlisting = 1;
ap_bvputs(ctrl, "CWD ", path, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
/* possible results: 250, 421, 500, 501, 502, 530, 550 */
/* 250 Requested file action okay, completed. */
@@ -1088,11 +1094,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 530 Not logged in. */
/* 550 Requested action not taken. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
if (i == -1 || i == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (i == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
@@ -1102,9 +1108,8 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
path = "";
len = 0;
}
- else if (i == 213) { /* Size command ok */
- for (j = 0; j < sizeof resp && ap_isdigit(resp[j]); j++)
- ;
+ else if (i == 213) {/* Size command ok */
+ for (j = 0; j < sizeof resp && ap_isdigit(resp[j]); j++);
resp[j] = '\0';
if (resp[0] != '\0')
size = ap_pstrdup(p, resp);
@@ -1115,7 +1120,7 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
#ifdef AUTODETECT_PWD
ap_bvputs(ctrl, "PWD", CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PWD");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PWD");
/* responses: 257, 500, 501, 502, 421, 550 */
/* 257 "<directory-name>" <commentary> */
/* 421 Service not available, closing control connection. */
@@ -1124,11 +1129,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 502 Command not implemented. */
/* 550 Requested action not taken. */
i = ftp_getrc_msg(ctrl, resp, sizeof resp);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PWD returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PWD returned status %d", i);
if (i == -1 || i == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (i == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
@@ -1136,19 +1141,19 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
const char *dirp = resp;
cwd = ap_getword_conf(r->pool, &dirp);
}
-#endif /*AUTODETECT_PWD*/
+#endif /* AUTODETECT_PWD */
if (get_dirlisting) {
if (len != 0)
ap_bvputs(ctrl, "LIST ", path, CRLF, NULL);
else
ap_bputs("LIST -lag" CRLF, ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: LIST %s", (len == 0 ? "" : path));
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: LIST %s", (len == 0 ? "" : path));
}
else {
ftp_set_TYPE(r, ctrl, xfer_type);
ap_bvputs(ctrl, "RETR ", path, CRLF, NULL);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: RETR %s", path);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: RETR %s", path);
}
ap_bflush(ctrl);
/* RETR: 110, 125, 150, 226, 250, 421, 425, 426, 450, 451, 500, 501, 530, 550
@@ -1168,19 +1173,20 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 530 Not logged in. */
/* 550 Requested action not taken. */
rc = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
if (rc == -1 || rc == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (rc == 550) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: RETR failed, trying LIST instead");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: RETR failed, trying LIST instead");
get_dirlisting = 1;
- ftp_set_TYPE(r, ctrl, 'A'); /* directories must be transferred in ASCII */
+ ftp_set_TYPE(r, ctrl, 'A'); /* directories must be transferred in
+ * ASCII */
ap_bvputs(ctrl, "CWD ", path, CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: CWD %s", path);
/* possible results: 250, 421, 500, 501, 502, 530, 550 */
/* 250 Requested file action okay, completed. */
/* 421 Service not available, closing control connection. */
@@ -1190,11 +1196,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 530 Not logged in. */
/* 550 Requested action not taken. */
rc = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
if (rc == -1 || rc == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (rc == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
@@ -1205,7 +1211,7 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
#ifdef AUTODETECT_PWD
ap_bvputs(ctrl, "PWD", CRLF, NULL);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PWD");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PWD");
/* responses: 257, 500, 501, 502, 421, 550 */
/* 257 "<directory-name>" <commentary> */
/* 421 Service not available, closing control connection. */
@@ -1214,11 +1220,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* 502 Command not implemented. */
/* 550 Requested action not taken. */
i = ftp_getrc_msg(ctrl, resp, sizeof resp);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: PWD returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: PWD returned status %d", i);
if (i == -1 || i == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
if (i == 550)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
HTTP_NOT_FOUND);
@@ -1226,22 +1232,22 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
const char *dirp = resp;
cwd = ap_getword_conf(r->pool, &dirp);
}
-#endif /*AUTODETECT_PWD*/
+#endif /* AUTODETECT_PWD */
ap_bputs("LIST -lag" CRLF, ctrl);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: LIST -lag");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: LIST -lag");
rc = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", rc);
if (rc == -1 || rc == 421)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server"));
+ ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server"));
}
ap_kill_timeout(r);
if (rc != 125 && rc != 150 && rc != 226 && rc != 250)
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
- HTTP_BAD_GATEWAY);
+ HTTP_BAD_GATEWAY);
r->status = HTTP_OK;
r->status_line = "200 OK";
@@ -1260,11 +1266,12 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
}
else {
#ifdef CHARSET_EBCDIC
- r->ebcdic.conv_out = 0; /* do not convert what we read from the ftp server */
+ r->ebcdic.conv_out = 0; /* do not convert what we read from the ftp
+ * server */
#endif
if (r->content_type != NULL) {
ap_table_setn(resp_hdrs, "Content-Type", r->content_type);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: Content-Type set to %s", r->content_type);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: Content-Type set to %s", r->content_type);
}
else {
ap_table_setn(resp_hdrs, "Content-Type", ap_default_type(r));
@@ -1272,11 +1279,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
if (xfer_type != 'A' && size != NULL) {
/* We "trust" the ftp server to really serve (size) bytes... */
ap_table_set(resp_hdrs, "Content-Length", size);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: Content-Length set to %s", size);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: Content-Length set to %s", size);
}
}
if (r->content_encoding != NULL && r->content_encoding[0] != '\0') {
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: Content-Encoding set to %s", r->content_encoding);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: Content-Encoding set to %s", r->content_encoding);
ap_table_setn(resp_hdrs, "Content-Encoding", r->content_encoding);
}
@@ -1285,10 +1292,10 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
for (i = 0; i < conf->nocaches->nelts; i++) {
if (destaddr.s_addr == ncent[i].addr.s_addr ||
(ncent[i].name != NULL &&
- (ncent[i].name[0] == '*' ||
- strstr(host, ncent[i].name) != NULL))) {
- nocache = 1;
- break;
+ (ncent[i].name[0] == '*' ||
+ strstr(host, ncent[i].name) != NULL))) {
+ nocache = 1;
+ break;
}
}
}
@@ -1303,11 +1310,11 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
ap_hard_timeout("proxy ftp data connect", r);
clen = sizeof(struct sockaddr_in);
do
- csd = accept(dsock, (struct sockaddr *) &server, &clen);
+ csd = accept(dsock, (struct sockaddr *)&server, &clen);
while (csd == -1 && errno == EINTR);
if (csd == -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: failed to accept data connection");
+ "proxy: failed to accept data connection");
if (c != NULL)
c = ap_proxy_cache_error(c);
return ftp_cleanup_and_return(r, ctrl, data, sock, dsock,
@@ -1327,15 +1334,15 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* send response */
/* write status line and headers to the cache file */
ap_proxy_write_headers(c, ap_pstrcat(p, "HTTP/1.1 ", r->status_line, NULL), resp_hdrs);
-
+
/* Setup the headers for our client from upstreams response-headers */
ap_overlap_tables(r->headers_out, resp_hdrs, AP_OVERLAP_TABLES_SET);
/* Add X-Cache header */
ap_table_setn(r->headers_out, "X-Cache",
ap_pstrcat(r->pool, "MISS from ",
- ap_get_server_name(r), NULL));
+ ap_get_server_name(r), NULL));
/* The Content-Type of this response is the upstream one. */
- r->content_type = ap_table_get (r->headers_out, "Content-Type");
+ r->content_type = ap_table_get(r->headers_out, "Content-Type");
/* finally output the headers to the client */
ap_send_http_header(r);
@@ -1348,7 +1355,7 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* we need to set this for ap_proxy_send_fb()... */
if (c != NULL)
c->cache_completion = 0;
- ap_proxy_send_fb(data, r, c, -1, 0, conf->io_buffer_size);
+ ap_proxy_send_fb(data, r, c, -1, 0, 0, conf->io_buffer_size);
}
else {
send_dir(data, r, c, cwd);
@@ -1357,8 +1364,9 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
data = NULL;
dsock = -1;
- /* We checked for 125||150||226||250 above.
- * See if another rc is pending, and fetch it:
+ /*
+ * We checked for 125||150||226||250 above. See if another rc is
+ * pending, and fetch it:
*/
if (rc == 125 || rc == 150)
rc = ftp_getrc(ctrl);
@@ -1372,16 +1380,16 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
data = NULL;
dsock = -1;
}
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: ABOR");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: ABOR");
/* responses: 225, 226, 421, 500, 501, 502 */
- /* 225 Data connection open; no transfer in progress. */
- /* 226 Closing data connection. */
- /* 421 Service not available, closing control connection. */
- /* 500 Syntax error, command unrecognized. */
- /* 501 Syntax error in parameters or arguments. */
- /* 502 Command not implemented. */
+ /* 225 Data connection open; no transfer in progress. */
+ /* 226 Closing data connection. */
+ /* 421 Service not available, closing control connection. */
+ /* 500 Syntax error, command unrecognized. */
+ /* 501 Syntax error in parameters or arguments. */
+ /* 502 Command not implemented. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: returned status %d", i);
}
ap_kill_timeout(r);
@@ -1390,16 +1398,16 @@ int ap_proxy_ftp_handler(request_rec *r, cache_req *c, char *url)
/* finish */
ap_bputs("QUIT" CRLF, ctrl);
ap_bflush(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: QUIT");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: QUIT");
/* responses: 221, 500 */
/* 221 Service closing control connection. */
/* 500 Syntax error, command unrecognized. */
i = ftp_getrc(ctrl);
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "FTP: QUIT: status %d", i);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "FTP: QUIT: status %d", i);
ap_bclose(ctrl);
- ap_rflush(r); /* flush before garbage collection */
+ ap_rflush(r); /* flush before garbage collection */
ap_proxy_garbage_coll(r);
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_http.c b/usr.sbin/httpd/src/modules/proxy/proxy_http.c
index d756a0f7f90..92f06493e72 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_http.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_http.c
@@ -76,8 +76,8 @@ int ap_proxy_http_canon(request_rec *r, char *url, const char *scheme, int def_p
const char *err;
int port;
- /* do syntatic check.
- * We break the URL into host, port, path, search
+ /*
+ * do syntatic check. We break the URL into host, port, path, search
*/
port = def_port;
err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port);
@@ -85,9 +85,10 @@ int ap_proxy_http_canon(request_rec *r, char *url, const char *scheme, int def_p
return HTTP_BAD_REQUEST;
/* now parse path/search args, according to rfc1738 */
- /* N.B. if this isn't a true proxy request, then the URL _path_
- * has already been decoded. True proxy requests have r->uri
- * == r->unparsed_uri, and no others have that property.
+ /*
+ * N.B. if this isn't a true proxy request, then the URL _path_ has
+ * already been decoded. True proxy requests have r->uri ==
+ * r->unparsed_uri, and no others have that property.
*/
if (r->uri == r->unparsed_uri) {
search = strchr(url, '?');
@@ -146,12 +147,12 @@ static const char *proxy_location_reverse_map(request_rec *r, const char *url)
* route.)
*/
int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
- const char *proxyhost, int proxyport)
+ const char *proxyhost, int proxyport)
{
const char *strp;
char *strp2;
const char *err, *desthost;
- int i, j, sock, len, backasswards;
+ int i, j, sock,/* len,*/ backasswards;
table *req_hdrs, *resp_hdrs;
array_header *reqhdrs_arr;
table_entry *reqhdrs_elts;
@@ -163,21 +164,25 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
char portstr[32];
pool *p = r->pool;
int destport = 0;
+ int chunked = 0;
char *destportstr = NULL;
const char *urlptr = NULL;
const char *datestr, *urlstr;
+ int result, major, minor;
+ const char *content_length;
#ifdef EAPI
char *peer;
#endif
void *sconf = r->server->module_config;
proxy_server_conf *conf =
- (proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
+ (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module);
struct noproxy_entry *npent = (struct noproxy_entry *) conf->noproxies->elts;
struct nocache_entry *ncent = (struct nocache_entry *) conf->nocaches->elts;
int nocache = 0;
- if (conf->cache.root == NULL) nocache = 1;
+ if (conf->cache.root == NULL)
+ nocache = 1;
memset(&server, '\0', sizeof(server));
server.sin_family = AF_INET;
@@ -222,7 +227,7 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
for (i = 0; i < conf->noproxies->nelts; i++) {
if (destaddr.s_addr == npent[i].addr.s_addr ||
(npent[i].name != NULL &&
- (npent[i].name[0] == '*' || strstr(desthost, npent[i].name) != NULL)))
+ (npent[i].name[0] == '*' || strstr(desthost, npent[i].name) != NULL)))
return ap_proxyerror(r, HTTP_FORBIDDEN,
"Connect to remote machine blocked");
}
@@ -247,30 +252,31 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
}
- /* we have worked out who exactly we are going to connect to, now
- * make that connection...
+ /*
+ * we have worked out who exactly we are going to connect to, now make
+ * that connection...
*/
sock = ap_psocket(p, PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy: error creating socket");
+ "proxy: error creating socket");
return HTTP_INTERNAL_SERVER_ERROR;
}
#if !defined(TPF) && !defined(BEOS)
if (conf->recv_buffer_size) {
if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF,
- (const char *) &conf->recv_buffer_size, sizeof(int))
+ (const char *)&conf->recv_buffer_size, sizeof(int))
== -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
+ "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default");
}
}
#endif
#ifdef SINIX_D_RESOLVER_BUG
{
- struct in_addr *ip_addr = (struct in_addr *) *server_hp.h_addr_list;
+ struct in_addr *ip_addr = (struct in_addr *)*server_hp.h_addr_list;
for (; ip_addr->s_addr != 0; ++ip_addr) {
memcpy(&server.sin_addr, ip_addr, sizeof(struct in_addr));
@@ -295,23 +301,24 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
return DECLINED; /* try again another way */
else
return ap_proxyerror(r, HTTP_BAD_GATEWAY, ap_pstrcat(r->pool,
- "Could not connect to remote machine: ",
- strerror(errno), NULL));
+ "Could not connect to remote machine: ",
+ strerror(errno), NULL));
}
/* record request_time for HTTP/1.1 age calculation */
c->req_time = time(NULL);
- /* build upstream-request headers by stripping r->headers_in from
- * connection specific headers.
- * We must not remove the Connection: header from r->headers_in,
- * we still have to react to Connection: close
+ /*
+ * build upstream-request headers by stripping r->headers_in from
+ * connection specific headers. We must not remove the Connection: header
+ * from r->headers_in, we still have to react to Connection: close
*/
req_hdrs = ap_copy_table(r->pool, r->headers_in);
ap_proxy_clear_connection(r->pool, req_hdrs);
- /* At this point, we start sending the HTTP/1.1 request to the
- * remote server (proxy or otherwise).
+ /*
+ * At this point, we start sending the HTTP/1.1 request to the remote
+ * server (proxy or otherwise).
*/
f = ap_bcreate(p, B_RDWR | B_SOCKET);
ap_bpushfd(f, sock, sock);
@@ -330,7 +337,7 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
ap_hard_timeout("proxy send", r);
ap_bvputs(f, r->method, " ", proxyhost ? url : urlptr, " HTTP/1.1" CRLF,
- NULL);
+ NULL);
#ifdef EAPI
{
int rc = DECLINED;
@@ -356,43 +363,68 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
if (conf->viaopt == via_block) {
/* Block all outgoing Via: headers */
ap_table_unset(req_hdrs, "Via");
- } else if (conf->viaopt != via_off) {
+ }
+ else if (conf->viaopt != via_off) {
/* Create a "Via:" request header entry and merge it */
i = ap_get_server_port(r);
- if (ap_is_default_port(i,r)) {
- strcpy(portstr,"");
- } else {
+ if (ap_is_default_port(i, r)) {
+ strcpy(portstr, "");
+ }
+ else {
ap_snprintf(portstr, sizeof portstr, ":%d", i);
}
/* Generate outgoing Via: header with/without server comment: */
ap_table_mergen(req_hdrs, "Via",
- (conf->viaopt == via_full)
+ (conf->viaopt == via_full)
? ap_psprintf(p, "%d.%d %s%s (%s)",
- HTTP_VERSION_MAJOR(r->proto_num),
- HTTP_VERSION_MINOR(r->proto_num),
- ap_get_server_name(r), portstr,
- SERVER_BASEVERSION)
+ HTTP_VERSION_MAJOR(r->proto_num),
+ HTTP_VERSION_MINOR(r->proto_num),
+ ap_get_server_name(r), portstr,
+ SERVER_BASEVERSION)
: ap_psprintf(p, "%d.%d %s%s",
- HTTP_VERSION_MAJOR(r->proto_num),
- HTTP_VERSION_MINOR(r->proto_num),
- ap_get_server_name(r), portstr)
- );
+ HTTP_VERSION_MAJOR(r->proto_num),
+ HTTP_VERSION_MINOR(r->proto_num),
+ ap_get_server_name(r), portstr)
+ );
}
- /* Add X-Forwarded-For: so that the upstream has a chance to
- determine, where the original request came from. */
- ap_table_mergen(req_hdrs, "X-Forwarded-For", r->connection->remote_ip);
-
+ /* the X-* headers are only added if we are a reverse
+ * proxy, otherwise we would be giving away private information.
+ */
+ if (r->proxyreq == PROXY_PASS) {
+ const char *buf;
+
+ /*
+ * Add X-Forwarded-For: so that the upstream has a chance to determine,
+ * where the original request came from.
+ */
+ ap_table_mergen(req_hdrs, "X-Forwarded-For", r->connection->remote_ip);
+
+ /* Add X-Forwarded-Host: so that upstream knows what the
+ * original request hostname was.
+ */
+ if ((buf = ap_table_get(r->headers_in, "Host"))) {
+ ap_table_mergen(req_hdrs, "X-Forwarded-Host", buf);
+ }
+
+ /* Add X-Forwarded-Server: so that upstream knows what the
+ * name of this proxy server is (if there are more than one)
+ * XXX: This duplicates Via: - do we strictly need it?
+ */
+ ap_table_mergen(req_hdrs, "X-Forwarded-Server", r->server->server_hostname);
+ }
+
/* we don't yet support keepalives - but we will soon, I promise! */
ap_table_set(req_hdrs, "Connection", "close");
reqhdrs_arr = ap_table_elts(req_hdrs);
- reqhdrs_elts = (table_entry *) reqhdrs_arr->elts;
+ reqhdrs_elts = (table_entry *)reqhdrs_arr->elts;
for (i = 0; i < reqhdrs_arr->nelts; i++) {
if (reqhdrs_elts[i].key == NULL || reqhdrs_elts[i].val == NULL
- /* Clear out hop-by-hop request headers not to send:
- * RFC2616 13.5.1 says we should strip these headers:
+ /*
+ * Clear out hop-by-hop request headers not to send: RFC2616 13.5.1
+ * says we should strip these headers:
*/
|| !strcasecmp(reqhdrs_elts[i].key, "Host") /* Already sent */
|| !strcasecmp(reqhdrs_elts[i].key, "Keep-Alive")
@@ -400,16 +432,16 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
|| !strcasecmp(reqhdrs_elts[i].key, "Trailer")
|| !strcasecmp(reqhdrs_elts[i].key, "Transfer-Encoding")
|| !strcasecmp(reqhdrs_elts[i].key, "Upgrade")
-
- /* XXX: @@@ FIXME: "Proxy-Authorization" should *only* be
- * suppressed if THIS server requested the authentication,
- * not when a frontend proxy requested it!
- *
- * The solution to this problem is probably to strip out
- * the Proxy-Authorisation header in the authorisation
- * code itself, not here. This saves us having to signal
- * somehow whether this request was authenticated or not.
- */
+ /*
+ * XXX: @@@ FIXME: "Proxy-Authorization" should *only* be suppressed
+ * if THIS server requested the authentication, not when a frontend
+ * proxy requested it!
+ *
+ * The solution to this problem is probably to strip out the
+ * Proxy-Authorisation header in the authorisation code itself, not
+ * here. This saves us having to signal somehow whether this request
+ * was authenticated or not.
+ */
|| !strcasecmp(reqhdrs_elts[i].key, "Proxy-Authorization"))
continue;
ap_bvputs(f, reqhdrs_elts[i].key, ": ", reqhdrs_elts[i].val, CRLF, NULL);
@@ -418,105 +450,124 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
/* the obligatory empty line to mark the end of the headers */
ap_bputs(CRLF, f);
- /* send the request data, if any. */
- if (ap_should_client_block(r)) {
- while ((i = ap_get_client_block(r, buffer, sizeof buffer)) > 0)
- ap_bwrite(f, buffer, i);
- }
+ /* and flush the above away */
ap_bflush(f);
+
+ /* and kill the send timeout */
ap_kill_timeout(r);
- /* Right - now it's time to listen for a response.
+ /* read the request data, and pass it to the backend.
+ * we might encounter a stray 100-continue reponse from a PUT or POST,
+ * if this happens we ignore the 100 continue status line and read the
+ * response again.
*/
- ap_hard_timeout("proxy receive", r);
-
- len = ap_bgets(buffer, sizeof buffer - 1, f);
- if (len == -1) {
- ap_bclose(f);
+ {
+ /* send the request data, if any. */
+ ap_hard_timeout("proxy receive request data", r);
+ if (ap_should_client_block(r)) {
+ while ((i = ap_get_client_block(r, buffer, sizeof buffer)) > 0) {
+ ap_reset_timeout(r);
+ ap_bwrite(f, buffer, i);
+ }
+ }
+ ap_bflush(f);
ap_kill_timeout(r);
- ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "ap_bgets() - proxy receive - Error reading from remote server %s (length %d)",
- proxyhost ? proxyhost : desthost, len);
- return ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Error reading from remote server");
- } else if (len == 0) {
- ap_bclose(f);
+
+
+ /* then, read a response line */
+ ap_hard_timeout("proxy receive response status line", r);
+ result = ap_proxy_read_response_line(f, r, buffer, sizeof(buffer)-1, &backasswards, &major, &minor);
ap_kill_timeout(r);
- return ap_proxyerror(r, HTTP_BAD_GATEWAY,
- "Document contains no data");
- }
- /* Is it an HTTP/1 response?
- * Do some sanity checks on the response.
- * (This is buggy if we ever see an HTTP/1.10)
- */
- if (ap_checkmask(buffer, "HTTP/#.# ###*")) {
- int major, minor;
- if (2 != sscanf(buffer, "HTTP/%u.%u", &major, &minor)) {
- /* if no response, default to HTTP/1.1 - is this correct? */
- major = 1;
- minor = 1;
+ /* trap any errors */
+ if (result != OK) {
+ ap_bclose(f);
+ return result;
}
- /* If not an HTTP/1 message or if the status line was > 8192 bytes */
- if (buffer[5] != '1' || buffer[len - 1] != '\n') {
- ap_bclose(f);
+ /* if this response was 100-continue, a stray response has been caught.
+ * read the line again for the real response
+ */
+ if (r->status == 100) {
+ ap_hard_timeout("proxy receive response status line", r);
+ result = ap_proxy_read_response_line(f, r, buffer, sizeof(buffer)-1, &backasswards, &major, &minor);
ap_kill_timeout(r);
- return HTTP_BAD_GATEWAY;
+
+ /* trap any errors */
+ if (result != OK) {
+ ap_bclose(f);
+ return result;
+ }
}
- backasswards = 0;
- buffer[--len] = '\0';
+ }
- buffer[12] = '\0';
- r->status = atoi(&buffer[9]);
- buffer[12] = ' ';
- r->status_line = ap_pstrdup(p, &buffer[9]);
+
+ /*
+ * We have our response status line from the convoluted code above,
+ * now we read the headers to continue.
+ */
+ ap_hard_timeout("proxy receive response headers", r);
+
+ /*
+ * Is it an HTTP/1 response? Do some sanity checks on the response. (This
+ * is buggy if we ever see an HTTP/1.10)
+ */
+ if (backasswards == 0) {
/* read the response headers. */
/* N.B. for HTTP/1.0 clients, we have to fold line-wrapped headers */
/* Also, take care with headers with multiple occurences. */
- resp_hdrs = ap_proxy_read_headers(r, buffer, HUGE_STRING_LEN, f);
+ resp_hdrs = ap_proxy_read_headers(r, buffer, sizeof(buffer), f);
if (resp_hdrs == NULL) {
- ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, r->server,
- "proxy: Bad HTTP/%d.%d header returned by %s (%s)",
- major, minor, r->uri, r->method);
+ ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, r->server,
+ "proxy: Bad HTTP/%d.%d header returned by %s (%s)",
+ major, minor, r->uri, r->method);
resp_hdrs = ap_make_table(p, 20);
- nocache = 1; /* do not cache this broken file */
+ nocache = 1; /* do not cache this broken file */
}
/* handle Via header in the response */
if (conf->viaopt != via_off && conf->viaopt != via_block) {
/* Create a "Via:" response header entry and merge it */
i = ap_get_server_port(r);
- if (ap_is_default_port(i,r)) {
- strcpy(portstr,"");
- } else {
+ if (ap_is_default_port(i, r)) {
+ strcpy(portstr, "");
+ }
+ else {
ap_snprintf(portstr, sizeof portstr, ":%d", i);
}
ap_table_mergen((table *)resp_hdrs, "Via",
(conf->viaopt == via_full)
? ap_psprintf(p, "%d.%d %s%s (%s)",
- major, minor,
- ap_get_server_name(r), portstr,
- SERVER_BASEVERSION)
+ major, minor,
+ ap_get_server_name(r), portstr,
+ SERVER_BASEVERSION)
: ap_psprintf(p, "%d.%d %s%s",
- major, minor,
- ap_get_server_name(r), portstr)
- );
+ major, minor,
+ ap_get_server_name(r), portstr)
+ );
}
- /* strip hop-by-hop headers defined by Connection */
+ /* is this content chunked? */
+ chunked = ap_find_last_token(r->pool,
+ ap_table_get(resp_hdrs, "Transfer-Encoding"),
+ "chunked");
+
+ /* strip hop-by-hop headers defined by Connection and RFC2616 */
ap_proxy_clear_connection(p, resp_hdrs);
+
+ content_length = ap_table_get(resp_hdrs, "Content-Length");
+ if (content_length != NULL) {
+ c->len = ap_strtol(content_length, NULL, 10);
+ }
+
/* Now add out bound headers set by other modules */
resp_hdrs = ap_overlay_tables(r->pool, r->err_headers_out, resp_hdrs);
-}
+ }
else {
/* an http/0.9 response */
- backasswards = 1;
- r->status = 200;
- r->status_line = "200 OK";
/* no headers */
resp_hdrs = ap_make_table(p, 20);
@@ -525,10 +576,11 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
ap_kill_timeout(r);
/*
- * HTTP/1.1 requires us to accept 3 types of dates, but only generate
- * one type
+ * HTTP/1.1 requires us to accept 3 types of dates, but only generate one
+ * type
*/
- /* we SET the dates here, obliterating possible multiple dates, as only
+ /*
+ * we SET the dates here, obliterating possible multiple dates, as only
* one of each date makes sense in each response.
*/
if ((datestr = ap_table_get(resp_hdrs, "Date")) != NULL)
@@ -540,72 +592,82 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
/* handle the ProxyPassReverse mappings */
if ((urlstr = ap_table_get(resp_hdrs, "Location")) != NULL)
- ap_table_set(resp_hdrs, "Location", proxy_location_reverse_map(r, urlstr));
+ ap_table_set(resp_hdrs, "Location", proxy_location_reverse_map(r, urlstr));
if ((urlstr = ap_table_get(resp_hdrs, "URI")) != NULL)
- ap_table_set(resp_hdrs, "URI", proxy_location_reverse_map(r, urlstr));
+ ap_table_set(resp_hdrs, "URI", proxy_location_reverse_map(r, urlstr));
if ((urlstr = ap_table_get(resp_hdrs, "Content-Location")) != NULL)
- ap_table_set(resp_hdrs, "Content-Location", proxy_location_reverse_map(r , urlstr));
+ ap_table_set(resp_hdrs, "Content-Location", proxy_location_reverse_map(r, urlstr));
/* check if NoCache directive on this host */
if (nocache == 0) {
for (i = 0; i < conf->nocaches->nelts; i++) {
if (destaddr.s_addr == ncent[i].addr.s_addr ||
(ncent[i].name != NULL &&
- (ncent[i].name[0] == '*' ||
- strstr(desthost, ncent[i].name) != NULL))) {
- nocache = 1;
- break;
+ (ncent[i].name[0] == '*' ||
+ strstr(desthost, ncent[i].name) != NULL))) {
+ nocache = 1;
+ break;
}
}
- /* update the cache file, possibly even fulfilling the request if
- * it turns out a conditional allowed us to serve the object from the
- * cache...
- */
- i = ap_proxy_cache_update(c, resp_hdrs, !backasswards, nocache);
- if (i != DECLINED) {
- ap_bclose(f);
- return i;
- }
+ /*
+ * update the cache file, possibly even fulfilling the request if it
+ * turns out a conditional allowed us to serve the object from the
+ * cache...
+ */
+ i = ap_proxy_cache_update(c, resp_hdrs, !backasswards, nocache);
+ if (i != DECLINED) {
+ ap_bclose(f);
+ return i;
+ }
/* write status line and headers to the cache file */
ap_proxy_write_headers(c, ap_pstrcat(p, "HTTP/1.1 ", r->status_line, NULL), resp_hdrs);
}
/* Setup the headers for our client from upstreams response-headers */
- ap_overlap_tables(r->headers_out, resp_hdrs, AP_OVERLAP_TABLES_SET);
+ ap_proxy_table_replace(r->headers_out, resp_hdrs);
/* Add X-Cache header - be careful not to obliterate any upstream headers */
ap_table_mergen(r->headers_out, "X-Cache",
- ap_pstrcat(r->pool, "MISS from ",
- ap_get_server_name(r), NULL));
+ ap_pstrcat(r->pool, "MISS from ",
+ ap_get_server_name(r), NULL));
/* The Content-Type of this response is the upstream one. */
- r->content_type = ap_table_get (r->headers_out, "Content-Type");
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "Content-Type: %s", r->content_type);
+ r->content_type = ap_table_get(r->headers_out, "Content-Type");
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "Content-Type: %s", r->content_type);
/* finally output the headers to the client */
ap_send_http_header(r);
- /* Is it an HTTP/0.9 respose? If so, send the extra data we read
- from upstream as the start of the reponse to client */
+ /*
+ * Is it an HTTP/0.9 respose? If so, send the extra data we read from
+ * upstream as the start of the reponse to client
+ */
+/* FIXME: This code is broken: we try and write a buffer and length that
+ * were never intelligently initialised. Rather have a bit of broken protocol
+ * handling for now than broken code.
+ */
+/*
if (backasswards) {
ap_hard_timeout("proxy send assbackward", r);
ap_bwrite(r->connection->client, buffer, len);
if (c != NULL && c->fp != NULL && ap_bwrite(c->fp, buffer, len) != len) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error writing extra data to %s", c->tempfile);
+ "proxy: error writing extra data to %s", c->tempfile);
c = ap_proxy_cache_error(c);
}
ap_kill_timeout(r);
}
-
+*/
#ifdef CHARSET_EBCDIC
- /* What we read/write after the header should not be modified
- * (i.e., the cache copy is ASCII, not EBCDIC, even for text/html)
+ /*
+ * What we read/write after the header should not be modified (i.e., the
+ * cache copy is ASCII, not EBCDIC, even for text/html)
*/
- ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
- ap_bsetflag(r->connection->client, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
+ r->ebcdic.conv_in = r->ebcdic.conv_out = 0;
+ ap_bsetflag(f, B_ASCII2EBCDIC | B_EBCDIC2ASCII, 0);
+ ap_bsetflag(r->connection->client, B_ASCII2EBCDIC | B_EBCDIC2ASCII, 0);
#endif
/* send body */
@@ -621,7 +683,7 @@ int ap_proxy_http_handler(request_rec *r, cache_req *c, char *url,
* content length is not known. We need to make 100% sure c->len is always
* set correctly before we get here to correctly do keepalive.
*/
- ap_proxy_send_fb(f, r, c, c->len, 0, conf->io_buffer_size);
+ ap_proxy_send_fb(f, r, c, c->len, 0, chunked, conf->io_buffer_size);
}
/* ap_proxy_send_fb() closes the socket f for us */
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_util.c b/usr.sbin/httpd/src/modules/proxy/proxy_util.c
index 0863019dd7b..d350412e938 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_util.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_util.c
@@ -63,7 +63,7 @@
#include "multithread.h"
#include "http_log.h"
#include "util_uri.h"
-#include "util_date.h" /* get ap_checkmask() decl. */
+#include "util_date.h" /* get ap_checkmask() decl. */
static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r);
static int proxy_match_domainname(struct dirconn_entry *This, request_rec *r);
@@ -73,9 +73,10 @@ static struct per_thread_data *get_per_thread_data(void);
/* already called in the knowledge that the characters are hex digits */
int ap_proxy_hex2c(const char *x)
{
- int i, ch;
-
+ int i;
#ifndef CHARSET_EBCDIC
+ int ch;
+
ch = x[0];
if (ap_isdigit(ch))
i = ch - '0';
@@ -93,9 +94,9 @@ int ap_proxy_hex2c(const char *x)
else
i += ch - ('a' - 10);
return i;
-#else /*CHARSET_EBCDIC*/
- return (1 == sscanf(x, "%2x", &i)) ? os_toebcdic[i&0xFF] : 0;
-#endif /*CHARSET_EBCDIC*/
+#else /* CHARSET_EBCDIC */
+ return (1 == sscanf(x, "%2x", &i)) ? os_toebcdic[i & 0xFF] : 0;
+#endif /* CHARSET_EBCDIC */
}
void ap_proxy_c2hex(int ch, char *x)
@@ -115,14 +116,14 @@ void ap_proxy_c2hex(int ch, char *x)
x[2] = ('A' - 10) + i;
else
x[2] = '0' + i;
-#else /*CHARSET_EBCDIC*/
- static const char ntoa[] = { "0123456789ABCDEF" };
+#else /* CHARSET_EBCDIC */
+ static const char ntoa[] = {"0123456789ABCDEF"};
ch = os_toascii[ch & 0xFF];
x[0] = '%';
- x[1] = ntoa[(ch>>4)&0x0F];
- x[2] = ntoa[ch&0x0F];
+ x[1] = ntoa[(ch >> 4) & 0x0F];
+ x[2] = ntoa[ch & 0x0F];
x[3] = '\0';
-#endif /*CHARSET_EBCDIC*/
+#endif /* CHARSET_EBCDIC */
}
/*
@@ -136,7 +137,7 @@ void ap_proxy_c2hex(int ch, char *x)
* those which must not be touched.
*/
char *ap_proxy_canonenc(pool *p, const char *x, int len, enum enctype t,
- enum proxyreqtype isenc)
+ enum proxyreqtype isenc)
{
int i, j, ch;
char *y;
@@ -145,7 +146,7 @@ char *ap_proxy_canonenc(pool *p, const char *x, int len, enum enctype t,
/* N.B. in addition to :@&=, this allows ';' in an http path
* and '?' in an ftp path -- this may be revised
- *
+ *
* Also, it makes a '+' character in a search string reserved, as
* it may be form-encoded. (Although RFC 1738 doesn't allow this -
* it only permits ; / ? : @ = & as reserved chars.)
@@ -213,7 +214,7 @@ char *ap_proxy_canonenc(pool *p, const char *x, int len, enum enctype t,
*/
char *
ap_proxy_canon_netloc(pool *p, char **const urlp, char **userp,
- char **passwordp, char **hostp, int *port)
+ char **passwordp, char **hostp, int *port)
{
int i;
char *strp, *host, *url = *urlp;
@@ -267,13 +268,14 @@ char *
/* if (i == 0) the no port was given; keep default */
if (strp[i] != '\0') {
return "Bad port number in URL";
- } else if (i > 0) {
+ }
+ else if (i > 0) {
*port = atoi(strp);
if (*port > 65535)
return "Port number in URL > 65535";
}
}
- ap_str_tolower(host); /* DNS names are case-insensitive */
+ ap_str_tolower(host); /* DNS names are case-insensitive */
if (*host == '\0')
return "Missing host in URL";
/* check hostname syntax */
@@ -299,7 +301,7 @@ char *
return NULL;
}
-static const char * const lwday[7] =
+static const char *const lwday[7] =
{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
/*
@@ -365,63 +367,6 @@ const char *
}
-/* NOTE: This routine is taken from http_protocol::getline()
- * because the old code found in the proxy module was too
- * difficult to understand and maintain.
- */
-/* Get a line of protocol input, including any continuation lines
- * caused by MIME folding (or broken clients) if fold != 0, and place it
- * in the buffer s, of size n bytes, without the ending newline.
- *
- * Returns -1 on error, or the length of s.
- *
- * Note: Because bgets uses 1 char for newline and 1 char for NUL,
- * the most we can get is (n - 2) actual characters if it
- * was ended by a newline, or (n - 1) characters if the line
- * length exceeded (n - 1). So, if the result == (n - 1),
- * then the actual input line exceeded the buffer length,
- * and it would be a good idea for the caller to puke 400 or 414.
- */
-static int proxy_getline(char *s, int n, BUFF *in, int fold)
-{
- char *pos, next;
- int retval;
- int total = 0;
-
- pos = s;
-
- do {
- retval = ap_bgets(pos, n, in); /* retval == -1 if error, 0 if EOF */
-
- if (retval <= 0)
- return ((retval < 0) && (total == 0)) ? -1 : total;
-
- /* retval is the number of characters read, not including NUL */
-
- n -= retval; /* Keep track of how much of s is full */
- pos += (retval - 1); /* and where s ends */
- total += retval; /* and how long s has become */
-
- if (*pos == '\n') { /* Did we get a full line of input? */
- *pos = '\0';
- --total;
- ++n;
- }
- else
- return total; /* if not, input line exceeded buffer size */
-
- /* Continue appending if line folding is desired and
- * the last line was not empty and we have room in the buffer and
- * the next line begins with a continuation character.
- */
- } while (fold && (retval != 1) && (n > 1)
- && (ap_blookc(&next, in) == 1)
- && ((next == ' ') || (next == '\t')));
-
- return total;
-}
-
-
/*
* Reads headers from a buffer and returns an array of headers.
* Returns NULL on file error
@@ -445,72 +390,80 @@ table *ap_proxy_read_headers(request_rec *r, char *buffer, int size, BUFF *f)
* Read header lines until we get the empty separator line, a read error,
* the connection closes (EOF), or we timeout.
*/
- while ((len = proxy_getline(buffer, size, f, 1)) > 0) {
-
- if (!(value = strchr(buffer, ':'))) { /* Find the colon separator */
+ while ((len = ap_getline(buffer, size, f, 1)) > 0) {
- /* Buggy MS IIS servers sometimes return invalid headers
- * (an extra "HTTP/1.0 200, OK" line sprinkled in between
- * the usual MIME headers). Try to deal with it in a sensible
- * way, but log the fact.
- * XXX: The mask check is buggy if we ever see an HTTP/1.10 */
+ if (!(value = strchr(buffer, ':'))) { /* Find the colon separator */
+
+ /*
+ * Buggy MS IIS servers sometimes return invalid headers (an
+ * extra "HTTP/1.0 200, OK" line sprinkled in between the usual
+ * MIME headers). Try to deal with it in a sensible way, but log
+ * the fact. XXX: The mask check is buggy if we ever see an
+ * HTTP/1.10
+ */
if (!ap_checkmask(buffer, "HTTP/#.# ###*")) {
/* Nope, it wasn't even an extra HTTP header. Give up. */
return NULL;
}
- ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, r->server,
- "proxy: Ignoring duplicate HTTP header "
- "returned by %s (%s)", r->uri, r->method);
+ ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, r->server,
+ "proxy: Ignoring duplicate HTTP status line "
+ "returned by buggy server %s (%s)", r->uri, r->method);
continue;
}
*value = '\0';
++value;
- /* XXX: RFC2068 defines only SP and HT as whitespace, this test is
+ /*
+ * XXX: RFC2068 defines only SP and HT as whitespace, this test is
* wrong... and so are many others probably.
*/
while (ap_isspace(*value))
++value; /* Skip to start of value */
/* should strip trailing whitespace as well */
- for (end = &value[strlen(value)-1]; end > value && ap_isspace(*end); --end)
+ for (end = &value[strlen(value) - 1]; end > value && ap_isspace(*end); --end)
*end = '\0';
/* make sure we add so as not to destroy duplicated headers */
ap_table_add(resp_hdrs, buffer, value);
/* the header was too long; at the least we should skip extra data */
- if (len >= size - 1) {
- while ((len = proxy_getline(field, MAX_STRING_LEN, f, 1))
- >= MAX_STRING_LEN - 1) {
+ if (len >= size - 1) {
+ while ((len = ap_getline(field, MAX_STRING_LEN, f, 1))
+ >= MAX_STRING_LEN - 1) {
/* soak up the extra data */
}
- if (len == 0) /* time to exit the larger loop as well */
+ if (len == 0) /* time to exit the larger loop as well */
break;
}
}
return resp_hdrs;
}
-/* read data from f, write it to:
+/* read data from (socket BUFF*) f, write it to:
* - c->fp, if it is open
* - r->connection->client, if nowrite == 0
*/
-long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, size_t recv_buffer_size)
+long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, int chunked, size_t recv_buffer_size)
{
- int ok;
+ int ok, end_of_chunk;
char *buf;
size_t buf_size;
+ long remaining = 0;
long total_bytes_rcvd;
- register int n, o, w;
+ register int n = 0, o, w;
conn_rec *con = r->connection;
- int alternate_timeouts = 1; /* 1 if we alternate between soft & hard timeouts */
+ int alternate_timeouts = 1; /* 1 if we alternate between soft & hard
+ * timeouts */
/* allocate a buffer to store the bytes in */
- /* make sure it is at least IOBUFSIZE, as recv_buffer_size may be zero for system default */
+ /*
+ * make sure it is at least IOBUFSIZE, as recv_buffer_size may be zero
+ * for system default
+ */
buf_size = MAX(recv_buffer_size, IOBUFSIZE);
buf = ap_palloc(r->pool, buf_size);
@@ -520,15 +473,14 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
#ifdef CHARSET_EBCDIC
/* The cache copy is ASCII, not EBCDIC, even for text/html) */
- ap_bsetflag(f, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
- if (c != NULL && c->fp != NULL)
- ap_bsetflag(c->fp, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
- ap_bsetflag(con->client, B_ASCII2EBCDIC|B_EBCDIC2ASCII, 0);
+ ap_bsetflag(f, B_ASCII2EBCDIC | B_EBCDIC2ASCII, 0);
+ ap_bsetflag(con->client, B_ASCII2EBCDIC | B_EBCDIC2ASCII, 0);
#endif
- /* Since we are reading from one buffer and writing to another,
- * it is unsafe to do a soft_timeout here, at least until the proxy
- * has its own timeout handler which can set both buffers to EOUT.
+ /*
+ * Since we are reading from one buffer and writing to another, it is
+ * unsafe to do a soft_timeout here, at least until the proxy has its own
+ * timeout handler which can set both buffers to EOUT.
*/
ap_kill_timeout(r);
@@ -538,12 +490,13 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
ap_hard_timeout("proxy send body", r);
alternate_timeouts = 0;
#else
- /* CHECKME! Since hard_timeout won't work in unix on sends with partial
- * cache completion, we have to alternate between hard_timeout
- * for reads, and soft_timeout for send. This is because we need
- * to get a return from ap_bwrite to be able to continue caching.
- * BUT, if we *can't* continue anyway, just use hard_timeout.
- * (Also, if no cache file is written, use hard timeouts)
+ /*
+ * CHECKME! Since hard_timeout won't work in unix on sends with partial
+ * cache completion, we have to alternate between hard_timeout for reads,
+ * and soft_timeout for send. This is because we need to get a return
+ * from ap_bwrite to be able to continue caching. BUT, if we *can't*
+ * continue anyway, just use hard_timeout. (Also, if no cache file is
+ * written, use hard timeouts)
*/
if (c == NULL || c->len <= 0 || c->cache_completion == 1.0) {
@@ -552,22 +505,98 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
}
#endif
- /* Loop and ap_bread() while we can successfully read and write,
- * or (after the client aborted) while we can successfully
- * read and finish the configured cache_completion.
+ /*
+ * Loop and ap_bread() while we can successfully read and write, or
+ * (after the client aborted) while we can successfully read and finish
+ * the configured cache_completion.
*/
- for (ok = 1; ok; ) {
+ for (end_of_chunk = ok = 1; ok;) {
if (alternate_timeouts)
ap_hard_timeout("proxy recv body from upstream server", r);
- /* Read block from server */
- if (-1 == len) {
- n = ap_bread(f, buf, buf_size);
+
+ /* read a chunked block */
+ if (chunked) {
+ long chunk_start = 0;
+ n = 0;
+
+ /* start of a new chunk */
+ if (end_of_chunk) {
+ end_of_chunk = 0;
+ /* get the chunk size from the stream */
+ chunk_start = ap_getline(buf, buf_size, f, 0);
+ if ((chunk_start <= 0) || ((size_t)chunk_start + 1 >= buf_size) || !ap_isxdigit(*buf)) {
+ n = -1;
+ }
+ /* parse the chunk size */
+ else {
+ remaining = ap_get_chunk_size(buf);
+ if (remaining == 0) { /* Last chunk indicated, get footers */
+ /* as we are a proxy, we discard the footers, as the headers
+ * have already been sent at this point.
+ */
+ if (NULL == ap_proxy_read_headers(r, buf, buf_size, f)) {
+ n = -1;
+ }
+ }
+ else if (remaining < 0) {
+ n = -1;
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r,
+ "proxy: remote protocol error, invalid chunk size");
+
+ }
+ }
+ }
+
+ /* read the chunk */
+ if (remaining > 0) {
+ n = ap_bread(f, buf, MIN((int)buf_size, (int)remaining));
+ if (n > -1) {
+ remaining -= n;
+ end_of_chunk = (remaining == 0);
+ }
+ }
+
+ /* soak up trailing CRLF */
+ if (end_of_chunk) {
+ int ch; /* int because it may hold an EOF */
+ /*
+ * For EBCDIC, the proxy has configured the BUFF layer to
+ * transparently pass the ascii characters thru (also writing
+ * an ASCII copy to the cache, where appropriate).
+ * Therefore, we see here an ASCII-CRLF (\015\012),
+ * not an EBCDIC-CRLF (\r\n).
+ */
+ if ((ch = ap_bgetc(f)) == EOF) {
+ /* Protocol error: EOF detected within chunk */
+ n = -1;
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r,
+ "proxy: remote protocol error, eof while reading chunked from proxy");
+ }
+ else
+ {
+ if (ch == '\015') { /* _ASCII_ CR */
+ ch = ap_bgetc(f);
+ }
+ if (ch != '\012') {
+ n = -1;
+ }
+ }
+ }
}
+
+ /* otherwise read block normally */
else {
- n = ap_bread(f, buf, MIN((off_t)buf_size, len - total_bytes_rcvd));
+ if (-1 == len) {
+ n = ap_bread(f, buf, buf_size);
+ }
+ else {
+ n = ap_bread(f, buf, MIN((int)buf_size,
+ (int)(len - total_bytes_rcvd)));
+ }
}
+
if (alternate_timeouts)
ap_kill_timeout(r);
else
@@ -576,22 +605,23 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
if (n == -1) { /* input error */
if (c != NULL) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error reading from %s", c->url);
+ "proxy: error reading from %s", c->url);
c = ap_proxy_cache_error(c);
}
break;
}
if (n == 0)
- break; /* EOF */
+ break; /* EOF */
o = 0;
total_bytes_rcvd += n;
/* if we've received everything... */
- /* in the case of slow frontends and expensive backends,
- * we want to avoid leaving a backend connection hanging
- * while the frontend takes it's time to absorb the bytes.
- * so: if we just read the last block, we close the backend
- * connection now instead of later - it's no longer needed.
+ /*
+ * in the case of slow frontends and expensive backends, we want to
+ * avoid leaving a backend connection hanging while the frontend
+ * takes it's time to absorb the bytes. so: if we just read the last
+ * block, we close the backend connection now instead of later - it's
+ * no longer needed.
*/
if (total_bytes_rcvd == len) {
ap_bclose(f);
@@ -599,13 +629,17 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
}
/* Write to cache first. */
- /*@@@ XXX FIXME: Assuming that writing the cache file won't time out?!!? */
+ /*
+ * @@@ XXX FIXME: Assuming that writing the cache file won't time
+ * out?!!?
+ */
if (c != NULL && c->fp != NULL) {
if (ap_bwrite(c->fp, &buf[0], n) != n) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error writing to %s", c->tempfile);
+ "proxy: error writing to %s", c->tempfile);
c = ap_proxy_cache_error(c);
- } else {
+ }
+ else {
c->written += n;
}
}
@@ -624,18 +658,19 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
if (w <= 0) {
if (c != NULL) {
- /* when a send failure occurs, we need to decide
- * whether to continue loading and caching the
- * document, or to abort the whole thing
+ /*
+ * when a send failure occurs, we need to decide whether
+ * to continue loading and caching the document, or to
+ * abort the whole thing
*/
ok = (c->len > 0) &&
- (c->cache_completion > 0) &&
- (c->len * c->cache_completion < total_bytes_rcvd);
+ (c->cache_completion > 0) &&
+ (c->len * c->cache_completion < total_bytes_rcvd);
- if (! ok) {
- if (c->fp!=NULL) {
- ap_pclosef(c->req->pool, ap_bfileno(c->fp, B_WR));
- c->fp = NULL;
+ if (!ok) {
+ if (c->fp != NULL) {
+ ap_pclosef(c->req->pool, ap_bfileno(c->fp, B_WR));
+ c->fp = NULL;
}
unlink(c->tempfile);
c = NULL;
@@ -646,13 +681,13 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
}
n -= w;
o += w;
- } /* while client alive and more data to send */
+ } /* while client alive and more data to send */
/* if we've received everything, leave now */
if (total_bytes_rcvd == len)
break;
- } /* loop and ap_bread while "ok" */
+ } /* loop and ap_bread while "ok" */
/* if the backend connection is still open, close it */
if (f) {
@@ -664,6 +699,9 @@ long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int
}
ap_kill_timeout(r);
+
+ r->bytes_sent += total_bytes_rcvd;
+
return total_bytes_rcvd;
}
@@ -677,11 +715,11 @@ void ap_proxy_write_headers(cache_req *c, const char *respline, table *t)
/* write status line */
if (respline && c->fp != NULL &&
ap_bvputs(c->fp, respline, CRLF, NULL) == -1) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error writing status line to %s", c->tempfile);
- c = ap_proxy_cache_error(c);
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
+ "proxy: error writing status line to %s", c->tempfile);
+ c = ap_proxy_cache_error(c);
return;
- }
+ }
/* write response headers to the cache file */
ap_table_do(ap_proxy_send_hdr_line, c, t, NULL);
@@ -706,7 +744,7 @@ int ap_proxy_liststr(const char *list, const char *key, char **val)
int len, i;
const char *p;
char valbuf[HUGE_STRING_LEN];
- valbuf[sizeof(valbuf)-1] = 0; /* safety terminating zero */
+ valbuf[sizeof(valbuf) - 1] = 0; /* safety terminating zero */
len = strlen(key);
@@ -734,7 +772,7 @@ int ap_proxy_liststr(const char *list, const char *key, char **val)
while (ap_isspace(*list)) {
list++;
}
- strncpy(valbuf, list, MIN(p-list, sizeof(valbuf)-1));
+ strncpy(valbuf, list, MIN(p - list, sizeof(valbuf) - 1));
*val = valbuf;
}
return 1;
@@ -760,7 +798,7 @@ void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength)
static const char enc_table[32] = "abcdefghijklmnopqrstuvwxyz012345";
ap_MD5Init(&context);
- ap_MD5Update(&context, (const unsigned char *) it, strlen(it));
+ ap_MD5Update(&context, (const unsigned char *)it, strlen(it));
ap_MD5Final(digest, &context);
/* encode 128 bits as 26 characters, using a modified uuencoding */
@@ -805,17 +843,19 @@ void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength)
int i, k, d;
unsigned int x;
#if defined(MPE) || (defined(AIX) && defined(__ps2__))
- /* Believe it or not, AIX 1.x does not allow you to name a file '@',
- * so hack around it in the encoding. */
+ /*
+ * Believe it or not, AIX 1.x does not allow you to name a file '@', so
+ * hack around it in the encoding.
+ */
static const char enc_table[64] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_%";
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_%";
#else
static const char enc_table[64] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@";
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@";
#endif
ap_MD5Init(&context);
- ap_MD5Update(&context, (const unsigned char *) it, strlen(it));
+ ap_MD5Update(&context, (const unsigned char *)it, strlen(it));
ap_MD5Final(digest, &context);
/* encode 128 bits as 22 characters, using a modified uuencoding */
@@ -831,7 +871,7 @@ void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength)
}
/* one byte left */
x = digest[15];
- tmp[k++] = enc_table[x >> 2]; /* use up 6 bits */
+ tmp[k++] = enc_table[x >> 2]; /* use up 6 bits */
tmp[k++] = enc_table[(x << 4) & 0x3f];
/* now split into directory levels */
@@ -845,7 +885,7 @@ void ap_proxy_hash(const char *it, char *val, int ndepth, int nlength)
val[i + 22 - k] = '\0';
}
-#endif /* CASE_BLIND_FILESYSTEM */
+#endif /* CASE_BLIND_FILESYSTEM */
/*
* Converts 16 hex digits to a time integer
@@ -867,9 +907,9 @@ int ap_proxy_hex2sec(const char *x)
}
/* no longer necessary, as the source hex is 8-byte int */
/* if (j == 0xffffffff)*/
-/* return -1;*/ /* so that it works with 8-byte ints */
+ /* return -1;*//* so that it works with 8-byte ints */
/* else */
- return j;
+ return j;
}
/*
@@ -917,14 +957,14 @@ cache_req *ap_proxy_cache_error(cache_req *c)
int ap_proxyerror(request_rec *r, int statuscode, const char *message)
{
ap_table_setn(r->notes, "error-notes",
- ap_pstrcat(r->pool,
+ ap_pstrcat(r->pool,
"The proxy server could not handle the request "
- "<EM><A HREF=\"", ap_escape_uri(r->pool, r->uri),
+ "<EM><A HREF=\"", ap_escape_uri(r->pool, r->uri),
"\">", ap_escape_html(r->pool, r->method),
- "&nbsp;",
- ap_escape_html(r->pool, r->uri), "</A></EM>.<P>\n"
+ "&nbsp;",
+ ap_escape_html(r->pool, r->uri), "</A></EM>.<P>\n"
"Reason: <STRONG>",
- ap_escape_html(r->pool, message),
+ ap_escape_html(r->pool, message),
"</STRONG>", NULL));
/* Allow "error-notes" string to be printed by ap_send_error_response() */
@@ -938,7 +978,7 @@ int ap_proxyerror(request_rec *r, int statuscode, const char *message)
* This routine returns its own error message
*/
const char *
- ap_proxy_host2addr(const char *host, struct hostent *reqhp)
+ ap_proxy_host2addr(const char *host, struct hostent * reqhp)
{
int i;
struct hostent *hp;
@@ -955,14 +995,14 @@ const char *
}
else {
ptd->ipaddr = ap_inet_addr(host);
- hp = gethostbyaddr((char *) &ptd->ipaddr, sizeof(ptd->ipaddr), AF_INET);
+ hp = gethostbyaddr((char *)&ptd->ipaddr, sizeof(ptd->ipaddr), AF_INET);
if (hp == NULL) {
memset(&ptd->hpbuf, 0, sizeof(ptd->hpbuf));
ptd->hpbuf.h_name = 0;
ptd->hpbuf.h_addrtype = AF_INET;
ptd->hpbuf.h_length = sizeof(ptd->ipaddr);
ptd->hpbuf.h_addr_list = ptd->charpbuf;
- ptd->hpbuf.h_addr_list[0] = (char *) &ptd->ipaddr;
+ ptd->hpbuf.h_addr_list[0] = (char *)&ptd->ipaddr;
ptd->hpbuf.h_addr_list[1] = 0;
hp = &ptd->hpbuf;
}
@@ -985,13 +1025,14 @@ static const char *
|| url[1] != '/' || url[2] != '/')
return NULL;
- url = ap_pstrdup(r->pool, &url[1]); /* make it point to "//", which is what proxy_canon_netloc expects */
+ url = ap_pstrdup(r->pool, &url[1]); /* make it point to "//", which is
+ * what proxy_canon_netloc expects */
err = ap_proxy_canon_netloc(r->pool, &url, &user, &password, &host, &port);
if (err != NULL)
- ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, r,
- "%s", err);
+ ap_log_rerror(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, r,
+ "%s", err);
r->hostname = host;
@@ -1011,9 +1052,12 @@ int ap_proxy_is_ipaddr(struct dirconn_entry *This, pool *p)
/* "partial" addresses (with less than 4 quads) correctly, i.e. */
/* 192.168.123 is parsed as 192.168.0.123, which is not what I want. */
/* I therefore have to parse the IP address manually: */
- /*if (proxy_readmask(This->name, &This->addr.s_addr, &This->mask.s_addr) == 0) */
+ /*
+ * if (proxy_readmask(This->name, &This->addr.s_addr, &This->mask.s_addr)
+ * == 0)
+ */
/* addr and mask were set by proxy_readmask() */
- /*return 1; */
+ /* return 1; */
/* Parse IP addr manually, optionally allowing */
/* abbreviated net addresses like 192.168. */
@@ -1028,7 +1072,7 @@ int ap_proxy_is_ipaddr(struct dirconn_entry *This, pool *p)
if (!ap_isdigit(*addr))
return 0; /* no digit at start of quad */
- ip_addr[quads] = strtol(addr, &tmp, 0);
+ ip_addr[quads] = ap_strtol(addr, &tmp, 0);
if (tmp == addr) /* expected a digit, found something else */
return 0;
@@ -1052,7 +1096,7 @@ int ap_proxy_is_ipaddr(struct dirconn_entry *This, pool *p)
++addr;
- bits = strtol(addr, &tmp, 0);
+ bits = ap_strtol(addr, &tmp, 0);
if (tmp == addr) /* expected a digit, found something else */
return 0;
@@ -1070,7 +1114,10 @@ int ap_proxy_is_ipaddr(struct dirconn_entry *This, pool *p)
while (quads > 0 && ip_addr[quads - 1] == 0)
--quads;
- /* "IP Address should be given in dotted-quad form, optionally followed by a netmask (e.g., 192.168.111.0/24)"; */
+ /*
+ * "IP Address should be given in dotted-quad form, optionally
+ * followed by a netmask (e.g., 192.168.111.0/24)";
+ */
if (quads < 1)
return 0;
@@ -1111,8 +1158,8 @@ static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r)
const char *found;
const char *host = proxy_get_host_of_request(r);
- if (host == NULL) /* oops! */
- return 0;
+ if (host == NULL) /* oops! */
+ return 0;
memset(&addr, '\0', sizeof addr);
memset(ip_addr, '\0', sizeof ip_addr);
@@ -1157,7 +1204,7 @@ static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r)
/* Try to deal with multiple IP addr's for a host */
for (ip_listptr = the_host.h_addr_list; *ip_listptr; ++ip_listptr) {
- ip_list = (struct in_addr *) *ip_listptr;
+ ip_list = (struct in_addr *)*ip_listptr;
if (This->addr.s_addr == (ip_list->s_addr & This->mask.s_addr)) {
#if DEBUGGING
fprintf(stderr, "3)IP-Match: %s[%s] <-> ", found, inet_ntoa(*ip_list));
@@ -1256,7 +1303,7 @@ int ap_proxy_is_hostname(struct dirconn_entry *This, pool *p)
if (addr[i] != '\0' || ap_proxy_host2addr(addr, &host) != NULL)
return 0;
- This->hostentry = ap_pduphostent (p, &host);
+ This->hostentry = ap_pduphostent(p, &host);
/* Strip trailing dots */
for (i = strlen(addr) - 1; i > 0 && addr[i] == '.'; --i)
@@ -1275,7 +1322,7 @@ static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r)
int h1_len;
if (host == NULL || host2 == NULL)
- return 0; /* oops! */
+ return 0; /* oops! */
h2_len = strlen(host2);
h1_len = strlen(host);
@@ -1318,16 +1365,16 @@ int ap_proxy_doconnect(int sock, struct sockaddr_in *addr, request_rec *r)
ap_hard_timeout("proxy connect", r);
do {
- i = connect(sock, (struct sockaddr *) addr, sizeof(struct sockaddr_in));
+ i = connect(sock, (struct sockaddr *)addr, sizeof(struct sockaddr_in));
#if defined(WIN32) || defined(NETWARE)
if (i == SOCKET_ERROR)
errno = WSAGetLastError();
-#endif /* WIN32 */
+#endif /* WIN32 */
} while (i == -1 && errno == EINTR);
if (i == -1) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
- "proxy connect to %s port %d failed",
- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));
+ "proxy connect to %s port %d failed",
+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));
}
ap_kill_timeout(r);
@@ -1342,16 +1389,17 @@ int ap_proxy_send_hdr_line(void *p, const char *key, const char *value)
{
cache_req *c = (cache_req *)p;
- if (key == NULL || value == NULL || value[0] == '\0')
+ if (key == NULL || value == NULL || value[0] == '\0')
return 1;
- if (c->fp != NULL &&
+ if (c->fp != NULL &&
ap_bvputs(c->fp, key, ": ", value, CRLF, NULL) == -1) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
- "proxy: error writing header to %s", c->tempfile);
- c = ap_proxy_cache_error(c);
- return 0; /* no need to continue, it failed already */
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, c->req,
+ "proxy: error writing header to %s", c->tempfile);
+ c = ap_proxy_cache_error(c);
+ return 0; /* no need to continue, it failed already */
}
- return 1; /* tell ap_table_do() to continue calling us for more headers */
+ return 1; /* tell ap_table_do() to continue calling us
+ * for more headers */
}
/* send a text line to one or two BUFF's; return line length */
@@ -1366,7 +1414,8 @@ unsigned ap_proxy_bputs2(const char *data, BUFF *client, cache_req *cache)
/* do a HTTP/1.1 age calculation */
time_t ap_proxy_current_age(cache_req *c, const time_t age_value)
{
- time_t apparent_age, corrected_received_age, response_delay, corrected_initial_age, resident_time, current_age;
+ time_t apparent_age, corrected_received_age, response_delay, corrected_initial_age,
+ resident_time, current_age;
/* Perform an HTTP/1.1 age calculation. (RFC2616 13.2.3) */
@@ -1398,7 +1447,7 @@ BUFF *ap_proxy_open_cachefile(request_rec *r, char *filename)
"proxy: error opening cache file %s",
filename);
else
- ap_log_error(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r->server, "File %s not found", filename);
+ ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, r->server, "File %s not found", filename);
}
return cachefp;
@@ -1431,21 +1480,45 @@ void ap_proxy_clear_connection(pool *p, table *headers)
const char *name;
char *next = ap_pstrdup(p, ap_table_get(headers, "Connection"));
+ /* Some proxies (Squid, ICS) use the non-standard "Proxy-Connection" header. */
ap_table_unset(headers, "Proxy-Connection");
- if (!next)
- return;
- while (*next) {
- name = next;
- while (*next && !ap_isspace(*next) && (*next != ','))
- ++next;
- while (*next && (ap_isspace(*next) || (*next == ','))) {
- *next = '\0';
- ++next;
+ if (next != NULL) {
+ while (*next) {
+ name = next;
+ while (*next && !ap_isspace(*next) && (*next != ','))
+ ++next;
+ while (*next && (ap_isspace(*next) || (*next == ','))) {
+ *next = '\0';
+ ++next;
+ }
+ ap_table_unset(headers, name);
}
- ap_table_unset(headers, name);
+ ap_table_unset(headers, "Connection");
}
- ap_table_unset(headers, "Connection");
+
+ /* unset hop-by-hop headers defined in RFC2616 13.5.1 */
+ ap_table_unset(headers,"Keep-Alive");
+ /*
+ * XXX: @@@ FIXME: "Proxy-Authenticate" should IMO *not* be stripped
+ * because in a chain of proxies some "front" proxy might need
+ * proxy authentication, while a "back-end" proxy which needs none can
+ * simply pass the "Proxy-Authenticate" back to the client, and pass
+ * the client's "Proxy-Authorization" to the front-end proxy.
+ * (See the note in proxy_http.c for the "Proxy-Authorization" case.)
+ *
+ * MnKr 04/2002
+ */
+ ap_table_unset(headers,"Proxy-Authenticate");
+ ap_table_unset(headers,"TE");
+ ap_table_unset(headers,"Trailer");
+ /* it is safe to just chop the transfer-encoding header
+ * here, because proxy doesn't support any other encodings
+ * to the backend other than chunked.
+ */
+ ap_table_unset(headers,"Transfer-Encoding");
+ ap_table_unset(headers,"Upgrade");
+
}
/* overlay one table on another
@@ -1467,7 +1540,7 @@ void ap_proxy_clear_connection(pool *p, table *headers)
*/
int ap_proxy_table_replace(table *base, table *overlay)
{
- table_entry *elts = (table_entry *) overlay->a.elts;
+ table_entry *elts = (table_entry *)overlay->a.elts;
int i, q = 0;
const char *val;
@@ -1490,54 +1563,96 @@ int ap_proxy_table_replace(table *base, table *overlay)
return q;
}
-/* unmerge an element in the table */
-void ap_proxy_table_unmerge(pool *p, table *t, char *key)
-{
- long int offset = 0;
- long int count = 0;
- char *value = NULL;
+/* read the response line
+ * This function reads a single line of response from the server,
+ * and returns a status code.
+ * It also populates the request_rec with the resultant status, and
+ * returns backasswards status (HTTP/0.9).
+ */
+int ap_proxy_read_response_line(BUFF *f, request_rec *r, char *buffer, int size, int *backasswards, int *major, int *minor) {
- /* get the value to unmerge */
- const char *initial = ap_table_get(t, key);
- if (!initial) {
- return;
+ long len;
+
+ len = ap_getline(buffer, size-1, f, 0);
+ if (len == -1) {
+ ap_bclose(f);
+ ap_kill_timeout(r);
+ return ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Error reading from remote server");
+ }
+ else if (len == 0) {
+ ap_bclose(f);
+ ap_kill_timeout(r);
+ return ap_proxyerror(r, HTTP_BAD_GATEWAY,
+ "Document contains no data");
}
- value = ap_pstrdup(p, initial);
- /* remove the value from the headers */
- ap_table_unset(t, key);
+ /*
+ * Is it an HTTP/1 response? Do some sanity checks on the response. (This
+ * is buggy if we ever see an HTTP/1.10)
+ */
+ if (ap_checkmask(buffer, "HTTP/#.# ###*")) {
- /* find each comma */
- while (value[count]) {
- if (value[count] == ',') {
- value[count] = 0;
- ap_table_add(t, key, value + offset);
- offset = count + 1;
+ if (2 != sscanf(buffer, "HTTP/%u.%u", major, minor)) {
+ /* if no response, default to HTTP/1.1 - is this correct? */
+ *major = 1;
+ *minor = 1;
}
- count++;
+
+ /* If not an HTTP/1 message */
+ if (*major < 1) {
+ ap_bclose(f);
+ ap_kill_timeout(r);
+ return HTTP_BAD_GATEWAY;
+ }
+ *backasswards = 0;
+
+ buffer[12] = '\0';
+ r->status = atoi(&buffer[9]);
+ buffer[12] = ' ';
+ r->status_line = ap_pstrdup(r->pool, &buffer[9]);
+
+ /* if the response was 100 continue, soak up any headers */
+ if (r->status == 100) {
+ ap_proxy_read_headers(r, buffer, size, f);
+ }
+
+ }
+ else {
+
+ /* an http/0.9 response */
+ *backasswards = 1;
+ r->status = 200;
+ r->status_line = "200 OK";
+ *major = 0;
+ *minor = 9;
+
}
- ap_table_add(t, key, value + offset);
+
+ return OK;
+
}
+
#if defined WIN32
static DWORD tls_index;
-BOOL WINAPI DllMain (HINSTANCE dllhandle, DWORD reason, LPVOID reserved)
+BOOL WINAPI DllMain(HINSTANCE dllhandle, DWORD reason, LPVOID reserved)
{
LPVOID memptr;
switch (reason) {
case DLL_PROCESS_ATTACH:
tls_index = TlsAlloc();
- case DLL_THREAD_ATTACH: /* intentional no break */
- TlsSetValue (tls_index, malloc (sizeof (struct per_thread_data)));
+ case DLL_THREAD_ATTACH: /* intentional no break */
+ TlsSetValue(tls_index, malloc(sizeof(struct per_thread_data)));
break;
case DLL_THREAD_DETACH:
- memptr = TlsGetValue (tls_index);
+ memptr = TlsGetValue(tls_index);
if (memptr) {
- free (memptr);
- TlsSetValue (tls_index, 0);
+ free(memptr);
+ TlsSetValue(tls_index, 0);
}
break;
}
@@ -1551,7 +1666,7 @@ static struct per_thread_data *get_per_thread_data(void)
{
#if defined(WIN32)
- return (struct per_thread_data *) TlsGetValue (tls_index);
+ return (struct per_thread_data *)TlsGetValue(tls_index);
#else
diff --git a/usr.sbin/httpd/src/modules/ssl/libssl.version b/usr.sbin/httpd/src/modules/ssl/libssl.version
index bb603d2de18..2cdfab25e0a 100644
--- a/usr.sbin/httpd/src/modules/ssl/libssl.version
+++ b/usr.sbin/httpd/src/modules/ssl/libssl.version
@@ -1 +1 @@
-mod_ssl/2.8.8-1.3.24
+mod_ssl/2.8.10-1.3.26
diff --git a/usr.sbin/httpd/src/modules/ssl/ssl_engine_init.c b/usr.sbin/httpd/src/modules/ssl/ssl_engine_init.c
index dec62cc17cf..9ed29b7b65f 100644
--- a/usr.sbin/httpd/src/modules/ssl/ssl_engine_init.c
+++ b/usr.sbin/httpd/src/modules/ssl/ssl_engine_init.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_engine_init.c,v 1.18 2002/07/15 09:40:49 henning Exp $ */
+/* $OpenBSD: ssl_engine_init.c,v 1.19 2002/07/19 21:31:16 henning Exp $ */
/* _ _
** _ __ ___ ___ __| | ___ ___| | mod_ssl
@@ -934,7 +934,7 @@ void ssl_init_CheckServers(server_rec *sm, pool *p)
}
/*
- * Give out warnings when more than one SSL-aware virtual server uses the
+ * Give out warnings if more than one SSL-aware virtual server uses the
* same IP:port. This doesn't work because mod_ssl then will always use
* just the certificate/keys of one virtual host (which one cannot be said
* easily - but that doesn't matter here).
@@ -946,6 +946,8 @@ void ssl_init_CheckServers(server_rec *sm, pool *p)
sc = mySrvConfig(s);
if (!sc->bEnabled)
continue;
+ if (s->addrs == NULL)
+ continue;
key = ap_psprintf(sp, "%pA:%u", &s->addrs->host_addr, s->addrs->host_port);
ps = ssl_ds_table_get(t, key);
if (ps != NULL) {
@@ -1007,11 +1009,14 @@ STACK_OF(X509_NAME) *ssl_init_FindCAList(server_rec *s, pool *pp, char *cpCAfile
if (cpCAfile != NULL) {
sk = SSL_load_client_CA_file(cpCAfile);
for (n = 0; sk != NULL && n < sk_X509_NAME_num(sk); n++) {
+ X509_NAME *name = sk_X509_NAME_value(sk, n);
ssl_log(s, SSL_LOG_TRACE,
"CA certificate: %s",
- X509_NAME_oneline(sk_X509_NAME_value(sk, n), buf, sizeof(buf)));
- if (sk_X509_NAME_find(skCAList, sk_X509_NAME_value(sk, n)) < 0)
- sk_X509_NAME_push(skCAList, sk_X509_NAME_value(sk, n));
+ X509_NAME_oneline(name, buf, sizeof(buf)));
+ if (sk_X509_NAME_find(skCAList, name) < 0)
+ sk_X509_NAME_push(skCAList, name); /* will be freed when skCAList is */
+ else
+ X509_NAME_free(name);
}
sk_X509_NAME_free(sk);
}
@@ -1025,11 +1030,14 @@ STACK_OF(X509_NAME) *ssl_init_FindCAList(server_rec *s, pool *pp, char *cpCAfile
cp = ap_pstrcat(p, cpCApath, "/", direntry->d_name, NULL);
sk = SSL_load_client_CA_file(cp);
for (n = 0; sk != NULL && n < sk_X509_NAME_num(sk); n++) {
+ X509_NAME *name = sk_X509_NAME_value(sk, n);
ssl_log(s, SSL_LOG_TRACE,
"CA certificate: %s",
- X509_NAME_oneline(sk_X509_NAME_value(sk, n), buf, sizeof(buf)));
- if (sk_X509_NAME_find(skCAList, sk_X509_NAME_value(sk, n)) < 0)
- sk_X509_NAME_push(skCAList, sk_X509_NAME_value(sk, n));
+ X509_NAME_oneline(name, buf, sizeof(buf)));
+ if (sk_X509_NAME_find(skCAList, name) < 0)
+ sk_X509_NAME_push(skCAList, name);
+ else
+ X509_NAME_free(name);
}
sk_X509_NAME_free(sk);
}
diff --git a/usr.sbin/httpd/src/modules/ssl/ssl_engine_kernel.c b/usr.sbin/httpd/src/modules/ssl/ssl_engine_kernel.c
index 594a0503479..e5a9c5eb6a3 100644
--- a/usr.sbin/httpd/src/modules/ssl/ssl_engine_kernel.c
+++ b/usr.sbin/httpd/src/modules/ssl/ssl_engine_kernel.c
@@ -957,17 +957,28 @@ int ssl_hook_Access(request_rec *r)
/* perform just a manual re-verification of the peer */
ssl_log(r->server, SSL_LOG_TRACE,
"Performing quick renegotiation: just re-verifying the peer");
- certstore = SSL_CTX_get_cert_store(ctx);
- if (certstore == NULL) {
- ssl_log(r->server, SSL_LOG_ERROR, "Cannot find certificate storage");
- return FORBIDDEN;
- }
certstack = SSL_get_peer_cert_chain(ssl);
+ cert = SSL_get_peer_certificate(ssl);
+ if (certstack == NULL && cert != NULL) {
+ /* client cert is in the session cache, but there is
+ no chain, since ssl3_get_client_certificate()
+ sk_X509_shift'ed the peer cert out of the chain.
+ So we put it back here for the purpose of quick
+ renegotiation. */
+ certstack = sk_new_null();
+ sk_X509_push(certstack, cert);
+ }
if (certstack == NULL || sk_X509_num(certstack) == 0) {
ssl_log(r->server, SSL_LOG_ERROR, "Cannot find peer certificate chain");
return FORBIDDEN;
}
- cert = sk_X509_value(certstack, 0);
+ if (cert == NULL)
+ cert = sk_X509_value(certstack, 0);
+
+ if ((certstore = SSL_CTX_get_cert_store(ctx)) == NULL) {
+ ssl_log(r->server, SSL_LOG_ERROR, "Cannot find certificate storage");
+ return FORBIDDEN;
+ }
X509_STORE_CTX_init(&certstorectx, certstore, cert, certstack);
depth = SSL_get_verify_depth(ssl);
if (depth >= 0)
@@ -979,6 +990,10 @@ int ssl_hook_Access(request_rec *r)
"Re-negotiation verification step failed");
SSL_set_verify_result(ssl, certstorectx.error);
X509_STORE_CTX_cleanup(&certstorectx);
+ if (SSL_get_peer_cert_chain(ssl) != certstack) {
+ /* created by us, so free it */
+ sk_X509_pop_free(certstack, X509_free);
+ }
}
else {
/* do a full renegotiation */
@@ -1132,15 +1147,19 @@ int ssl_hook_Auth(request_rec *r)
* ("/XX=YYY/XX=YYY/..") as the username and "password" as the
* password.
*/
- if ((cpAL = ap_table_get(r->headers_in, "Authorization")) != NULL) {
+ if ( ap_is_initial_req(r)
+ && (cpAL = ap_table_get(r->headers_in, "Authorization")) != NULL) {
if (strcEQ(ap_getword(r->pool, &cpAL, ' '), "Basic")) {
while (*cpAL == ' ' || *cpAL == '\t')
cpAL++;
cpAL = ap_pbase64decode(r->pool, cpAL);
cpUN = ap_getword_nulls(r->pool, &cpAL, ':');
cpPW = cpAL;
- if (cpUN[0] == '/' && strEQ(cpPW, "password"))
+ if (cpUN[0] == '/' && strEQ(cpPW, "password")) {
+ ssl_log(r->server, SSL_LOG_WARN,
+ "real Basic Authentication with DN \"%s\" and fake password attempted", cpUN);
return FORBIDDEN;
+ }
}
}
diff --git a/usr.sbin/httpd/src/modules/ssl/ssl_engine_rand.c b/usr.sbin/httpd/src/modules/ssl/ssl_engine_rand.c
index 8631c86d743..37af9c16680 100644
--- a/usr.sbin/httpd/src/modules/ssl/ssl_engine_rand.c
+++ b/usr.sbin/httpd/src/modules/ssl/ssl_engine_rand.c
@@ -101,7 +101,11 @@ int ssl_rand_seed(server_rec *s, pool *p, ssl_rsctx_t nCtx, char *prefix)
/*
* seed in contents of an external file
*/
+#ifdef WIN32
+ if ((fp = ap_pfopen(p, pRandSeed->cpPath, "rb")) == NULL)
+#else
if ((fp = ap_pfopen(p, pRandSeed->cpPath, "r")) == NULL)
+#endif
continue;
nDone += ssl_rand_feedfp(p, fp, pRandSeed->nBytes);
ap_pfclose(p, fp);
@@ -155,7 +159,8 @@ int ssl_rand_seed(server_rec *s, pool *p, ssl_rsctx_t nCtx, char *prefix)
* seed in extract data from the current scoreboard
*/
if (ap_scoreboard_image != NULL && SCOREBOARD_SIZE > 16) {
- m = ((SCOREBOARD_SIZE / 2) - 1);
+ if ((m = ((SCOREBOARD_SIZE / 2) - 1)) > 1024)
+ m = 1024;
n = ssl_rand_choosenum(0, m);
RAND_seed(((unsigned char *)ap_scoreboard_image)+n, m);
nDone += m;
@@ -167,7 +172,7 @@ int ssl_rand_seed(server_rec *s, pool *p, ssl_rsctx_t nCtx, char *prefix)
#if SSL_LIBRARY_VERSION >= 0x00905100
if (RAND_status() == 0)
- ssl_log(s, SSL_LOG_WARN, "%sPRNG still contains not sufficient entropy!", prefix);
+ ssl_log(s, SSL_LOG_WARN, "%sPRNG still contains insufficient entropy!", prefix);
#endif
return nDone;
}
diff --git a/usr.sbin/httpd/src/modules/ssl/ssl_engine_vars.c b/usr.sbin/httpd/src/modules/ssl/ssl_engine_vars.c
index e1dbfdfbc8e..a6013cdd44c 100644
--- a/usr.sbin/httpd/src/modules/ssl/ssl_engine_vars.c
+++ b/usr.sbin/httpd/src/modules/ssl/ssl_engine_vars.c
@@ -411,7 +411,11 @@ static const struct {
{ "G", NID_givenName },
{ "S", NID_surname },
{ "D", NID_description },
+#if SSL_LIBRARY_VERSION >= 0x00907000
+ { "UID", NID_x500UniqueIdentifier },
+#else
{ "UID", NID_uniqueIdentifier },
+#endif
{ "Email", NID_pkcs9_emailAddress },
{ NULL, 0 }
};
diff --git a/usr.sbin/httpd/src/modules/ssl/ssl_scache_shmcb.c b/usr.sbin/httpd/src/modules/ssl/ssl_scache_shmcb.c
index ef3c2c1989a..1cf5816dfd6 100644
--- a/usr.sbin/httpd/src/modules/ssl/ssl_scache_shmcb.c
+++ b/usr.sbin/httpd/src/modules/ssl/ssl_scache_shmcb.c
@@ -63,8 +63,8 @@
/*
* This shared memory based SSL session cache implementation was
- * originally written by Geoff Thorpe <geoff@eu.c2.net> for C2Net Europe
- * and as a contribution to Ralf Engelschall's mod_ssl project.
+ * originally written by Geoff Thorpe <geoff@geoffthorpe.net> for C2Net
+ * Europe and as a contribution to Ralf Engelschall's mod_ssl project.
*/
/*
diff --git a/usr.sbin/httpd/src/modules/standard/mod_cgi.c b/usr.sbin/httpd/src/modules/standard/mod_cgi.c
index d05786eec19..c0c2307df95 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_cgi.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_cgi.c
@@ -240,7 +240,7 @@ static int log_script(request_rec *r, cgi_server_conf * conf, int ret,
fprintf(f, "%s: %s\n", hdrs[i].key, hdrs[i].val);
}
if ((r->method_number == M_POST || r->method_number == M_PUT)
- && *dbuf) {
+ && dbuf && *dbuf) {
fprintf(f, "\n%s\n", dbuf);
}
diff --git a/usr.sbin/httpd/src/modules/standard/mod_log_config.c b/usr.sbin/httpd/src/modules/standard/mod_log_config.c
index 9c512a597e7..420807cabf4 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_log_config.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_log_config.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mod_log_config.c,v 1.11 2002/07/17 11:19:10 henning Exp $ */
+/* $OpenBSD: mod_log_config.c,v 1.12 2002/07/19 21:31:16 henning Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -297,8 +297,8 @@ static const char *constant_item(request_rec *dummy, char *stuff)
static const char *log_remote_host(request_rec *r, char *a)
{
- return ap_get_remote_host(r->connection, r->per_dir_config,
- REMOTE_NAME);
+ return ap_escape_logitem(r->pool, ap_get_remote_host(r->connection, r->per_dir_config,
+ REMOTE_NAME));
}
static const char *log_remote_address(request_rec *r, char *a)
@@ -313,7 +313,7 @@ static const char *log_local_address(request_rec *r, char *a)
static const char *log_remote_logname(request_rec *r, char *a)
{
- return ap_get_remote_logname(r);
+ return ap_escape_logitem(r->pool, ap_get_remote_logname(r));
}
static const char *log_remote_user(request_rec *r, char *a)
@@ -326,6 +326,8 @@ static const char *log_remote_user(request_rec *r, char *a)
else if (strlen(rvalue) == 0) {
rvalue = "\"\"";
}
+ else
+ rvalue = ap_escape_logitem(r->pool, rvalue);
return rvalue;
}
@@ -336,10 +338,12 @@ static const char *log_request_line(request_rec *r, char *a)
* (note the truncation before the protocol string for HTTP/0.9 requests)
* (note also that r->the_request contains the unmodified request)
*/
- return (r->parsed_uri.password) ? ap_pstrcat(r->pool, r->method, " ",
+ return ap_escape_logitem(r->pool,
+ (r->parsed_uri.password) ? ap_pstrcat(r->pool, r->method, " ",
ap_unparse_uri_components(r->pool, &r->parsed_uri, 0),
r->assbackwards ? NULL : " ", r->protocol, NULL)
- : r->the_request;
+ : r->the_request
+ );
}
static const char *log_request_file(request_rec *r, char *a)
@@ -348,19 +352,20 @@ static const char *log_request_file(request_rec *r, char *a)
}
static const char *log_request_uri(request_rec *r, char *a)
{
- return r->uri;
+ return ap_escape_logitem(r->pool, r->uri);
}
static const char *log_request_method(request_rec *r, char *a)
{
- return r->method;
+ return ap_escape_logitem(r->pool, r->method);
}
static const char *log_request_protocol(request_rec *r, char *a)
{
- return r->protocol;
+ return ap_escape_logitem(r->pool, r->protocol);
}
static const char *log_request_query(request_rec *r, char *a)
{
- return (r->args != NULL) ? ap_pstrcat(r->pool, "?", r->args, NULL)
+ return (r->args != NULL) ? ap_pstrcat(r->pool, "?",
+ ap_escape_logitem(r->pool, r->args), NULL)
: "";
}
static const char *log_status(request_rec *r, char *a)
@@ -395,7 +400,7 @@ static const char *log_bytes_sent(request_rec *r, char *a)
static const char *log_header_in(request_rec *r, char *a)
{
- return ap_table_get(r->headers_in, a);
+ return ap_escape_logitem(r->pool, ap_table_get(r->headers_in, a));
}
static const char *log_header_out(request_rec *r, char *a)
@@ -476,6 +481,7 @@ static const char *log_child_pid(request_rec *r, char *a)
{
return ap_psprintf(r->pool, "%ld", (long) getpid());
}
+
static const char *log_connection_status(request_rec *r, char *a)
{
if (r->connection->aborted)
@@ -488,6 +494,7 @@ static const char *log_connection_status(request_rec *r, char *a)
return "-";
}
+
/*****************************************************************
*
* Parsing the log format string
diff --git a/usr.sbin/httpd/src/modules/standard/mod_mime_magic.c b/usr.sbin/httpd/src/modules/standard/mod_mime_magic.c
index 77e1f1b8cc9..2ec733f77c4 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_mime_magic.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_mime_magic.c
@@ -1110,7 +1110,7 @@ static int parse(server_rec *serv, pool *p, char *l, int lineno)
}
/* get offset, then skip over it */
- m->offset = (int) strtol(l, &t, 0);
+ m->offset = (int) ap_strtol(l, &t, 0);
if (l == t) {
ap_log_error(APLOG_MARK, APLOG_NOERRNO | APLOG_ERR, serv,
MODNAME ": offset %s invalid", l);
@@ -1145,7 +1145,7 @@ static int parse(server_rec *serv, pool *p, char *l, int lineno)
if (*l == '+' || *l == '-')
l++;
if (ap_isdigit((unsigned char) *l)) {
- m->in.offset = strtol(l, &t, 0);
+ m->in.offset = ap_strtol(l, &t, 0);
if (*s == '-')
m->in.offset = -m->in.offset;
}
@@ -1233,7 +1233,7 @@ static int parse(server_rec *serv, pool *p, char *l, int lineno)
/* New-style anding: "0 byte&0x80 =0x80 dynamically linked" */
if (*l == '&') {
++l;
- m->mask = signextend(serv, m, strtol(l, &l, 0));
+ m->mask = signextend(serv, m, ap_strtol(l, &l, 0));
}
else
m->mask = ~0L;
@@ -1311,7 +1311,7 @@ static int getvalue(server_rec *s, struct magic *m, char **p)
m->vallen = slen;
}
else if (m->reln != 'x')
- m->value.l = signextend(s, m, strtol(*p, p, 0));
+ m->value.l = signextend(s, m, ap_strtol(*p, p, 0));
return 0;
}
diff --git a/usr.sbin/httpd/src/modules/standard/mod_rewrite.c b/usr.sbin/httpd/src/modules/standard/mod_rewrite.c
index 39bfbc67a64..f138b546c52 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_rewrite.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_rewrite.c
@@ -1220,7 +1220,7 @@ static int hook_uri2file(request_rec *r)
rewritelog(r, 2, "local path result: %s", r->filename);
/* the filename has to start with a slash! */
- if (r->filename[0] != '/') {
+ if (!ap_os_is_path_absolute(r->filename)) {
return BAD_REQUEST;
}
@@ -1505,7 +1505,7 @@ static int hook_fixup(request_rec *r)
}
/* the filename has to start with a slash! */
- if (r->filename[0] != '/') {
+ if (!ap_os_is_path_absolute(r->filename)) {
return BAD_REQUEST;
}
@@ -1983,7 +1983,7 @@ static int apply_rewrite_rule(request_rec *r, rewriterule_entry *p,
* location, i.e. if it's not starting with either a slash
* or a fully qualified URL scheme.
*/
- if (prefixstrip && r->filename[0] != '/'
+ if (prefixstrip && !ap_os_is_path_absolute(r->filename)
&& !is_absolute_uri(r->filename)) {
rewritelog(r, 3, "[per-dir %s] add per-dir prefix: %s -> %s%s",
perdir, r->filename, perdir, r->filename);
@@ -2070,7 +2070,7 @@ static int apply_rewrite_rule(request_rec *r, rewriterule_entry *p,
* not start with a slash. Here we add again the initially
* stripped per-directory prefix.
*/
- if (prefixstrip && r->filename[0] != '/') {
+ if (prefixstrip && !ap_os_is_path_absolute(r->filename)) {
rewritelog(r, 3, "[per-dir %s] add per-dir prefix: %s -> %s%s",
perdir, r->filename, perdir, r->filename);
r->filename = ap_pstrcat(r->pool, perdir, r->filename, NULL);
diff --git a/usr.sbin/httpd/src/os/netware/ApacheCore.imp b/usr.sbin/httpd/src/os/netware/ApacheCore.imp
index a1aa7f758bf..2e70a60aa90 100644
--- a/usr.sbin/httpd/src/os/netware/ApacheCore.imp
+++ b/usr.sbin/httpd/src/os/netware/ApacheCore.imp
@@ -418,3 +418,5 @@
ap_update_child_status,
ap_sendwithtimeout,
ap_recvwithtimeout,
+ ap_getline,
+ ap_get_chunk_size,
diff --git a/usr.sbin/httpd/src/os/netware/mod_log_nw.c b/usr.sbin/httpd/src/os/netware/mod_log_nw.c
index 99a93a24d19..f5718746f13 100644
--- a/usr.sbin/httpd/src/os/netware/mod_log_nw.c
+++ b/usr.sbin/httpd/src/os/netware/mod_log_nw.c
@@ -231,10 +231,8 @@ typedef struct {
array_header *config_logs;
array_header *server_config_logs;
table *formats;
-#ifdef NETWARE
int rotatedaily;
int rotateinterval;
-#endif
} multi_log_state;
/*
@@ -256,9 +254,7 @@ typedef struct {
int outcnt;
char outbuf[LOG_BUFSIZE];
#endif
-#ifdef NETWARE
time_t time_jump;
-#endif
} config_log_state;
/*
@@ -810,7 +806,6 @@ static int config_log_transaction(request_rec *r, config_log_state *cls,
int len = 0;
array_header *format;
char *envar;
-#ifdef NETWARE
int log_fd;
multi_log_state *mls = ap_get_module_config(r->server->module_config,&config_log_module);
@@ -844,7 +839,6 @@ static int config_log_transaction(request_rec *r, config_log_state *cls,
close (log_fd);
}
}
-#endif
if (cls->fname == NULL) {
return DECLINED;
@@ -969,10 +963,8 @@ static void *make_config_log_state(pool *p, server_rec *s)
mls->server_config_logs = NULL;
mls->formats = ap_make_table(p, 4);
ap_table_setn(mls->formats, "CLF", DEFAULT_LOG_FORMAT);
-#ifdef NETWARE
mls->rotatedaily = 0;
mls->rotateinterval = 0;
-#endif
return mls;
}
@@ -988,14 +980,12 @@ static void *merge_config_log_state(pool *p, void *basev, void *addv)
multi_log_state *base = (multi_log_state *) basev;
multi_log_state *add = (multi_log_state *) addv;
-#ifdef NETWARE
if (add->rotatedaily==0) {
add->rotatedaily=base->rotatedaily;
}
if (add->rotateinterval==0) {
add->rotateinterval=base->rotateinterval;
}
-#endif
add->server_config_logs = base->config_logs;
if (!add->default_format) {
@@ -1080,7 +1070,6 @@ static const char *set_cookie_log(cmd_parms *cmd, void *dummy, char *fn)
return add_custom_log(cmd, dummy, fn, "%{Cookie}n \"%r\" %t", NULL);
}
-#ifdef NETWARE
static const char *set_rotate_log_daily(cmd_parms *cmd, void *dummy, int arg)
{
multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
@@ -1108,7 +1097,6 @@ static const char *set_rotate_log_interval(cmd_parms *cmd, void *dummy, char *ar
mls->rotateinterval = interval;
return NULL;
}
-#endif
static const command_rec config_log_cmds[] =
{
@@ -1121,12 +1109,10 @@ static const command_rec config_log_cmds[] =
"a log format string (see docs) and an optional format name"},
{"CookieLog", set_cookie_log, NULL, RSRC_CONF, TAKE1,
"the filename of the cookie log"},
-#ifdef NETWARE
{"LogRotateDaily", set_rotate_log_daily, NULL, RSRC_CONF, FLAG,
"rotate logs daily (On:Off)"},
{"LogRotateInterval", set_rotate_log_interval, NULL, RSRC_CONF, TAKE1,
"rotate logs every NNN minutes"},
-#endif
{NULL}
};
@@ -1152,7 +1138,6 @@ static config_log_state *open_config_log(server_rec *s, pool *p,
cls->log_fd = ap_piped_log_write_fd(pl);
}
else {
-#ifdef NETWARE
char * fname;
struct tm *time_tmp;
time_t time_now;
@@ -1175,9 +1160,6 @@ static config_log_state *open_config_log(server_rec *s, pool *p,
} else {
fname = ap_server_root_relative(p, cls->fname);
}
-#else
- char *fname = ap_server_root_relative(p, cls->fname);
-#endif
if ((cls->log_fd = ap_popenf(p, fname, xfer_flags, xfer_mode)) < 0) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
diff --git a/usr.sbin/httpd/src/os/netware/os.h b/usr.sbin/httpd/src/os/netware/os.h
index 55153a13310..be95fe7b12e 100644
--- a/usr.sbin/httpd/src/os/netware/os.h
+++ b/usr.sbin/httpd/src/os/netware/os.h
@@ -126,6 +126,11 @@ typedef int tid_t;
#define mktemp(s) tmpnam(s)
#define _getch getch
+/* Watcom reports that ERANGE is returned properly for any out of bounds
+ * conditions, with a MIN/MAX_LONG value. This should be safe.
+ */
+#define ap_strtol strtol
+
#define opendir_411(p) os_opendir(p)
#define opendir(p) os_opendir(p)
DIR *os_opendir (const char *pathname);
diff --git a/usr.sbin/httpd/src/os/netware/test_char.h b/usr.sbin/httpd/src/os/netware/test_char.h
index bd26df220aa..46212b121d1 100644
--- a/usr.sbin/httpd/src/os/netware/test_char.h
+++ b/usr.sbin/httpd/src/os/netware/test_char.h
@@ -1,21 +1,42 @@
/* this file is automatically generated by gen_test_char, do not edit */
-#define T_ESCAPE_SHELL_CMD (1)
-#define T_ESCAPE_PATH_SEGMENT (2)
-#define T_OS_ESCAPE_PATH (4)
-#define T_HTTP_TOKEN_STOP (8)
+#define T_ESCAPE_SHELL_CMD 0x01 /* chars with special meaning in the shell */
+#define T_ESCAPE_PATH_SEGMENT 0x02 /* find path segment, as defined in RFC1808 */
+#define T_OS_ESCAPE_PATH 0x04 /* escape characters in a path or uri */
+#define T_HTTP_TOKEN_STOP 0x08 /* find http tokens, as defined in RFC2616 */
+#define T_ESCAPE_LOGITEM 0x10 /* filter what should go in the log file */
static const unsigned char test_char_table[256] = {
- 0,14,14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,14,14,
- 14,14,14,14,14,14,14,14,14,14,14,14,14,0,7,6,1,6,1,1,
- 9,9,1,0,8,0,0,10,0,0,0,0,0,0,0,0,0,0,8,15,
- 15,8,15,15,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,15,15,15,7,0,7,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,15,7,15,1,14,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
- 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
+ 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x00...0x07*/
+ 0x1e, 0x1e, 0x1f, 0x1e, 0x1e, 0x1f, 0x1e, 0x1e, /*0x08...0x0f*/
+ 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x10...0x17*/
+ 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x18...0x1f*/
+ 0x0e, 0x00, 0x17, 0x06, 0x01, 0x07, 0x01, 0x01, /*0x20...0x27*/
+ 0x09, 0x09, 0x01, 0x00, 0x08, 0x00, 0x00, 0x0a, /*0x28...0x2f*/
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x30...0x37*/
+ 0x00, 0x00, 0x08, 0x0f, 0x0f, 0x08, 0x0f, 0x0f, /*0x38...0x3f*/
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x40...0x47*/
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x48...0x4f*/
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x50...0x57*/
+ 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x0f, 0x07, 0x00, /*0x58...0x5f*/
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x60...0x67*/
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x68...0x6f*/
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x70...0x77*/
+ 0x00, 0x00, 0x00, 0x0f, 0x07, 0x0f, 0x01, 0x1e, /*0x78...0x7f*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x80...0x87*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x88...0x8f*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x90...0x97*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x98...0x9f*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xa0...0xa7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xa8...0xaf*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xb0...0xb7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xb8...0xbf*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xc0...0xc7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xc8...0xcf*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xd0...0xd7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xd8...0xdf*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xe0...0xe7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xe8...0xef*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xf0...0xf7*/
+ 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16 /*0xf8...0xff*/
+
};
diff --git a/usr.sbin/httpd/src/os/os2/os.h b/usr.sbin/httpd/src/os/os2/os.h
index 4ce97ce584e..5a37e4e764f 100644
--- a/usr.sbin/httpd/src/os/os2/os.h
+++ b/usr.sbin/httpd/src/os/os2/os.h
@@ -47,6 +47,9 @@ char *ap_os_error_message(int err);
#define HAVE_ISINF
#define HAVE_ISNAN
+/* strtol() correctly returns ERANGE on overflow, use it */
+#define ap_strtol strtol
+
/* Dynamic loading functions */
#define ap_os_dso_handle_t unsigned long
void ap_os_dso_init(void);
diff --git a/usr.sbin/httpd/src/os/tpf/os.c b/usr.sbin/httpd/src/os/tpf/os.c
index dadd9534d58..b7aefc19e1a 100644
--- a/usr.sbin/httpd/src/os/tpf/os.c
+++ b/usr.sbin/httpd/src/os/tpf/os.c
@@ -75,6 +75,7 @@ static TPF_FD_LIST *tpf_fds = NULL;
void *tpf_shm_static_ptr = NULL;
unsigned short zinet_model;
+char *argv_ptr = NULL;
static FILE *sock_fp;
@@ -394,7 +395,7 @@ pid_t os_fork(server_rec *s, int slot)
fork_input.prog_type = TPF_FORK_NAME;
fork_input.istream = TPF_FORK_IS_BALANCE;
fork_input.ebw_data_length = sizeof(input_parms);
- fork_input.parm_data = "-x";
+ fork_input.parm_data = argv_ptr;
#ifdef TPF_FORK_EXTENDED
return tpf_fork(&fork_input, NULL, NULL);
#else
@@ -447,25 +448,25 @@ void ap_tpf_zinet_checks(int standalone,
int os_check_server(char *server) {
int *current_acn;
- if (zinet_model == INETD_IDCF_MODEL_NOLISTEN) {
- /* if NOLISTEN model, check with ZINET for status */
- if (inetd_getServerStatus(server) == INETD_SERVER_STATUS_INACTIVE) {
- return 1;
- }
- /* and check that program activation number hasn't changed */
+ /* check that the program activation number hasn't changed */
current_acn = (int *)cinfc_fast(CINFC_CMMACNUM);
if (ecbp2()->ce2acn != *current_acn) {
- return 1;
+ return 1; /* shutdown */
}
- } else {
- /* if DAEMON model, just make sure parent is still around */
+ /* check our InetD status */
+ if (inetd_getServerStatus(server) != INETD_SERVER_STATUS_ACTIVE) {
+ return 1; /* shutdown */
+ }
+
+ /* if DAEMON model, make sure parent is still around */
+ if (zinet_model == INETD_IDCF_MODEL_DAEMON) {
if (getppid() == 1) {
- return 1;
+ return 1; /* shutdown */
}
}
- return 0;
+ return 0; /* keep on running... */
}
void os_note_additional_cleanups(pool *p, int sd) {
@@ -479,6 +480,23 @@ void os_note_additional_cleanups(pool *p, int sd) {
fcntl(sd,F_SETFD,FD_CLOEXEC);
}
+void ap_tpf_save_argv(int argc, char **argv) {
+
+ int i, len = 3; /* 3 for "-x " */
+
+ for (i = 1; i < argc; i++) { /* find len for calloc */
+ len += strlen (argv[i]);
+ ++len; /* 1 for blank */
+ }
+
+ argv_ptr = malloc(len + 1);
+ strcpy(argv_ptr, "-x");
+ for (i = 1; i < argc; i++) {
+ strcat(argv_ptr, " ");
+ strcat(argv_ptr, argv[i]);
+ }
+}
+
void os_tpf_child(APACHE_TPF_INPUT *input_parms) {
tpf_child = 1;
ap_my_generation = input_parms->generation;
@@ -795,5 +813,9 @@ void show_os_specific_compile_settings(void)
#ifdef TPF_HAVE_NSD
printf(" -D TPF_HAVE_NSD\n");
#endif
+
+#ifdef HAVE_SYSLOG
+ printf(" -D HAVE_SYSLOG\n");
+#endif
}
diff --git a/usr.sbin/httpd/src/os/tpf/os.h b/usr.sbin/httpd/src/os/tpf/os.h
index cf0b087186f..37f42d40a0d 100644
--- a/usr.sbin/httpd/src/os/tpf/os.h
+++ b/usr.sbin/httpd/src/os/tpf/os.h
@@ -76,6 +76,10 @@
#undef HAVE_ISNAN
#endif
+#ifdef HAVE_ISINF
+#undef HAVE_ISINF
+#endif
+
#if !defined(INLINE) && defined(USE_GNU_INLINE)
/* Compiler supports inline, so include the inlineable functions as
* part of the header
@@ -193,6 +197,7 @@ extern int scoreboard_fd;
#ifdef NSIG
#undef NSIG
#endif
+void ap_tpf_save_argv(int argc, char **argv);
/* various #defines for ServerType/ZINET model checks: */
diff --git a/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl b/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl
index 0d7124f8560..bf64d233df1 100644
--- a/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl
+++ b/usr.sbin/httpd/src/os/tpf/samples/linkhttp.jcl
@@ -24,70 +24,65 @@
//PLKED.OBJ10 DD PATH='/<your-path-here>/src/ap/ap_signal.o'
//PLKED.OBJ11 DD PATH='/<your-path-here>/src/ap/ap_slack.o'
//PLKED.OBJ12 DD PATH='/<your-path-here>/src/ap/ap_snprintf.o'
-//PLKED.OBJ13 DD PATH='/<your-path-here>/src/buildmark.o'
-//PLKED.OBJ14 DD PATH='/<your-path-here>/src/main/alloc.o'
-//PLKED.OBJ15 DD PATH='/<your-path-here>/src/main/buff.o'
-//PLKED.OBJ16 DD PATH='/<your-path-here>/src/main/http_config.o'
-//PLKED.OBJ17 DD PATH='/<your-path-here>/src/main/http_core.o'
-//PLKED.OBJ18 DD PATH='/<your-path-here>/src/main/http_log.o'
-//PLKED.OBJ19 DD PATH='/<your-path-here>/src/main/http_main.o'
-//PLKED.OBJ20 DD PATH='/<your-path-here>/src/main/http_protocol.o'
-//PLKED.OBJ21 DD PATH='/<your-path-here>/src/main/http_request.o'
-//PLKED.OBJ22 DD PATH='/<your-path-here>/src/main/http_vhost.o'
-//PLKED.OBJ23 DD PATH='/<your-path-here>/src/main/rfc1413.o'
-//PLKED.OBJ24 DD PATH='/<your-path-here>/src/main/util.o'
-//PLKED.OBJ25 DD PATH='/<your-path-here>/src/main/util_date.o'
-//PLKED.OBJ26 DD PATH='/<your-path-here>/src/main/util_md5.o'
-//PLKED.OBJ27 DD PATH='/<your-path-here>/src/main/util_script.o'
-//PLKED.OBJ28 DD PATH='/<your-path-here>/src/main/util_uri.o'
-//PLKED.OBJ29 DD PATH='/<your-path-here>/src/modules.o'
-//PLKED.OBJ30 DD PATH='/<your-path-here>/src/modules/standard/mod_acce\
+//PLKED.OBJ13 DD PATH='/<your-path-here>/src/ap/ap_strtol.o'
+//PLKED.OBJ14 DD PATH='/<your-path-here>/src/buildmark.o'
+//PLKED.OBJ15 DD PATH='/<your-path-here>/src/main/alloc.o'
+//PLKED.OBJ16 DD PATH='/<your-path-here>/src/main/buff.o'
+//PLKED.OBJ17 DD PATH='/<your-path-here>/src/main/http_config.o'
+//PLKED.OBJ18 DD PATH='/<your-path-here>/src/main/http_core.o'
+//PLKED.OBJ19 DD PATH='/<your-path-here>/src/main/http_log.o'
+//PLKED.OBJ20 DD PATH='/<your-path-here>/src/main/http_main.o'
+//PLKED.OBJ21 DD PATH='/<your-path-here>/src/main/http_protocol.o'
+//PLKED.OBJ22 DD PATH='/<your-path-here>/src/main/http_request.o'
+//PLKED.OBJ23 DD PATH='/<your-path-here>/src/main/http_vhost.o'
+//PLKED.OBJ24 DD PATH='/<your-path-here>/src/main/rfc1413.o'
+//PLKED.OBJ25 DD PATH='/<your-path-here>/src/main/util.o'
+//PLKED.OBJ26 DD PATH='/<your-path-here>/src/main/util_date.o'
+//PLKED.OBJ27 DD PATH='/<your-path-here>/src/main/util_md5.o'
+//PLKED.OBJ28 DD PATH='/<your-path-here>/src/main/util_script.o'
+//PLKED.OBJ29 DD PATH='/<your-path-here>/src/main/util_uri.o'
+//PLKED.OBJ30 DD PATH='/<your-path-here>/src/modules.o'
+//PLKED.OBJ31 DD PATH='/<your-path-here>/src/modules/standard/mod_acce\
// ss.o'
-//PLKED.OBJ31 DD PATH='/<your-path-here>/src/modules/standard/mod_acti\
+//PLKED.OBJ32 DD PATH='/<your-path-here>/src/modules/standard/mod_acti\
// ons.o'
-//PLKED.OBJ32 DD PATH='/<your-path-here>/src/modules/standard/mod_alia\
+//PLKED.OBJ33 DD PATH='/<your-path-here>/src/modules/standard/mod_alia\
// s.o'
-//PLKED.OBJ33 DD PATH='/<your-path-here>/src/modules/standard/mod_asis\
+//PLKED.OBJ34 DD PATH='/<your-path-here>/src/modules/standard/mod_asis\
// .o'
-//PLKED.OBJ34 DD PATH='/<your-path-here>/src/modules/standard/mod_auth\
+//PLKED.OBJ35 DD PATH='/<your-path-here>/src/modules/standard/mod_auth\
// .o'
-//PLKED.OBJ35 DD PATH='/<your-path-here>/src/modules/standard/mod_auto\
+//PLKED.OBJ36 DD PATH='/<your-path-here>/src/modules/standard/mod_auto\
// index.o'
-//PLKED.OBJ36 DD PATH='/<your-path-here>/src/modules/standard/mod_cgi.\
+//PLKED.OBJ37 DD PATH='/<your-path-here>/src/modules/standard/mod_cgi.\
// o'
-//PLKED.OBJ37 DD PATH='/<your-path-here>/src/modules/standard/mod_dir.\
+//PLKED.OBJ38 DD PATH='/<your-path-here>/src/modules/standard/mod_dir.\
// o'
-//PLKED.OBJ38 DD PATH='/<your-path-here>/src/modules/standard/mod_env.\
+//PLKED.OBJ39 DD PATH='/<your-path-here>/src/modules/standard/mod_env.\
// o'
-//PLKED.OBJ39 DD PATH='/<your-path-here>/src/modules/standard/mod_imap\
+//PLKED.OBJ40 DD PATH='/<your-path-here>/src/modules/standard/mod_imap\
// .o'
-//PLKED.OBJ40 DD PATH='/<your-path-here>/src/modules/standard/mod_incl\
+//PLKED.OBJ41 DD PATH='/<your-path-here>/src/modules/standard/mod_incl\
// ude.o'
-//PLKED.OBJ41 DD PATH='/<your-path-here>/src/modules/standard/mod_log_\
+//PLKED.OBJ42 DD PATH='/<your-path-here>/src/modules/standard/mod_log_\
// config.o'
-//PLKED.OBJ42 DD PATH='/<your-path-here>/src/modules/standard/mod_mime\
+//PLKED.OBJ43 DD PATH='/<your-path-here>/src/modules/standard/mod_mime\
// .o'
-//PLKED.OBJ43 DD PATH='/<your-path-here>/src/modules/standard/mod_nego\
+//PLKED.OBJ44 DD PATH='/<your-path-here>/src/modules/standard/mod_nego\
// tiation.o'
-//PLKED.OBJ44 DD PATH='/<your-path-here>/src/modules/standard/mod_sete\
+//PLKED.OBJ45 DD PATH='/<your-path-here>/src/modules/standard/mod_sete\
// nvif.o'
-//PLKED.OBJ45 DD PATH='/<your-path-here>/src/modules/standard/mod_stat\
+//PLKED.OBJ46 DD PATH='/<your-path-here>/src/modules/standard/mod_stat\
// us.o'
-//PLKED.OBJ46 DD PATH='/<your-path-here>/src/modules/standard/mod_user\
+//PLKED.OBJ47 DD PATH='/<your-path-here>/src/modules/standard/mod_user\
// dir.o'
-//PLKED.OBJ47 DD PATH='/<your-path-here>/src/os/tpf/cgetop.o'
-//PLKED.OBJ48 DD PATH='/<your-path-here>/src/os/tpf/os.o'
-//PLKED.OBJ49 DD PATH='/<your-path-here>/src/os/tpf/os-inline.o'
-//PLKED.OBJ50 DD PATH='/<your-path-here>/src/regex/regcomp.o'
-//PLKED.OBJ51 DD PATH='/<your-path-here>/src/regex/regerror.o'
-//PLKED.OBJ52 DD PATH='/<your-path-here>/src/regex/regexec.o'
-//PLKED.OBJ53 DD PATH='/<your-path-here>/src/regex/regfree.o'
-//PLKED.OBJ54 DD PATH='/<your-path-here>/src/lib/expat-lite/hashtable.\
-// o'
-//PLKED.OBJ55 DD PATH='/<your-path-here>/src/lib/expat-lite/xmlparse.o\
-// '
-//PLKED.OBJ56 DD PATH='/<your-path-here>/src/lib/expat-lite/xmlrole.o'
-//PLKED.OBJ57 DD PATH='/<your-path-here>/src/lib/expat-lite/xmltok.o'
+//PLKED.OBJ48 DD PATH='/<your-path-here>/src/os/tpf/cgetop.o'
+//PLKED.OBJ49 DD PATH='/<your-path-here>/src/os/tpf/os.o'
+//PLKED.OBJ50 DD PATH='/<your-path-here>/src/os/tpf/os-inline.o'
+//PLKED.OBJ51 DD PATH='/<your-path-here>/src/regex/regcomp.o'
+//PLKED.OBJ52 DD PATH='/<your-path-here>/src/regex/regerror.o'
+//PLKED.OBJ53 DD PATH='/<your-path-here>/src/regex/regexec.o'
+//PLKED.OBJ54 DD PATH='/<your-path-here>/src/regex/regfree.o'
//PLKED.SYSIN DD *
ORDER @@DLMHDR
INCLUDE OBJLIB(CSTRTD40)
@@ -145,9 +140,6 @@
INCLUDE OBJ52
INCLUDE OBJ53
INCLUDE OBJ54
- INCLUDE OBJ55
- INCLUDE OBJ56
- INCLUDE OBJ57
INCLUDE OBJLIB(CINET640)
/*
//*** WARNING *** NEVER change .LK to .OB in SYSLMOD!!!
diff --git a/usr.sbin/httpd/src/os/unix/os.c b/usr.sbin/httpd/src/os/unix/os.c
index afccc315a98..3ee29642c49 100644
--- a/usr.sbin/httpd/src/os/unix/os.c
+++ b/usr.sbin/httpd/src/os/unix/os.c
@@ -111,7 +111,13 @@ void *ap_os_dso_load(const char *path)
if (NSCreateObjectFileImageFromFile(path, &image) !=
NSObjectFileImageSuccess)
return NULL;
- handle = NSLinkModule(image, path, TRUE);
+#if defined(NSLINKMODULE_OPTION_RETURN_ON_ERROR) && defined(NSLINKMODULE_OPTION_NONE)
+ handle = NSLinkModule(image, path,
+ NSLINKMODULE_OPTION_RETURN_ON_ERROR |
+ NSLINKMODULE_OPTION_NONE);
+#else
+ handle = NSLinkModule(image, path, FALSE);
+#endif
NSDestroyObjectFileImage(image);
return handle;
diff --git a/usr.sbin/httpd/src/os/win32/mod_isapi.c b/usr.sbin/httpd/src/os/win32/mod_isapi.c
index 0f502e275f9..0065e929065 100644
--- a/usr.sbin/httpd/src/os/win32/mod_isapi.c
+++ b/usr.sbin/httpd/src/os/win32/mod_isapi.c
@@ -825,7 +825,7 @@ static const char *isapi_cmd_readaheadbuffer(cmd_parms *cmd, void *config,
return err;
}
- if (((val = strtol(arg, (char **) &err, 10)) <= 0) || *err)
+ if (((val = ap_strtol(arg, (char **) &err, 10)) <= 0) || *err)
return "ISAPIReadAheadBuffer must be a legitimate value.";
ReadAheadBuffer = val;
diff --git a/usr.sbin/httpd/src/os/win32/os.h b/usr.sbin/httpd/src/os/win32/os.h
index 442c5f5a90e..4cb1f65ff1d 100644
--- a/usr.sbin/httpd/src/os/win32/os.h
+++ b/usr.sbin/httpd/src/os/win32/os.h
@@ -172,6 +172,12 @@ every configuration function as __stdcall.
#define NO_SLACK
#include <stddef.h>
+/* MSVC asserts that strtol "errno is set to ERANGE
+ * if overflow or underflow occurs"
+ * Ergo we can use the library strtol safely.
+ */
+#define ap_strtol strtol
+
#define NO_OTHER_CHILD
#define NO_RELIABLE_PIPED_LOGS
diff --git a/usr.sbin/httpd/src/support/ab.8 b/usr.sbin/httpd/src/support/ab.8
index dc86e902665..6183a534d16 100644
--- a/usr.sbin/httpd/src/support/ab.8
+++ b/usr.sbin/httpd/src/support/ab.8
@@ -291,8 +291,7 @@ will shift several thousands of milli-second responses by a
considerable factor. This was further componded by a serious
interger overrun which would for realistic run's (i.e. those
longer than a few minutes) produce believable but totally
-bogus results. Thanks to Sander Temme <sctemme@covalent.net>
-for solving this riddle.
+bogus results. Thanks to Sander Temme for solving this riddle.
.SH SEE ALSO
.BR httpd(8)
diff --git a/usr.sbin/httpd/src/support/ab.c b/usr.sbin/httpd/src/support/ab.c
index d5967b22483..19862ab00b0 100644
--- a/usr.sbin/httpd/src/support/ab.c
+++ b/usr.sbin/httpd/src/support/ab.c
@@ -95,7 +95,7 @@
** - Fixed serious int overflow issues which would cause realistic (longer
** than a few minutes) run's to have wrong (but believable) results. Added
** trapping of connection errors which influenced measurements.
- ** Contributed by Sander Temme - <sctemme@covalent.net>, Early 2001
+ ** Contributed by Sander Temme - Early 2001
**
*/
/*
@@ -161,7 +161,7 @@
#endif /* NO_APACHE_INCLUDES */
#ifdef USE_SSL
-#if ((!(RSAREF)) && (!(SYSSSL)))
+#if ((!defined(RSAREF)) && (!defined(SYSSSL)))
/* Libraries on most systems.. */
#include <openssl/rsa.h>
#include <openssl/crypto.h>
@@ -255,6 +255,7 @@ char *gnuplot; /* GNUplot file */
char *csvperc; /* CSV Percentile file */
char url[1024];
char fullurl[1024];
+char colonport[1024];
int postlen = 0; /* length of data to be POSTed */
char content_type[1024]; /* content type to put in POST header */
char cookie[1024], /* optional cookie line */
@@ -288,7 +289,7 @@ int err_response = 0;
struct timeval start, endtime;
/* global request (and its length) */
-char request[512];
+char request[1024];
int reqlen;
/* one global throw-away buffer to read stuff into */
@@ -311,8 +312,9 @@ struct sockaddr_in server; /* server addr structure */
#endif
static void close_connection(struct connection * c);
-#if NO_WRITEV || USE_SSL
-static void s_write(struct connection * c, char *buff, int len);
+#if (defined(NO_WRITEV) || defined(USE_SSL))
+#define USE_S_WRITE
+static int s_write(struct connection * c, char *buff, int len);
#endif
/* --------------------------------------------------------- */
@@ -342,12 +344,13 @@ static void write_request(struct connection * c)
/* XXX this sucks - SSL mode and writev() do not mix
* another artificial difference.
*/
-#if !NO_WRITEV && !USE_SSL
+#ifndef USE_S_WRITE
struct iovec out[2];
int outcnt = 1;
#endif
+ int snd = 0;
gettimeofday(&c->connect, 0);
-#if !NO_WRITEV && !USE_SSL
+#ifndef USE_S_WRITE
out[0].iov_base = request;
out[0].iov_len = reqlen;
@@ -357,18 +360,28 @@ static void write_request(struct connection * c)
outcnt = 2;
totalposted += (reqlen + postlen);
}
- writev(c->fd, out, outcnt);
+ snd = writev(c->fd, out, outcnt);
#else
- s_write(c, request, reqlen);
+ snd = s_write(c, request, reqlen);
if (posting > 0) {
- s_write(c, postdata, postlen);
- totalposted += (reqlen + postlen);
+ snd += s_write(c, postdata, postlen);
+ totalposted += (reqlen + postlen);
}
#endif
-
- c->state = STATE_READ;
+ if (snd < 0) {
+ bad++;
+ err_conn++;
+ close_connection(c);
+ return;
+ } else
+ if (snd != (reqlen + postlen)) {
+ /* We cannot cope with this. */
+ fprintf(stderr,"The entire post RQ could not be transmitted to the socket.\n");
+ exit(1);
+ }
FD_SET(c->fd, &readbits);
FD_CLR(c->fd, &writebits);
+ c->state = STATE_READ;
gettimeofday(&c->endwrite, 0);
}
@@ -376,17 +389,18 @@ static void write_request(struct connection * c)
/* Do actual data writing */
-#if NO_WRITEV || USE_SSL
-static void s_write(struct connection * c, char *buff, int len)
+#ifdef USE_S_WRITE
+static int s_write(struct connection * c, char *buff, int len)
{
+ int left = len;
do {
int n;
-#if USE_SSL
+#ifdef USE_SSL
if (ssl) {
- n = SSL_write(c->ssl, buff, len);
+ n = SSL_write(c->ssl, buff, left);
if (n < 0) {
int e = SSL_get_error(c->ssl, n);
- /* XXXX propably wrong !!! */
+ /* XXXX probably wrong !!! */
if ((e != SSL_ERROR_WANT_READ) && (e != SSL_ERROR_WANT_WRITE))
n = -1;
else
@@ -395,7 +409,7 @@ static void s_write(struct connection * c, char *buff, int len)
}
else
#endif
- n = ab_write(c->fd, buff, len);
+ n = ab_write(c->fd, buff, left);
if (n < 0) {
switch (errno) {
@@ -405,9 +419,9 @@ static void s_write(struct connection * c, char *buff, int len)
/* We've tried to write to a broken pipe. */
epipe++;
close_connection(c);
- return;
+ return len-left;
default:
-#if USE_SSL
+#ifdef USE_SSL
if (ssl) {
fprintf(stderr,"Error writing: ");
ERR_print_errors_fp(stderr);
@@ -419,11 +433,13 @@ static void s_write(struct connection * c, char *buff, int len)
}
else if (n) {
if (verbosity >= 3)
- printf(" --> write(%x) %d (%d)\n", (unsigned char) buff[0], n, len);
+ printf(" --> write(%x) %d (%d)\n", (unsigned char) buff[0], n, left);
buff += n;
- len -= n;
+ left -= n;
};
- } while (len > 0);
+ } while (left > 0);
+
+ return len - left;
}
#endif
@@ -623,7 +639,7 @@ static void output_results(void)
/*
* XXX: what is better; this hideous cast of the copare function; or
* the four warnings during compile ? dirkx just does not know and
- * hates both/
+ * hates both
*/
qsort(stats, requests, sizeof(struct data),
(int (*) (const void *, const void *)) compradre);
@@ -865,12 +881,12 @@ static void start_connect(struct connection * c)
c->fd = socket(AF_INET, SOCK_STREAM, 0);
if (c->fd < 0) {
what = "SOCKET";
- goto bad;
+ goto _bad;
};
-#if USE_SSL
+#ifdef USE_SSL
/*
- * XXXX move nonblocker - so that measnurement needs to have its OWN
+ * XXX move nonblocker - so that measnurement needs to have its OWN
* state engine OR cannot be compared to http.
*/
if (!ssl)
@@ -880,23 +896,17 @@ static void start_connect(struct connection * c)
again:
gettimeofday(&c->start, 0);
if (connect(c->fd, (struct sockaddr *) & server, sizeof(server)) < 0) {
- if (errno == EINPROGRESS) {
- c->state = STATE_CONNECTING;
- }
- else {
+ if (errno != EINPROGRESS) {
what = "CONNECT";
- goto bad;
+ goto _bad;
};
}
- else {
- /* connected first time */
- c->state = STATE_CONNECTING;
- }
+ c->state = STATE_CONNECTING;
#ifdef USE_SSL
- /* XX no proper freeing in error's */
+ /* XXX no proper freeing in error's */
/*
- * XXXX no proper choise of completely new connection or one which reuses
+ * XXX no proper choise of completely new connection or one which reuses
* (older) session keys. Fundamentally unrealistic.
*/
if (ssl) {
@@ -904,34 +914,35 @@ again:
if (!(c->ssl = SSL_new(ctx))) {
fprintf(stderr, "Failed to set up new SSL context ");
ERR_print_errors_fp(stderr);
- goto bad;
+ goto _bad;
};
SSL_set_connect_state(c->ssl);
if ((e = SSL_set_fd(c->ssl, c->fd)) == -1) {
fprintf(stderr, "SSL fd init failed ");
ERR_print_errors_fp(stderr);
- goto bad;
+ goto _bad;
};
if ((e = SSL_connect(c->ssl)) == -1) {
fprintf(stderr, "SSL connect failed ");
ERR_print_errors_fp(stderr);
- goto bad;
+ goto _bad;
};
if (verbosity >= 1)
fprintf(stderr, "SSL connection OK: %s\n", SSL_get_cipher(c->ssl));
}
#endif
-#if USE_SSL
+#ifdef USE_SSL
if (ssl)
nonblock(c->fd);
#endif
FD_SET(c->fd, &writebits);
return;
-bad:
+_bad:
ab_close(c->fd);
err_conn++;
- if (bad++ > 10) {
+ bad++;
+ if (bad > 10) {
err("\nTest aborted after 10 failures\n\n");
}
goto again;
@@ -995,10 +1006,10 @@ static void read_connection(struct connection * c)
char respcode[4]; /* 3 digits and null */
gettimeofday(&c->beginread, 0);
-#if USE_SSL
+#ifdef USE_SSL
if (ssl) {
r = SSL_read(c->ssl, buffer, sizeof(buffer));
- /* XXX fundamwentally worng .. */
+ /* XXX fundamentally worng .. */
if (r < 0 && SSL_get_error(c->ssl, r) == SSL_ERROR_WANT_READ) {
r = -1;
errno = EAGAIN;
@@ -1172,7 +1183,8 @@ static void test(void)
fd_set sel_read, sel_except, sel_write;
long i;
int connectport;
- char * url_on_request, * host;
+ char * connecthost;
+ char * url_on_request;
/* There are four hostname's involved:
* The 'hostname' from the URL, the
@@ -1182,11 +1194,15 @@ static void test(void)
*/
if (isproxy) {
/* Connect to proxyhost:proxyport
- * And set Host: to the hostname of
- * the proxy - whistl quoting the
- * full URL in the GET/POST line.
+ * And set Host: to the hostname and
+ * if not default :port of the URL.
+ * See RFC2616 - $14.23. But then in
+ * $5.2.1 it says that the Host: field
+ * when passed on MUST be ignored. So
+ * perhaps we should NOT send any
+ * when we are proxying.
*/
- host = proxyhost;
+ connecthost = proxyhost;
connectport = proxyport;
url_on_request = fullurl;
}
@@ -1197,11 +1213,11 @@ static void test(void)
* header; and do not quote a full
* URL in the GET/POST line.
*/
- host = hostname;
+ connecthost = hostname;
connectport = port;
url_on_request = path;
}
-
+
if (!use_html) {
printf("Benchmarking %s (be patient)%s",
hostname, (heartbeatres ? "\n" : "..."));
@@ -1210,10 +1226,11 @@ static void test(void)
{
/* get server information */
struct hostent *he;
- he = gethostbyname(host);
+ he = gethostbyname(connecthost);
if (!he) {
char theerror[1024];
- sprintf(theerror, "Bad hostname: %s\n", host);
+ ap_snprintf(theerror, sizeof(theerror),
+ "Bad hostname: %s\n", connecthost);
err(theerror);
}
server.sin_family = he->h_addrtype;
@@ -1231,35 +1248,37 @@ static void test(void)
/* setup request */
if (posting <= 0) {
- sprintf(request, "%s %s HTTP/1.0\r\n"
- "User-Agent: ApacheBench/%s\r\n"
- "%s" "%s" "%s"
- "Host: %s\r\n"
- "Accept: */*\r\n"
- "%s" "\r\n",
- (posting == 0) ? "GET" : "HEAD",
- url_on_request,
- VERSION,
- keepalive ? "Connection: Keep-Alive\r\n" : "",
- cookie, auth,
- host, hdrs);
+ ap_snprintf(request, sizeof(request),
+ "%s %s HTTP/1.0\r\n"
+ "User-Agent: ApacheBench/%s\r\n"
+ "%s" "%s" "%s"
+ "Host: %s%s\r\n"
+ "Accept: */*\r\n"
+ "%s" "\r\n",
+ (posting == 0) ? "GET" : "HEAD",
+ url_on_request,
+ VERSION,
+ keepalive ? "Connection: Keep-Alive\r\n" : "",
+ cookie, auth,
+ hostname,colonport, hdrs);
}
else {
- sprintf(request, "POST %s HTTP/1.0\r\n"
- "User-Agent: ApacheBench/%s\r\n"
- "%s" "%s" "%s"
- "Host: %s\r\n"
- "Accept: */*\r\n"
- "Content-length: %d\r\n"
- "Content-type: %s\r\n"
- "%s"
- "\r\n",
- url_on_request,
- VERSION,
- keepalive ? "Connection: Keep-Alive\r\n" : "",
- cookie, auth,
- host, postlen,
- (content_type[0]) ? content_type : "text/plain", hdrs);
+ ap_snprintf(request, sizeof(request),
+ "POST %s HTTP/1.0\r\n"
+ "User-Agent: ApacheBench/%s\r\n"
+ "%s" "%s" "%s"
+ "Host: %s%s\r\n"
+ "Accept: */*\r\n"
+ "Content-length: %d\r\n"
+ "Content-type: %s\r\n"
+ "%s"
+ "\r\n",
+ url_on_request,
+ VERSION,
+ keepalive ? "Connection: Keep-Alive\r\n" : "",
+ cookie, auth,
+ hostname, colonport, postlen,
+ (content_type[0]) ? content_type : "text/plain", hdrs);
}
if (verbosity >= 2)
@@ -1332,14 +1351,14 @@ static void test(void)
static void copyright(void)
{
if (!use_html) {
- printf("This is ApacheBench, Version %s\n", VERSION " <$Revision: 1.8 $> apache-1.3");
+ printf("This is ApacheBench, Version %s\n", VERSION " <$Revision: 1.9 $> apache-1.3");
printf("Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n");
printf("Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/\n");
printf("\n");
}
else {
printf("<p>\n");
- printf(" This is ApacheBench, Version %s <i>&lt;%s&gt;</i> apache-1.3<br>\n", VERSION, "$Revision: 1.8 $");
+ printf(" This is ApacheBench, Version %s <i>&lt;%s&gt;</i> apache-1.3<br>\n", VERSION, "$Revision: 1.9 $");
printf(" Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br>\n");
printf(" Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/<br>\n");
printf("</p>\n<p>\n");
@@ -1350,7 +1369,7 @@ static void copyright(void)
static void usage(char *progname)
{
fprintf(stderr, "Usage: %s [options] [http"
-#if USE_SSL
+#ifdef USE_SSL
"[s]"
#endif
"://]hostname[:port]/path\n", progname);
@@ -1380,7 +1399,7 @@ static void usage(char *progname)
fprintf(stderr, " -S Do not show confidence estimators and warnings.\n");
fprintf(stderr, " -g filename Output collected data to gnuplot format file.\n");
fprintf(stderr, " -e filename Output CSV file with percentages served\n");
-#if USE_SSL
+#ifdef USE_SSL
fprintf(stderr, " -s Use httpS instead of HTTP (SSL)\n");
#endif
fprintf(stderr, " -h Display usage information (this message)\n");
@@ -1400,7 +1419,7 @@ static int parse_url(char * purl)
if (strlen(purl) > 7 && strncmp(purl, "http://", 7) == 0)
purl += 7;
else
-#if USE_SSL
+#ifdef USE_SSL
if (strlen(purl) > 8 && strncmp(purl, "https://", 8) == 0) {
purl += 8;
ssl = 1;
@@ -1426,7 +1445,18 @@ static int parse_url(char * purl)
strcpy(hostname, h);
if (p != NULL)
port = atoi(p);
- return 0;
+
+ if ((
+#ifdef USE_SSL
+ (ssl != 0) && (port != 443)) || ((ssl == 0) &&
+#endif
+ (port != 80)))
+ {
+ ap_snprintf(colonport,sizeof(colonport),":%d",port);
+ } else {
+ colonport[0] = '\0';
+ }
+ return 0;
}
/* ------------------------------------------------------- */
@@ -1479,12 +1509,12 @@ int main(int argc, char **argv)
proxyhost[0] = '\0';
optind = 1;
while ((c = getopt(argc, argv, "n:c:t:T:p:v:kVhwix:y:z:C:H:P:A:g:X:de:Sq"
-#if USE_SSL
+#ifdef USE_SSL
"s"
#endif
)) > 0) {
switch (c) {
-#if USE_SSL
+#ifdef USE_SSL
case 's':
ssl = 1;
break;
diff --git a/usr.sbin/httpd/src/support/apxs.pl b/usr.sbin/httpd/src/support/apxs.pl
index efa8d7597e4..fd3dc92360d 100644
--- a/usr.sbin/httpd/src/support/apxs.pl
+++ b/usr.sbin/httpd/src/support/apxs.pl
@@ -112,6 +112,12 @@ my $opt_a = 0;
my $opt_A = 0;
my $opt_q = 0;
+# default for DSO file extension
+my $dso_ext = "so";
+if ($^O eq "cygwin") {
+ $dso_ext = "dll";
+}
+
# this subroutine is derived from Perl's getopts.pl with the enhancement of
# the "+" metacharater at the format string to allow a list to be build by
# subsequent occurance of the same option.
@@ -270,6 +276,7 @@ if ($opt_g) {
my $data = join('', <DATA>);
$data =~ s|%NAME%|$name|sg;
$data =~ s|%TARGET%|$CFG_TARGET|sg;
+ $data =~ s|%DSO_EXT%|$dso_ext|sg;
my ($mkf, $src) = ($data =~ m|^(.+)-=#=-\n(.+)|s);
@@ -340,14 +347,14 @@ if ($opt_c) {
if ($opt_o eq '') {
if ($#srcs > -1) {
$dso_file = $srcs[0];
- $dso_file =~ s|\.[^.]+$|.so|;
+ $dso_file =~ s|\.[^.]+$|.$dso_ext|;
}
elsif ($#objs > -1) {
$dso_file = $objs[0];
- $dso_file =~ s|\.[^.]+$|.so|;
+ $dso_file =~ s|\.[^.]+$|.$dso_ext|;
}
else {
- $dso_file = "mod_unknown.so";
+ $dso_file = "mod_unknown.$dso_ext";
}
}
else {
@@ -452,7 +459,7 @@ if ($opt_i or $opt_e) {
my @cmds = ();
my $f;
foreach $f (@args) {
- if ($f !~ m|\.so$|) {
+ if ($f !~ m|\.$dso_ext$|) {
print STDERR "apxs:Error: file $f is not a DSO\n";
exit(1);
}
@@ -592,20 +599,20 @@ APACHECTL=apachectl
#LIB=-Lmy/lib/dir -lmylib
# the default target
-all: mod_%NAME%.so
+all: mod_%NAME%.%DSO_EXT%
# compile the DSO file
-mod_%NAME%.so: mod_%NAME%.c
+mod_%NAME%.%DSO_EXT%: mod_%NAME%.c
$(APXS) -c $(DEF) $(INC) $(LIB) mod_%NAME%.c
# install the DSO file into the Apache installation
# and activate it in the Apache configuration
install: all
- $(APXS) -i -a -n '%NAME%' mod_%NAME%.so
+ $(APXS) -i -a -n '%NAME%' mod_%NAME%.%DSO_EXT%
# cleanup
clean:
- -rm -f mod_%NAME%.o mod_%NAME%.so
+ -rm -f mod_%NAME%.o mod_%NAME%.%DSO_EXT%
# simple test
test: reload
@@ -637,7 +644,7 @@ stop:
** for the URL /%NAME%, as follows:
**
** # %TARGET%.conf
-** LoadModule %NAME%_module libexec/mod_%NAME%.so
+** LoadModule %NAME%_module libexec/mod_%NAME%.%DSO_EXT%
** <Location /%NAME%>
** SetHandler %NAME%
** </Location>
diff --git a/usr.sbin/httpd/src/support/httpd.exp b/usr.sbin/httpd/src/support/httpd.exp
index 359f6dba649..a337b18a26b 100644
--- a/usr.sbin/httpd/src/support/httpd.exp
+++ b/usr.sbin/httpd/src/support/httpd.exp
@@ -106,6 +106,7 @@ ap_dummy_mutex
ap_each_byterange
ap_error_log2stderr
ap_escape_html
+ap_escape_logitem
ap_escape_path_segment
ap_escape_quotes
ap_escape_shell_cmd
@@ -129,6 +130,7 @@ ap_fini_vhost_config
ap_fnmatch
ap_force_library_loading
ap_get_basic_auth_pw
+ap_get_chunk_size
ap_get_client_block
ap_get_gmtoff
ap_get_list_item
@@ -142,6 +144,7 @@ ap_get_server_version
ap_get_time
ap_get_token
ap_get_virthost_addr
+ap_getline
ap_getparents
ap_getword
ap_getword_conf
@@ -348,6 +351,7 @@ ap_strcasecmp_match
ap_strcasestr
ap_strcmp_match
ap_stripprefix
+ap_strtol
ap_sub_req_lookup_file
ap_sub_req_lookup_uri
ap_sub_req_method_uri