Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

This commit was manufactured by cvs2svn to create tag

'apache-1_3-merge-2-pre'.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/tags/apache-1_3-merge-2-pre@83687 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information...
commit b4bca9791178730a2fbeb6dc557514851a56112d 1 parent e73a0bb
authored August 15, 1999

Showing 107 changed files with 0 additions and 30,676 deletions. Show diff stats Hide diff stats

  1. 295  build/binbuild.sh
  2. BIN  docs/docroot/apache_pb.gif
  3. 59  docs/manual/LICENSE
  4. 135  docs/manual/bind.html
  5. 135  docs/manual/bind.html.en
  6. 93  docs/manual/cgi_path.html
  7. 93  docs/manual/cgi_path.html.en
  8. 588  docs/manual/content-negotiation.html
  9. 588  docs/manual/content-negotiation.html.en
  10. 177  docs/manual/custom-error.html
  11. 177  docs/manual/custom-error.html.en
  12. 1,153  docs/manual/developer/API.html
  13. 189  docs/manual/dns-caveats.html
  14. 392  docs/manual/dso.html
  15. 392  docs/manual/dso.html.en
  16. 497  docs/manual/ebcdic.html
  17. 64  docs/manual/env.html
  18. 64  docs/manual/env.html.en
  19. 104  docs/manual/expand.pl
  20. 6  docs/manual/footer.html
  21. 195  docs/manual/handler.html
  22. 195  docs/manual/handler.html.en
  23. 6  docs/manual/header.html
  24. BIN  docs/manual/images/custom_errordocs.gif
  25. BIN  docs/manual/images/home.gif
  26. BIN  docs/manual/images/index.gif
  27. 60  docs/manual/images/mod_rewrite_fig1.fig
  28. BIN  docs/manual/images/mod_rewrite_fig1.gif
  29. 50  docs/manual/images/mod_rewrite_fig2.fig
  30. BIN  docs/manual/images/mod_rewrite_fig2.gif
  31. BIN  docs/manual/images/sub.gif
  32. 277  docs/manual/install-tpf.html
  33. 270  docs/manual/install.html
  34. 270  docs/manual/install.html.en
  35. 220  docs/manual/invoking.html
  36. 220  docs/manual/invoking.html.en
  37. 68  docs/manual/location.html
  38. 1,153  docs/manual/misc/API.html
  39. 279  docs/manual/misc/FAQ-A.html
  40. 378  docs/manual/misc/FAQ-B.html
  41. 273  docs/manual/misc/FAQ-C.html
  42. 370  docs/manual/misc/FAQ-D.html
  43. 598  docs/manual/misc/FAQ-E.html
  44. 524  docs/manual/misc/FAQ-F.html
  45. 371  docs/manual/misc/FAQ-G.html
  46. 265  docs/manual/misc/FAQ-H.html
  47. 215  docs/manual/misc/FAQ-I.html
  48. 111  docs/manual/misc/FAQ.html
  49. 87  docs/manual/misc/client_block_api.html
  50. 126  docs/manual/misc/compat_notes.html
  51. 431  docs/manual/misc/custom_errordocs.html
  52. 155  docs/manual/misc/descriptors.html
  53. 324  docs/manual/misc/fin_wait_2.html
  54. 8  docs/manual/misc/footer.html
  55. 6  docs/manual/misc/header.html
  56. 209  docs/manual/misc/howto.html
  57. 151  docs/manual/misc/index.html
  58. 305  docs/manual/misc/known_client_problems.html
  59. 871  docs/manual/misc/perf-tuning.html
  60. 232  docs/manual/misc/security_tips.html
  61. 3,295  docs/manual/mod/core.html
  62. 265  docs/manual/mod/directive-dict.html
  63. 265  docs/manual/mod/directive-dict.html.en
  64. 223  docs/manual/mod/directives.html
  65. 8  docs/manual/mod/footer.html
  66. 6  docs/manual/mod/header.html
  67. 124  docs/manual/mod/index.html
  68. 312  docs/manual/mod/mod_access.html
  69. 126  docs/manual/mod/mod_actions.html
  70. 405  docs/manual/mod/mod_alias.html
  71. 68  docs/manual/mod/mod_asis.html
  72. 214  docs/manual/mod/mod_auth.html
  73. 363  docs/manual/mod/mod_auth_anon.html
  74. 220  docs/manual/mod/mod_auth_db.html
  75. 210  docs/manual/mod/mod_auth_dbm.html
  76. 416  docs/manual/mod/mod_auth_digest.html
  77. 814  docs/manual/mod/mod_autoindex.html
  78. 143  docs/manual/mod/mod_cern_meta.html
  79. 216  docs/manual/mod/mod_cgi.html
  80. 103  docs/manual/mod/mod_dir.html
  81. 137  docs/manual/mod/mod_env.html
  82. 168  docs/manual/mod/mod_example.html
  83. 327  docs/manual/mod/mod_expires.html
  84. 121  docs/manual/mod/mod_headers.html
  85. 329  docs/manual/mod/mod_imap.html
  86. 420  docs/manual/mod/mod_include.html
  87. 113  docs/manual/mod/mod_info.html
  88. 73  docs/manual/mod/mod_isapi.html
  89. 77  docs/manual/mod/mod_log_agent.html
  90. 450  docs/manual/mod/mod_log_config.html
  91. 117  docs/manual/mod/mod_log_referer.html
  92. 538  docs/manual/mod/mod_mime.html
  93. 275  docs/manual/mod/mod_mime_magic.html
  94. 142  docs/manual/mod/mod_mmap_static.html
  95. 201  docs/manual/mod/mod_negotiation.html
  96. 1,162  docs/manual/mod/mod_proxy.html
  97. 1,874  docs/manual/mod/mod_rewrite.html
  98. 398  docs/manual/mod/mod_setenvif.html
  99. 164  docs/manual/mod/mod_so.html
  100. 122  docs/manual/mod/mod_speling.html
  101. 131  docs/manual/mod/mod_status.html
  102. 180  docs/manual/mod/mod_unique_id.html
  103. 123  docs/manual/mod/mod_userdir.html
  104. 199  docs/manual/mod/mod_usertrack.html
  105. 311  docs/manual/mod/mod_vhost_alias.html
  106. 254  docs/manual/platform/perf-bsd44.html
295  build/binbuild.sh
... ...
@@ -1,295 +0,0 @@
1  
-#!/bin/sh
2  
-#
3  
-# binbuild.sh - Builds an Apache binary distribution.
4  
-# Initially written by Lars Eilebrecht <lars@apache.org>.
5  
-#
6  
-# This script falls under the Apache License.
7  
-# See http://www.apache.org/docs/LICENSE
8  
-
9  
-
10  
-CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most --enable-shared=max"
11  
-APDIR=`pwd`
12  
-APDIR=`basename $APDIR`
13  
-VER=`echo $APDIR |sed s/apache_//`
14  
-OS=`src/helpers/GuessOS`
15  
-TAR="`src/helpers/PrintPath tar`"
16  
-GTAR="`src/helpers/PrintPath gtar`"
17  
-GZIP="`src/helpers/PrintPath gzip`"
18  
-
19  
-if [ x$1 != x ]
20  
-then
21  
-  USER=$1
22  
-else
23  
-  USER="`src/helpers/buildinfo.sh -n %u@%h%d`"
24  
-fi
25  
-
26  
-if [ ! -f ./ABOUT_APACHE ]
27  
-then
28  
-  echo "ERROR: The current directory contains no valid Apache distribution."
29  
-  echo "Please change the directory to the top level directory of a freshly"
30  
-  echo "unpacked Apache 1.3 source distribution and re-execute the script"
31  
-  echo "'./src/helpers/bindbuild.sh'." 
32  
-  exit 1;
33  
-fi
34  
-
35  
-if [ -d ./CVS ]
36  
-then
37  
-  echo "ERROR: The current directory is a CVS checkout of Apache."
38  
-  echo "Only a standard Apache 1.3 source distribution should be used to"
39  
-  echo "create a binary distribution."
40  
-  exit 1;
41  
-fi
42  
-
43  
-echo "Building Apache $VER binary distribution..."
44  
-echo "Platform is \"$OS\"..."
45  
-
46  
-( echo "Build log for Apache binary distribution" && \
47  
-  echo "----------------------------------------------------------------------" && \
48  
-  ./configure $CONFIGPARAM && \
49  
-  echo "----------------------------------------------------------------------" && \
50  
-  make clean && \
51  
-  rm -rf bindist install-bindist.sh *.bindist
52  
-  echo "----------------------------------------------------------------------" && \
53  
-  make && \
54  
-  echo "----------------------------------------------------------------------" && \
55  
-  make install-quiet root="bindist/" && \
56  
-  echo "----------------------------------------------------------------------" && \
57  
-  make clean && \
58  
-  echo "----------------------------------------------------------------------" && \
59  
-  echo "[EOF]" \
60  
-) > build.log 2>&1
61  
-
62  
-if [ ! -f ./bindist/bin/httpd ]
63  
-then
64  
-  echo "ERROR: Failed to build Apache. See \"build.log\" for details."
65  
-  exit 1;
66  
-fi
67  
-
68  
-echo "Binary image successfully created..."
69  
-
70  
-./bindist/bin/httpd -v
71  
-
72  
-echo "Creating supplementary files..."
73  
-
74  
-( echo " " && \
75  
-  echo "Apache $VER binary distribution" && \
76  
-  echo "================================" && \
77  
-  echo " " && \
78  
-  echo "This binary distribution is usable on a \"$OS\"" && \
79  
-  echo "system and was built by \"$USER\"." && \
80  
-  echo "" && \
81  
-  echo "The distribution contains all standard Apache modules as shared" && \
82  
-  echo "objects. This allows you to enable or disable particular modules" && \
83  
-  echo "with the LoadModule/AddModule directives in the configuration file" && \
84  
-  echo "without the need to re-compile Apache." && \
85  
-  echo "" && \
86  
-  echo "See \"INSTALL.bindist\" on how to install the distribution." && \
87  
-  echo " " && \
88  
-  echo "NOTE: Please do not send support-related mails to the address mentioned" && \
89  
-  echo "      above or to any member of the Apache Group! Support questions" && \
90  
-  echo "      should be directed to the \"comp.infosystems.www.servers.unix\"" && \
91  
-  echo "      or \"comp.infosystems.www.servers.ms-windows\" newsgroup" && \
92  
-  echo "      (as appropriate for the platform you use), where some of the" && \
93  
-  echo "      Apache team lurk, in the company of many other Apache gurus" && \
94  
-  echo "      who should be able to help." && \
95  
-  echo "      If you think you found a bug in Apache or have a suggestion please" && \
96  
-  echo "      visit the bug report page at http://www.apache.org/bug_report.html" && \
97  
-  echo " " && \
98  
-  echo "----------------------------------------------------------------------" && \
99  
-  ./bindist/bin/httpd -V && \
100  
-  echo "----------------------------------------------------------------------" \
101  
-) > README.bindist
102  
-cp README.bindist ../apache_$VER-$OS.README
103  
-
104  
-( echo " " && \
105  
-  echo "Apache $VER binary installation" && \
106  
-  echo "================================" && \
107  
-  echo " " && \
108  
-  echo "To install this binary distribution you have to execute the installation" && \
109  
-  echo "script \"install-bindist.sh\" in the top-level directory of the distribution." && \
110  
-  echo " " && \
111  
-  echo "The script takes the ServerRoot directory into which you want to install" && \
112  
-  echo "Apache as an option. If you ommit the option the default path" && \
113  
-  echo "\"/usr/local/apache\" is used." && \
114  
-  echo "Make sure you have write permissions in the target directory, e.g. switch" && \
115  
-  echo "to user \"root\" before you execute the script." && \
116  
-  echo " " && \
117  
-  echo "See \"README.bindist\" for further details about this distribution." && \
118  
-  echo " " && \
119  
-  echo "Please note that this distribution includes the complete Apache source code." && \
120  
-  echo "Therefore you may compile Apache yourself at any time if you have a compiler" && \
121  
-  echo "installation on your system." && \
122  
-  echo "See \"INSTALL\" for details on how to accomplish this." && \
123  
-  echo " " \
124  
-) > INSTALL.bindist
125  
-
126  
-( echo "#!/bin/sh" && \
127  
-  echo "#" && \
128  
-  echo "# Usage: install-bindist.sh [ServerRoot]" && \
129  
-  echo "# This script installs the Apache binary distribution and" && \
130  
-  echo "# was automatically created by binbuild.sh." && \
131  
-  echo " " && \
132  
-  echo "lmkdir()" && \
133  
-  echo "{" && \
134  
-  echo "  path=\"\"" && \
135  
-  echo "  dirs=\`echo \$1 | sed -e 's%/% %g'\`" && \
136  
-  echo "  mode=\$2" && \
137  
-  echo " " && \
138  
-  echo "  set -- \${dirs}" && \
139  
-  echo " " && \
140  
-  echo "  for d in \${dirs}" && \
141  
-  echo "  do" && \
142  
-  echo "    path=\"\${path}/\$d\"" && \
143  
-  echo "    if test ! -d \"\${path}\" ; then" && \
144  
-  echo "      mkdir \${path}" && \
145  
-  echo "      if test \$? -ne 0 ; then" && \
146  
-  echo "        echo \"Failed to create directory: \${path}\"" && \
147  
-  echo "        exit 1" && \
148  
-  echo "      fi" && \
149  
-  echo "      chmod \${mode} \${path}" && \
150  
-  echo "    fi" && \
151  
-  echo "  done" && \
152  
-  echo "}" && \
153  
-  echo " " && \
154  
-  echo "lcopy()" && \
155  
-  echo "{" && \
156  
-  echo "  from=\$1" && \
157  
-  echo "  to=\$2" && \
158  
-  echo "  dmode=\$3" && \
159  
-  echo "  fmode=\$4" && \
160  
-  echo " " && \
161  
-  echo "  test -d \${to} || lmkdir \${to} \${dmode}" && \
162  
-  echo "  (cd \${from} && tar -cf - *) | (cd \${to} && tar -xf -)" && \
163  
-  echo " " && \
164  
-  echo "  if test \"X\${fmode}\" != X ; then" && \
165  
-  echo "    find \${to} -type f -print | xargs chmod \${fmode}" && \
166  
-  echo "  fi" && \
167  
-  echo "  if test \"X\${dmode}\" != X ; then" && \
168  
-  echo "    find \${to} -type d -print | xargs chmod \${dmode}" && \
169  
-  echo "  fi" && \
170  
-  echo "}" && \
171  
-  echo " " && \
172  
-  echo "##" && \
173  
-  echo "##  determine path to (optional) Perl interpreter" && \
174  
-  echo "##" && \
175  
-  echo "PERL=no-perl5-on-this-system" && \
176  
-  echo "perls='perl5 perl'" && \
177  
-  echo "path=\`echo \$PATH | sed -e 's/:/ /g'\`" && \
178  
-  echo " " && \
179  
-  echo "for dir in \${path} ;  do" && \
180  
-  echo "  for pperl in \${perls} ; do" && \
181  
-  echo "    if test -f \"\${dir}/\${pperl}\" ; then" && \
182  
-  echo "      if \`\${dir}/\${pperl} -v | grep 'version 5\.' >/dev/null 2>&1\` ; then" && \
183  
-  echo "        PERL=\"\${dir}/\${pperl}\"" && \
184  
-  echo "        break" && \
185  
-  echo "      fi" && \
186  
-  echo "    fi" && \
187  
-  echo "  done" && \
188  
-  echo "done" && \
189  
-  echo " " && \
190  
-  echo "if [ .\$1 = . ]" && \
191  
-  echo "then" && \
192  
-  echo "  SR=/usr/local/apache" && \
193  
-  echo "else" && \
194  
-  echo "  SR=\$1" && \
195  
-  echo "fi" && \
196  
-  echo "echo \"Installing binary distribution for platform $OS\"" && \
197  
-  echo "echo \"into directory \$SR ...\"" && \
198  
-  echo "lmkdir \$SR 755" && \
199  
-  echo "lmkdir \$SR/proxy 750" && \
200  
-  echo "lmkdir \$SR/logs 750" && \
201  
-  echo "lcopy bindist/man \$SR/man 755 644" && \
202  
-  echo "lcopy bindist/libexec \$SR/libexec 750 644" && \
203  
-  echo "lcopy bindist/include \$SR/include 755 644" && \
204  
-  echo "lcopy bindist/icons \$SR/icons 755 644" && \
205  
-  echo "lcopy bindist/cgi-bin \$SR/cgi-bin 750 750" && \
206  
-  echo "lcopy bindist/bin \$SR/bin 750 750" && \
207  
-  echo "if [ -d \$SR/conf ]" && \
208  
-  echo "then" && \
209  
-  echo "  echo \"[Preserving existing configuration files.]\"" && \
210  
-  echo "  cp bindist/conf/*.default \$SR/conf/" && \
211  
-  echo "else" && \
212  
-  echo "  lcopy bindist/conf \$SR/conf 750 640" && \
213  
-  echo "fi" && \
214  
-  echo "if [ -d \$SR/htdocs ]" && \
215  
-  echo "then" && \
216  
-  echo "  echo \"[Preserving existing htdocs directory.]\"" && \
217  
-  echo "else" && \
218  
-  echo "  lcopy bindist/htdocs \$SR/htdocs 755 644" && \
219  
-  echo "fi" && \
220  
-  echo " " && \
221  
-  echo "sed -e \"s;^#!/.*;#!\$PERL;\" -e \"s;\@prefix\@;\$SR;\" -e \"s;\@sbindir\@;\$SR/bin;\" \\" && \
222  
-  echo "	-e \"s;\@libexecdir\@;\$SR/libexec;\" -e \"s;\@includedir\@;\$SR/include;\" \\" && \
223  
-  echo "	-e \"s;\@sysconfdir\@;\$SR/conf;\" bindist/bin/apxs > \$SR/bin/apxs" && \
224  
-  echo "sed -e \"s;^#!/.*;#!\$PERL;\" bindist/bin/dbmmanage > \$SR/bin/dbmmanage" && \
225  
-  echo "sed -e \"s%/usr/local/apache%\$SR%\" \$SR/conf/httpd.conf.default > \$SR/conf/httpd.conf" && \
226  
-  echo "sed -e \"s%PIDFILE=%PIDFILE=\$SR/%\" -e \"s%HTTPD=%HTTPD=\\\"\$SR/%\" -e \"s%httpd\$%httpd -d \$SR -R \$SR/libexec\\\"%\" bindist/bin/apachectl > \$SR/bin/apachectl" && \
227  
-  echo " " && \
228  
-  echo "echo \"Ready.\"" && \
229  
-  echo "echo \" +--------------------------------------------------------+\"" && \
230  
-  echo "echo \" | You now have successfully installed the Apache $VER   |\"" && \
231  
-  echo "echo \" | HTTP server. To verify that Apache actually works      |\"" && \
232  
-  echo "echo \" | correctly you should first check the (initially        |\"" && \
233  
-  echo "echo \" | created or preserved) configuration files:             |\"" && \
234  
-  echo "echo \" |                                                        |\"" && \
235  
-  echo "echo \" |   \$SR/conf/httpd.conf\"" && \
236  
-  echo "echo \" |                                                        |\"" && \
237  
-  echo "echo \" | You should then be able to immediately fire up         |\"" && \
238  
-  echo "echo \" | Apache the first time by running:                      |\"" && \
239  
-  echo "echo \" |                                                        |\"" && \
240  
-  echo "echo \" |   \$SR/bin/apachectl start \"" &&\
241  
-  echo "echo \" |                                                        |\"" && \
242  
-  echo "echo \" | Thanks for using Apache.       The Apache Group        |\"" && \
243  
-  echo "echo \" |                                http://www.apache.org/  |\"" && \
244  
-  echo "echo \" +--------------------------------------------------------+\"" && \
245  
-  echo "echo \" \"" \
246  
-) > install-bindist.sh
247  
-chmod 755 install-bindist.sh
248  
-
249  
-sed -e "s%\"htdocs%\"/usr/local/apache/htdocs%" \
250  
-    -e "s%\"icons%\"/usr/local/apache/icons%" \
251  
-    -e "s%\"cgi-bin%\"/usr/local/apache/cgi-bin%" \
252  
-    -e "s%\"proxy%\"/usr/local/apache/proxy%" \
253  
-    -e "s%^ServerAdmin.*%ServerAdmin you@your.address%" \
254  
-    -e "s%#ServerName.*%#ServerName localhost%" \
255  
-    -e "s%Port 8080%Port 80%" \
256  
-    bindist/conf/httpd.conf.default > bindist/conf/httpd.conf
257  
-cp bindist/conf/httpd.conf bindist/conf/httpd.conf.default
258  
-
259  
-echo "Creating distribution archive and readme file..."
260  
- 
261  
-if [ ".`grep -i error build.log > /dev/null`" != . ]
262  
-then
263  
-  echo "ERROR: Failed to build Apache. See \"build.log\" for details."
264  
-  exit 1;
265  
-else
266  
-  if [ "x$GTAR" != "x" ]
267  
-  then
268  
-    $GTAR -zcf ../apache_$VER-$OS.tar.gz -C .. apache_$VER
269  
-  else
270  
-    if [ "x$TAR" != "x" ]
271  
-    then
272  
-      $TAR -cf ../apache_$VER-$OS.tar -C .. apache_$VER
273  
-      if [ "x$GZIP" != "x" ]
274  
-      then
275  
-        $GZIP ../apache_$VER-$OS.tar
276  
-      fi
277  
-    else
278  
-      echo "ERROR: Could not find a 'tar' program!"
279  
-      echo "       Please execute the following commands manually:"
280  
-      echo "         tar -cf ../apache_$VER-$OS.tar ."
281  
-      echo "         gzip ../apache_$VER-$OS.tar"
282  
-    fi
283  
-  fi
284  
-
285  
-  if [ -f ../apache_$VER-$OS.tar.gz ] && [ -f ../apache_$VER-$OS.README ]
286  
-  then
287  
-    echo "Ready."
288  
-    echo "You can find the binary archive (apache_$VER-$OS.tar.gz)"
289  
-    echo "and the readme file (apache_$VER-$OS.README) in the"
290  
-    echo "parent directory."
291  
-    exit 0;
292  
-  else
293  
-    exit 1;
294  
-  fi
295  
-fi
BIN  docs/docroot/apache_pb.gif
59  docs/manual/LICENSE
... ...
@@ -1,59 +0,0 @@
1  
-/* ====================================================================
2  
- * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
3  
- *
4  
- * Redistribution and use in source and binary forms, with or without
5  
- * modification, are permitted provided that the following conditions
6  
- * are met:
7  
- *
8  
- * 1. Redistributions of source code must retain the above copyright
9  
- *    notice, this list of conditions and the following disclaimer. 
10  
- *
11  
- * 2. Redistributions in binary form must reproduce the above copyright
12  
- *    notice, this list of conditions and the following disclaimer in
13  
- *    the documentation and/or other materials provided with the
14  
- *    distribution.
15  
- *
16  
- * 3. All advertising materials mentioning features or use of this
17  
- *    software must display the following acknowledgment:
18  
- *    "This product includes software developed by the Apache Group
19  
- *    for use in the Apache HTTP server project (http://www.apache.org/)."
20  
- *
21  
- * 4. The names "Apache Server" and "Apache Group" must not be used to
22  
- *    endorse or promote products derived from this software without
23  
- *    prior written permission. For written permission, please contact
24  
- *    apache@apache.org.
25  
- *
26  
- * 5. Products derived from this software may not be called "Apache"
27  
- *    nor may "Apache" appear in their names without prior written
28  
- *    permission of the Apache Group.
29  
- *
30  
- * 6. Redistributions of any form whatsoever must retain the following
31  
- *    acknowledgment:
32  
- *    "This product includes software developed by the Apache Group
33  
- *    for use in the Apache HTTP server project (http://www.apache.org/)."
34  
- *
35  
- * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
36  
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37  
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38  
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
39  
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41  
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42  
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43  
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44  
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45  
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46  
- * OF THE POSSIBILITY OF SUCH DAMAGE.
47  
- * ====================================================================
48  
- *
49  
- * This software consists of voluntary contributions made by many
50  
- * individuals on behalf of the Apache Group and was originally based
51  
- * on public domain software written at the National Center for
52  
- * Supercomputing Applications, University of Illinois, Urbana-Champaign.
53  
- * For more information on the Apache Group and the Apache HTTP server
54  
- * project, please see <http://www.apache.org/>.
55  
- *
56  
- */
57  
-
58  
-
59  
-
135  docs/manual/bind.html
... ...
@@ -1,135 +0,0 @@
1  
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2  
-<HTML><HEAD>
3  
-<TITLE>Setting which addresses and ports Apache uses</TITLE>
4  
-</HEAD>
5  
-
6  
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
7  
-<BODY
8  
- BGCOLOR="#FFFFFF"
9  
- TEXT="#000000"
10  
- LINK="#0000FF"
11  
- VLINK="#000080"
12  
- ALINK="#FF0000"
13  
->
14  
-<!--#include virtual="header.html" -->
15  
-<H1 ALIGN="CENTER">Setting which addresses and ports Apache uses</H1>
16  
-
17  
-<HR>
18  
-
19  
-When Apache starts, it connects to some port and address on the
20  
-local machine and waits for incoming requests. By default, it
21  
-listens to all addresses on the machine, and to the port
22  
-as specified by the <TT>Port</TT> directive in the server configuration.
23  
-However, it can be told to listen to more the one port, or to listen
24  
-to only selected addresses, or a combination. This is often combined
25  
-with the Virtual Host feature which determines how Apache
26  
-responds to different IP addresses, hostnames and ports.<P>
27  
-
28  
-There are two directives used to restrict or specify which addresses
29  
-and ports Apache listens to.
30  
-
31  
-<UL>
32  
-<LI><A HREF="#bindaddress">BindAddress</A> is used to restrict the server to
33  
-  listening to
34  
-  a single address, and can be used to permit multiple Apache servers
35  
-  on the same machine listening to different IP addresses.
36  
-<LI><A HREF="#listen">Listen</A> can be used to make a single Apache server
37  
-  listen
38  
-  to more than one address and/or port.
39  
-</UL>
40  
-
41  
-<H3><A NAME="bindaddress">BindAddress</A></H3>
42  
-<A
43  
- HREF="mod/directive-dict.html#Syntax"
44  
- REL="Help"
45  
-><STRONG>Syntax:</STRONG></A> BindAddress <EM>[ * | IP-address 
46  
- | hostname ]</EM><BR>
47  
-<A
48  
- HREF="mod/directive-dict.html#Default"
49  
- REL="Help"
50  
-><STRONG>Default:</STRONG></A> <CODE>BindAddress *</CODE><BR>
51  
-<A
52  
- HREF="mod/directive-dict.html#Context"
53  
- REL="Help"
54  
-><STRONG>Context:</STRONG></A> server config<BR>
55  
-<A
56  
- HREF="mod/directive-dict.html#Status"
57  
- REL="Help"
58  
-><STRONG>Status:</STRONG></A> Core<P>
59  
-
60  
-Makes the server listen to just the specified address. If the argument
61  
-is *, the server listens to all addresses. The port listened to
62  
-is set with the <TT>Port</TT> directive. Only one BindAddress
63  
-should be used.
64  
-
65  
-<H3><A NAME="listen">Listen</A></H3>
66  
-<A
67  
- HREF="mod/directive-dict.html#Syntax"
68  
- REL="Help"
69  
-><STRONG>Syntax:</STRONG></A> Listen <EM>[ port | IP-address:port ]</EM><BR>
70  
-<A
71  
- HREF="mod/directive-dict.html#Default"
72  
- REL="Help"
73  
-><STRONG>Default:</STRONG></A> <CODE>none</CODE><BR>
74  
-<A
75  
- HREF="mod/directive-dict.html#Context"
76  
- REL="Help"
77  
-><STRONG>Context:</STRONG></A> server config<BR>
78  
-<A
79  
- HREF="mod/directive-dict.html#Status"
80  
- REL="Help"
81  
-><STRONG>Status:</STRONG></A> Core<P>
82  
-
83  
-<TT>Listen</TT> can be used instead of <TT>BindAddress</TT> and
84  
-<TT>Port</TT>. It tells the server to accept incoming requests on the
85  
-specified port or address-and-port combination. If the first format is
86  
-used, with a port number only, the server listens to the given port on
87  
-all interfaces, instead of the port given by the <TT>Port</TT>
88  
-directive. If an IP address is given as well as a port, the server
89  
-will listen on the given port and interface.  <P> Multiple Listen
90  
-directives may be used to specify a number of addresses and ports to
91  
-listen to. The server will respond to requests from any of the listed
92  
-addresses and ports.<P>
93  
-
94  
-For example, to make the server accept connections on both port
95  
-80 and port 8000, use:
96  
-<PRE>
97  
-   Listen 80
98  
-   Listen 8000
99  
-</PRE>
100  
-
101  
-To make the server accept connections on two specified
102  
-interfaces and port numbers, use
103  
-<PRE>
104  
-   Listen 192.170.2.1:80
105  
-   Listen 192.170.2.5:8000
106  
-</PRE>
107  
-
108  
-<H2>How this works with Virtual Hosts</H2>
109  
-
110  
-BindAddress and Listen do not implement Virtual Hosts. They tell the
111  
-main server what addresses and ports to listen to.  If no
112  
-&lt;VirtualHost&gt; directives are used, the server will behave the
113  
-same for all accepted requests. However, &lt;VirtualHost&gt; can be
114  
-used to specify a different behavior for one or more of the addresses
115  
-and ports. To implement a VirtualHost, the server must first be told
116  
-to listen to the address and port to be used. Then a
117  
-&lt;VirtualHost&gt; section should be created for a specified address
118  
-and port to set the behavior of this virtual host. Note that if the
119  
-&lt;VirtualHost&gt; is set for an address and port that the server is
120  
-not listening to, it cannot be accessed.
121  
-
122  
-<H2>See also</H2>
123  
-
124  
-See also the documentation on
125  
-<A HREF="vhosts/index.html">Virtual Hosts</A>,
126  
-<A HREF="mod/core.html#bindaddress">BindAddress directive</A>,
127  
-<A HREF="mod/core.html#port">Port directive</A>,
128  
-<A HREF="dns-caveats.html">DNS Issues</A>
129  
-and
130  
-<A HREF="mod/core.html#virtualhost">&lt;VirtualHost&gt; section</A>.
131  
-
132  
-<!--#include virtual="footer.html" -->
133  
-</BODY>
134  
-</HTML>
135  
-
135  docs/manual/bind.html.en
... ...
@@ -1,135 +0,0 @@
1  
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2  
-<HTML><HEAD>
3  
-<TITLE>Setting which addresses and ports Apache uses</TITLE>
4  
-</HEAD>
5  
-
6  
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
7  
-<BODY
8  
- BGCOLOR="#FFFFFF"
9  
- TEXT="#000000"
10  
- LINK="#0000FF"
11  
- VLINK="#000080"
12  
- ALINK="#FF0000"
13  
->
14  
-<!--#include virtual="header.html" -->
15  
-<H1 ALIGN="CENTER">Setting which addresses and ports Apache uses</H1>
16  
-
17  
-<HR>
18  
-
19  
-When Apache starts, it connects to some port and address on the
20  
-local machine and waits for incoming requests. By default, it
21  
-listens to all addresses on the machine, and to the port
22  
-as specified by the <TT>Port</TT> directive in the server configuration.
23  
-However, it can be told to listen to more the one port, or to listen
24  
-to only selected addresses, or a combination. This is often combined
25  
-with the Virtual Host feature which determines how Apache
26  
-responds to different IP addresses, hostnames and ports.<P>
27  
-
28  
-There are two directives used to restrict or specify which addresses
29  
-and ports Apache listens to.
30  
-
31  
-<UL>
32  
-<LI><A HREF="#bindaddress">BindAddress</A> is used to restrict the server to
33  
-  listening to
34  
-  a single address, and can be used to permit multiple Apache servers
35  
-  on the same machine listening to different IP addresses.
36  
-<LI><A HREF="#listen">Listen</A> can be used to make a single Apache server
37  
-  listen
38  
-  to more than one address and/or port.
39  
-</UL>
40  
-
41  
-<H3><A NAME="bindaddress">BindAddress</A></H3>
42  
-<A
43  
- HREF="mod/directive-dict.html#Syntax"
44  
- REL="Help"
45  
-><STRONG>Syntax:</STRONG></A> BindAddress <EM>[ * | IP-address 
46  
- | hostname ]</EM><BR>
47  
-<A
48  
- HREF="mod/directive-dict.html#Default"
49  
- REL="Help"
50  
-><STRONG>Default:</STRONG></A> <CODE>BindAddress *</CODE><BR>
51  
-<A
52  
- HREF="mod/directive-dict.html#Context"
53  
- REL="Help"
54  
-><STRONG>Context:</STRONG></A> server config<BR>
55  
-<A
56  
- HREF="mod/directive-dict.html#Status"
57  
- REL="Help"
58  
-><STRONG>Status:</STRONG></A> Core<P>
59  
-
60  
-Makes the server listen to just the specified address. If the argument
61  
-is *, the server listens to all addresses. The port listened to
62  
-is set with the <TT>Port</TT> directive. Only one BindAddress
63  
-should be used.
64  
-
65  
-<H3><A NAME="listen">Listen</A></H3>
66  
-<A
67  
- HREF="mod/directive-dict.html#Syntax"
68  
- REL="Help"
69  
-><STRONG>Syntax:</STRONG></A> Listen <EM>[ port | IP-address:port ]</EM><BR>
70  
-<A
71  
- HREF="mod/directive-dict.html#Default"
72  
- REL="Help"
73  
-><STRONG>Default:</STRONG></A> <CODE>none</CODE><BR>
74  
-<A
75  
- HREF="mod/directive-dict.html#Context"
76  
- REL="Help"
77  
-><STRONG>Context:</STRONG></A> server config<BR>
78  
-<A
79  
- HREF="mod/directive-dict.html#Status"
80  
- REL="Help"
81  
-><STRONG>Status:</STRONG></A> Core<P>
82  
-
83  
-<TT>Listen</TT> can be used instead of <TT>BindAddress</TT> and
84  
-<TT>Port</TT>. It tells the server to accept incoming requests on the
85  
-specified port or address-and-port combination. If the first format is
86  
-used, with a port number only, the server listens to the given port on
87  
-all interfaces, instead of the port given by the <TT>Port</TT>
88  
-directive. If an IP address is given as well as a port, the server
89  
-will listen on the given port and interface.  <P> Multiple Listen
90  
-directives may be used to specify a number of addresses and ports to
91  
-listen to. The server will respond to requests from any of the listed
92  
-addresses and ports.<P>
93  
-
94  
-For example, to make the server accept connections on both port
95  
-80 and port 8000, use:
96  
-<PRE>
97  
-   Listen 80
98  
-   Listen 8000
99  
-</PRE>
100  
-
101  
-To make the server accept connections on two specified
102  
-interfaces and port numbers, use
103  
-<PRE>
104  
-   Listen 192.170.2.1:80
105  
-   Listen 192.170.2.5:8000
106  
-</PRE>
107  
-
108  
-<H2>How this works with Virtual Hosts</H2>
109  
-
110  
-BindAddress and Listen do not implement Virtual Hosts. They tell the
111  
-main server what addresses and ports to listen to.  If no
112  
-&lt;VirtualHost&gt; directives are used, the server will behave the
113  
-same for all accepted requests. However, &lt;VirtualHost&gt; can be
114  
-used to specify a different behavior for one or more of the addresses
115  
-and ports. To implement a VirtualHost, the server must first be told
116  
-to listen to the address and port to be used. Then a
117  
-&lt;VirtualHost&gt; section should be created for a specified address
118  
-and port to set the behavior of this virtual host. Note that if the
119  
-&lt;VirtualHost&gt; is set for an address and port that the server is
120  
-not listening to, it cannot be accessed.
121  
-
122  
-<H2>See also</H2>
123  
-
124  
-See also the documentation on
125  
-<A HREF="vhosts/index.html">Virtual Hosts</A>,
126  
-<A HREF="mod/core.html#bindaddress">BindAddress directive</A>,
127  
-<A HREF="mod/core.html#port">Port directive</A>,
128  
-<A HREF="dns-caveats.html">DNS Issues</A>
129  
-and
130  
-<A HREF="mod/core.html#virtualhost">&lt;VirtualHost&gt; section</A>.
131  
-
132  
-<!--#include virtual="footer.html" -->
133  
-</BODY>
134  
-</HTML>
135  
-
93  docs/manual/cgi_path.html
... ...
@@ -1,93 +0,0 @@
1  
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2  
-<HTML><HEAD>
3  
-<TITLE>PATH_INFO Changes in the CGI Environment</TITLE>
4  
-</HEAD>
5  
-
6  
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
7  
-<BODY
8  
- BGCOLOR="#FFFFFF"
9  
- TEXT="#000000"
10  
- LINK="#0000FF"
11  
- VLINK="#000080"
12  
- ALINK="#FF0000"
13  
->
14  
-<!--#include virtual="header.html" -->
15  
-<H1 ALIGN="CENTER">PATH_INFO Changes in the CGI Environment</H1>
16  
-
17  
-<HR>
18  
-
19  
-<H2><A NAME="over">Overview</A></H2>
20  
-
21  
-<P>As implemented in Apache 1.1.1 and earlier versions, the method
22  
-Apache used to create PATH_INFO in the CGI environment was
23  
-counterintuitive, and could result in crashes in certain cases. In
24  
-Apache 1.2 and beyond, this behavior has changed. Although this
25  
-results in some compatibility problems with certain legacy CGI
26  
-applications, the Apache 1.2 behavior is still compatible with the
27  
-CGI/1.1 specification, and CGI scripts can be easily modified (<A
28  
-HREF="#compat">see below</A>).
29  
-
30  
-<H2><A NAME="prob">The Problem</A></H2>
31  
-
32  
-<P>Apache 1.1.1 and earlier implemented the PATH_INFO and SCRIPT_NAME
33  
-environment variables by looking at the filename, not the URL. While
34  
-this resulted in the correct values in many cases, when the filesystem
35  
-path was overloaded to contain path information, it could result in
36  
-errant behavior. For example, if the following appeared in a config
37  
-file:
38  
-<PRE>
39  
-     Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph
40  
-</PRE>
41  
-<P>In this case, <CODE>user.cgi</CODE> is the CGI script, the "/ralph"
42  
-is information to be passed onto the CGI. If this configuration was in
43  
-place, and a request came for "<CODE>/cgi-ralph/script/</CODE>", the
44  
-code would set PATH_INFO to "<CODE>/ralph/script</CODE>", and
45  
-SCRIPT_NAME to "<CODE>/cgi-</CODE>". Obviously, the latter is
46  
-incorrect. In certain cases, this could even cause the server to
47  
-crash.</P>
48  
-
49  
-<H2><A NAME="solution">The Solution</A></H2>
50  
-
51  
-<P>Apache 1.2 and later now determine SCRIPT_NAME and PATH_INFO by
52  
-looking directly at the URL, and determining how much of the URL is
53  
-client-modifiable, and setting PATH_INFO to it. To use the above
54  
-example, PATH_INFO would be set to "<CODE>/script</CODE>", and
55  
-SCRIPT_NAME to "<CODE>/cgi-ralph</CODE>". This makes sense and results
56  
-in no server behavior problems. It also permits the script to be
57  
-guaranteed that
58  
-"<CODE>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</CODE>"
59  
-will always be an accessible URL that points to the current script,
60  
-something which was not necessarily true with previous versions of
61  
-Apache.
62  
-
63  
-<P>However, the "<CODE>/ralph</CODE>"
64  
-information from the <CODE>Alias</CODE> directive is lost. This is
65  
-unfortunate, but we feel that using the filesystem to pass along this
66  
-sort of information is not a recommended method, and a script making
67  
-use of it "deserves" not to work. Apache 1.2b3 and later, however, do
68  
-provide <A HREF="#compat">a workaround.</A>
69  
-
70  
-<H2><A NAME="compat">Compatibility with Previous Servers</A></H2>
71  
-
72  
-<P>It may be necessary for a script that was designed for earlier
73  
-versions of Apache or other servers to need the information that the
74  
-old PATH_INFO variable provided. For this purpose, Apache 1.2 (1.2b3
75  
-and later) sets an additional variable, FILEPATH_INFO. This
76  
-environment variable contains the value that PATH_INFO would have had
77  
-with Apache 1.1.1.</P>
78  
-
79  
-<P>A script that wishes to work with both Apache 1.2 and earlier
80  
-versions can simply test for the existence of FILEPATH_INFO, and use
81  
-it if available. Otherwise, it can use PATH_INFO. For example, in
82  
-Perl, one might use:
83  
-<PRE>
84  
-    $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};
85  
-</PRE>
86  
-
87  
-<P>By doing this, a script can work with all servers supporting the
88  
-CGI/1.1 specification, including all versions of Apache.</P>
89  
-
90  
-<!--#include virtual="footer.html" -->
91  
-</BODY>
92  
-</HTML>
93  
-
93  docs/manual/cgi_path.html.en
... ...
@@ -1,93 +0,0 @@
1  
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2  
-<HTML><HEAD>
3  
-<TITLE>PATH_INFO Changes in the CGI Environment</TITLE>
4  
-</HEAD>
5  
-
6  
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
7  
-<BODY
8  
- BGCOLOR="#FFFFFF"
9  
- TEXT="#000000"
10  
- LINK="#0000FF"
11  
- VLINK="#000080"
12  
- ALINK="#FF0000"
13  
->
14  
-<!--#include virtual="header.html" -->
15  
-<H1 ALIGN="CENTER">PATH_INFO Changes in the CGI Environment</H1>
16  
-
17  
-<HR>
18  
-
19  
-<H2><A NAME="over">Overview</A></H2>
20  
-
21  
-<P>As implemented in Apache 1.1.1 and earlier versions, the method
22  
-Apache used to create PATH_INFO in the CGI environment was
23  
-counterintuitive, and could result in crashes in certain cases. In
24  
-Apache 1.2 and beyond, this behavior has changed. Although this
25  
-results in some compatibility problems with certain legacy CGI
26  
-applications, the Apache 1.2 behavior is still compatible with the
27  
-CGI/1.1 specification, and CGI scripts can be easily modified (<A
28  
-HREF="#compat">see below</A>).
29  
-
30  
-<H2><A NAME="prob">The Problem</A></H2>
31  
-
32  
-<P>Apache 1.1.1 and earlier implemented the PATH_INFO and SCRIPT_NAME
33  
-environment variables by looking at the filename, not the URL. While
34  
-this resulted in the correct values in many cases, when the filesystem
35  
-path was overloaded to contain path information, it could result in
36  
-errant behavior. For example, if the following appeared in a config
37  
-file:
38  
-<PRE>
39  
-     Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph
40  
-</PRE>
41  
-<P>In this case, <CODE>user.cgi</CODE> is the CGI script, the "/ralph"
42  
-is information to be passed onto the CGI. If this configuration was in
43  
-place, and a request came for "<CODE>/cgi-ralph/script/</CODE>", the
44  
-code would set PATH_INFO to "<CODE>/ralph/script</CODE>", and
45  
-SCRIPT_NAME to "<CODE>/cgi-</CODE>". Obviously, the latter is
46  
-incorrect. In certain cases, this could even cause the server to
47  
-crash.</P>
48  
-
49  
-<H2><A NAME="solution">The Solution</A></H2>
50  
-
51  
-<P>Apache 1.2 and later now determine SCRIPT_NAME and PATH_INFO by
52  
-looking directly at the URL, and determining how much of the URL is
53  
-client-modifiable, and setting PATH_INFO to it. To use the above
54  
-example, PATH_INFO would be set to "<CODE>/script</CODE>", and
55  
-SCRIPT_NAME to "<CODE>/cgi-ralph</CODE>". This makes sense and results
56  
-in no server behavior problems. It also permits the script to be
57  
-guaranteed that
58  
-"<CODE>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</CODE>"
59  
-will always be an accessible URL that points to the current script,
60  
-something which was not necessarily true with previous versions of
61  
-Apache.
62  
-
63  
-<P>However, the "<CODE>/ralph</CODE>"
64  
-information from the <CODE>Alias</CODE> directive is lost. This is
65  
-unfortunate, but we feel that using the filesystem to pass along this
66  
-sort of information is not a recommended method, and a script making
67  
-use of it "deserves" not to work. Apache 1.2b3 and later, however, do
68  
-provide <A HREF="#compat">a workaround.</A>
69  
-
70  
-<H2><A NAME="compat">Compatibility with Previous Servers</A></H2>
71  
-
72  
-<P>It may be necessary for a script that was designed for earlier
73  
-versions of Apache or other servers to need the information that the
74  
-old PATH_INFO variable provided. For this purpose, Apache 1.2 (1.2b3
75  
-and later) sets an additional variable, FILEPATH_INFO. This
76  
-environment variable contains the value that PATH_INFO would have had
77  
-with Apache 1.1.1.</P>
78  
-
79  
-<P>A script that wishes to work with both Apache 1.2 and earlier
80  
-versions can simply test for the existence of FILEPATH_INFO, and use
81  
-it if available. Otherwise, it can use PATH_INFO. For example, in
82  
-Perl, one might use:
83  
-<PRE>
84  
-    $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};
85  
-</PRE>
86  
-
87  
-<P>By doing this, a script can work with all servers supporting the
88  
-CGI/1.1 specification, including all versions of Apache.</P>
89  
-
90  
-<!--#include virtual="footer.html" -->
91  
-</BODY>
92  
-</HTML>
93  
-
588  docs/manual/content-negotiation.html
... ...
@@ -1,588 +0,0 @@
1  
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2  
-<HTML>
3  
-<HEAD>
4  
-<TITLE>Apache Content Negotiation</TITLE>
5  
-</HEAD>
6  
-
7  
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
8  
-<BODY
9  
- BGCOLOR="#FFFFFF"
10  
- TEXT="#000000"
11  
- LINK="#0000FF"
12  
- VLINK="#000080"
13  
- ALINK="#FF0000"
14  
->
15  
-<!--#include virtual="header.html" -->
16  
-<H1 ALIGN="CENTER">Content Negotiation</H1>
17  
-
18  
-<P>
19  
-Apache's support for content negotiation has been updated to meet the
20  
-HTTP/1.1 specification. It can choose the best representation of a
21  
-resource based on the browser-supplied preferences for media type,
22  
-languages, character set and encoding.  It is also implements a
23  
-couple of features to give more intelligent handling of requests from
24  
-browsers which send incomplete negotiation information.  <P>
25  
-
26  
-Content negotiation is provided by the
27  
-<A HREF="mod/mod_negotiation.html">mod_negotiation</A> module,
28  
-which is compiled in by default.
29  
-
30  
-<HR>
31  
-
32  
-<H2>About Content Negotiation</H2>
33  
-
34  
-<P>
35  
-A resource may be available in several different representations. For
36  
-example, it might be available in different languages or different
37  
-media types, or a combination.  One way of selecting the most
38  
-appropriate choice is to give the user an index page, and let them
39  
-select. However it is often possible for the server to choose
40  
-automatically. This works because browsers can send as part of each
41  
-request information about what representations they prefer. For
42  
-example, a browser could indicate that it would like to see
43  
-information in French, if possible, else English will do. Browsers
44  
-indicate their preferences by headers in the request. To request only
45  
-French representations, the browser would send
46  
-
47  
-<PRE>
48  
-  Accept-Language: fr
49  
-</PRE>
50  
-
51  
-<P>
52  
-Note that this preference will only be applied when there is a choice
53  
-of representations and they vary by language.
54  
-<P>
55  
-
56  
-As an example of a more complex request, this browser has been
57  
-configured to accept French and English, but prefer French, and to
58  
-accept various media types, preferring HTML over plain text or other
59  
-text types, and preferring GIF or JPEG over other media types, but also
60  
-allowing any other media type as a last resort:
61  
-
62  
-<PRE>
63  
-  Accept-Language: fr; q=1.0, en; q=0.5
64  
-  Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6,
65  
-        image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1
66  
-</PRE>
67  
-
68  
-Apache 1.2 supports 'server driven' content negotiation, as defined in
69  
-the HTTP/1.1 specification. It fully supports the Accept,
70  
-Accept-Language, Accept-Charset and Accept-Encoding request headers.
71  
-Apache 1.3.4 also supports 'transparent' content negotiation, which is
72  
-an experimental negotiation protocol defined in RFC 2295 and RFC 2296.
73  
-It does not offer support for 'feature negotiation' as defined in
74  
-these RFCs.  
75  
-<P>
76  
-
77  
-A <STRONG>resource</STRONG> is a conceptual entity identified by a URI
78  
-(RFC 2396).  An HTTP server like Apache provides access to
79  
-<STRONG>representations</STRONG> of the resource(s) within its namespace,
80  
-with each representation in the form of a sequence of bytes with a
81  
-defined media type, character set, encoding, etc.  Each resource may be
82  
-associated with zero, one, or more than one representation
83  
-at any given time.  If multiple representations are available,
84  
-the resource is referred to as <STRONG>negotiable</STRONG> and each of its
85  
-representations is termed a <STRONG>variant</STRONG>. The ways in which the
86  
-variants for a negotiable resource vary are called the
87  
-<STRONG>dimensions</STRONG> of negotiation.
88  
-
89  
-<H2>Negotiation in Apache</H2>
90  
-
91  
-<P>
92  
-In order to negotiate a resource, the server needs to be given
93  
-information about each of the variants. This is done in one of two
94  
-ways:
95  
-
96  
-<UL>
97  
-  <LI> Using a type map (<EM>i.e.</EM>, a <CODE>*.var</CODE> file) which
98  
-       names the files containing the variants explicitly, or
99  
-  <LI> Using a 'MultiViews' search, where the server does an implicit
100  
-       filename pattern match and chooses from among the results.
101  
-</UL>
102  
-
103  
-<H3>Using a type-map file</H3>
104  
-
105  
-<P>
106  
-A type map is a document which is associated with the handler
107  
-named <CODE>type-map</CODE> (or, for backwards-compatibility with
108  
-older Apache configurations, the mime type
109  
-<CODE>application/x-type-map</CODE>).  Note that to use this feature,
110  
-you must have a handler set in the configuration that defines a
111  
-file suffix as <CODE>type-map</CODE>; this is best done with a
112  
-
113  
-<PRE>
114  
-  AddHandler type-map var
115  
-</PRE>
116  
-
117  
-in the server configuration file.  See the comments in the sample config
118  
-file for more details. <P>
119  
-
120  
-Type map files have an entry for each available variant; these entries
121  
-consist of contiguous HTTP-format header lines.  Entries for
122  
-different variants are separated by blank lines.  Blank lines are
123  
-illegal within an entry.  It is conventional to begin a map file with
124  
-an entry for the combined entity as a whole (although this
125  
-is not required, and if present will be ignored). An example
126  
-map file is:
127  
-
128  
-<PRE>
129  
-  URI: foo
130  
-
131  
-  URI: foo.en.html
132  
-  Content-type: text/html
133  
-  Content-language: en
134  
-
135  
-  URI: foo.fr.de.html
136  
-  Content-type: text/html;charset=iso-8859-2
137  
-  Content-language: fr, de
138  
-</PRE>
139  
-
140  
-If the variants have different source qualities, that may be indicated
141  
-by the "qs" parameter to the media type, as in this picture (available
142  
-as jpeg, gif, or ASCII-art):
143  
-
144  
-<PRE>
145  
-  URI: foo
146  
-
147  
-  URI: foo.jpeg
148  
-  Content-type: image/jpeg; qs=0.8
149  
-
150  
-  URI: foo.gif
151  
-  Content-type: image/gif; qs=0.5
152  
-
153  
-  URI: foo.txt
154  
-  Content-type: text/plain; qs=0.01
155  
-</PRE>
156  
-<P>
157  
-
158  
-qs values can vary in the range 0.000 to 1.000. Note that any variant with
159  
-a qs value of 0.000 will never be chosen. Variants with no 'qs'
160  
-parameter value are given a qs factor of 1.0. The qs parameter indicates
161  
-the relative 'quality' of this variant compared to the other available
162  
-variants, independent of the client's capabilities.  For example, a jpeg
163  
-file is usually of higher source quality than an ascii file if it is
164  
-attempting to represent a photograph.  However, if the resource being
165  
-represented is an original ascii art, then an ascii representation would
166  
-have a higher source quality than a jpeg representation.  A qs value
167  
-is therefore specific to a given variant depending on the nature of
168  
-the resource it represents.
169  
-
170  
-<P>
171  
-The full list of headers recognized is:
172  
-
173  
-<DL>
174  
-  <DT> <CODE>URI:</CODE>
175  
-  <DD> uri of the file containing the variant (of the given media
176  
-       type, encoded with the given content encoding).  These are
177  
-       interpreted as URLs relative to the map file; they must be on
178  
-       the same server (!), and they must refer to files to which the
179  
-       client would be granted access if they were to be requested
180  
-       directly.
181  
-  <DT> <CODE>Content-Type:</CODE>
182  
-  <DD> media type --- charset, level and "qs" parameters may be given.  These
183  
-       are often referred to as MIME types; typical media types are
184  
-       <CODE>image/gif</CODE>, <CODE>text/plain</CODE>, or
185  
-       <CODE>text/html;&nbsp;level=3</CODE>.
186  
-  <DT> <CODE>Content-Language:</CODE>
187  
-  <DD> The languages of the variant, specified as an Internet standard
188  
-       language tag from RFC 1766 (<EM>e.g.</EM>, <CODE>en</CODE> for English,
189  
-       <CODE>kr</CODE> for Korean, <EM>etc.</EM>).
190  
-  <DT> <CODE>Content-Encoding:</CODE>
191  
-  <DD> If the file is compressed, or otherwise encoded, rather than
192  
-       containing the actual raw data, this says how that was done.
193  
-       Apache only recognizes encodings that are defined by an
194  
-       <A HREF="mod/mod_mime.html#addencoding">AddEncoding</A> directive.
195  
-       This normally includes the encodings <CODE>x-compress</CODE>
196  
-       for compress'd files, and <CODE>x-gzip</CODE> for gzip'd files.
197  
-       The <CODE>x-</CODE> prefix is ignored for encoding comparisons.
198  
-  <DT> <CODE>Content-Length:</CODE>
199  
-  <DD> The size of the file.  Specifying content
200  
-       lengths in the type-map allows the server to compare file sizes
201  
-       without checking the actual files.
202  
-  <DT> <CODE>Description:</CODE>
203  
-  <DD> A human-readable textual description of the variant.  If Apache cannot
204  
-       find any appropriate variant to return, it will return an error 
205  
-       response which lists all available variants instead.  Such a variant
206  
-       list will include the human-readable variant descriptions.
207  
-</DL>
208  
-
209  
-<H3>Multiviews</H3>
210  
-
211  
-<P>
212  
-<CODE>MultiViews</CODE> is a per-directory option, meaning it can be set with
213  
-an <CODE>Options</CODE> directive within a <CODE>&lt;Directory&gt;</CODE>,
214  
-<CODE>&lt;Location&gt;</CODE> or <CODE>&lt;Files&gt;</CODE>
215  
-section in <CODE>access.conf</CODE>, or (if <CODE>AllowOverride</CODE>
216  
-is properly set) in <CODE>.htaccess</CODE> files.  Note that
217  
-<CODE>Options All</CODE> does not set <CODE>MultiViews</CODE>; you
218  
-have to ask for it by name.
219  
-
220  
-<P>
221  
-The effect of <CODE>MultiViews</CODE> is as follows: if the server
222  
-receives a request for <CODE>/some/dir/foo</CODE>, if
223  
-<CODE>/some/dir</CODE> has <CODE>MultiViews</CODE> enabled, and
224  
-<CODE>/some/dir/foo</CODE> does <EM>not</EM> exist, then the server reads the
225  
-directory looking for files named foo.*, and effectively fakes up a
226  
-type map which names all those files, assigning them the same media
227  
-types and content-encodings it would have if the client had asked for
228  
-one of them by name.  It then chooses the best match to the client's
229  
-requirements.
230  
-
231  
-<P>
232  
-<CODE>MultiViews</CODE> may also apply to searches for the file named by the
233  
-<CODE>DirectoryIndex</CODE> directive, if the server is trying to
234  
-index a directory. If the configuration files specify
235  
-
236  
-<PRE>
237  
-  DirectoryIndex index
238  
-</PRE>
239  
-
240  
-then the server will arbitrate between <CODE>index.html</CODE>
241  
-and <CODE>index.html3</CODE> if both are present.  If neither are
242  
-present, and <CODE>index.cgi</CODE> is there, the server will run it.
243  
-
244  
-<P>
245  
-If one of the files found when reading the directive is a CGI script,
246  
-it's not obvious what should happen.  The code gives that case
247  
-special treatment --- if the request was a POST, or a GET with
248  
-QUERY_ARGS or PATH_INFO, the script is given an extremely high quality
249  
-rating, and generally invoked; otherwise it is given an extremely low
250  
-quality rating, which generally causes one of the other views (if any)
251  
-to be retrieved.
252  
-
253  
-<H2>The Negotiation Methods</H2>
254  
-
255  
-After Apache has obtained a list of the variants for a given resource,
256  
-either from a type-map file or from the filenames in the directory, it
257  
-invokes one of two methods to decide on the 'best' variant to
258  
-return, if any.  It is not necessary to know any of the details of how
259  
-negotiation actually takes place in order to use Apache's content
260  
-negotiation features. However the rest of this document explains the
261  
-methods used for those interested.
262  
-<P>
263  
-
264  
-There are two negotiation methods:
265  
-
266  
-<OL> 
267  
-
268  
-<LI><STRONG>Server driven negotiation with the Apache
269  
-algorithm</STRONG> is used in the normal case.  The Apache algorithm is
270  
-explained in more detail below.  When this algorithm is used, Apache
271  
-can sometimes 'fiddle' the quality factor of a particular dimension to
272  
-achieve a better result. The ways Apache can fiddle quality factors is
273  
-explained in more detail below.
274  
-
275  
-<LI><STRONG>Transparent content negotiation</STRONG> is used when the
276  
-browser specifically requests this through the mechanism defined in RFC
277  
-2295.  This negotiation method gives the browser full control over
278  
-deciding on the 'best' variant, the result is therefore dependent on
279  
-the specific algorithms used by the browser.  As part of the
280  
-transparent negotiation process, the browser can ask Apache to run the
281  
-'remote variant selection algorithm' defined in RFC 2296.  </UL>
282  
-
283  
-
284  
-<H3>Dimensions of Negotiation</H3>
285  
-
286  
-<TABLE>
287  
-<TR valign="top">
288  
-<TH>Dimension
289  
-<TH>Notes
290  
-<TR valign="top">
291  
-<TD>Media Type
292