summaryrefslogtreecommitdiff
path: root/docs/manual/howto
diff options
context:
space:
mode:
author(no author) <(no author)@unknown>2002-03-18 03:09:33 +0000
committer(no author) <(no author)@unknown>2002-03-18 03:09:33 +0000
commitfc08fc78d7beb04687e3d4929207b31e1705c6e8 (patch)
tree50626f671b637981b07f222b7f8a2d3057b267c3 /docs/manual/howto
parent9e3a1fcd41146a0fbaf6f572a3a2502383b29f19 (diff)
downloadhttpd-CHANGES.tar.gz
This commit was manufactured by cvs2svn to create tag 'CHANGES'.CHANGES
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/tags/CHANGES@93990 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/howto')
-rw-r--r--docs/manual/howto/auth.html379
-rw-r--r--docs/manual/howto/auth.html.en379
-rw-r--r--docs/manual/howto/cgi.html.en552
-rw-r--r--docs/manual/howto/cgi.html.ja.jis495
-rw-r--r--docs/manual/howto/footer.html7
-rw-r--r--docs/manual/howto/header.html6
-rw-r--r--docs/manual/howto/ssi.html.en548
-rw-r--r--docs/manual/howto/ssi.html.ja.jis501
8 files changed, 0 insertions, 2867 deletions
diff --git a/docs/manual/howto/auth.html b/docs/manual/howto/auth.html
deleted file mode 100644
index ca7cedbb72..0000000000
--- a/docs/manual/howto/auth.html
+++ /dev/null
@@ -1,379 +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>Authentication</title>
- <link rev="made" href="mailto:rbowen@rcbowen.com" />
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Authentication</h1>
- <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
-
-
- <ul>
- <li><a href="#introduction">Introduction</a></li>
-
- <li><a href="#theprerequisites">The prerequisites</a></li>
-
- <li><a href="#gettingitworking">Getting it working</a></li>
-
- <li><a href="#lettingmorethanonepersonin">Letting more
- than one person in</a></li>
-
- <li><a href="#possibleproblems">Possible problems</a></li>
-
- <li><a href="#whatotherneatstuffcanido">What other neat
- stuff can I do?</a></li>
-
- <li><a href="#moreinformation">More information</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="../mod/mod_auth.html">mod_auth</a><br />
- <a href="../mod/mod_access.html">mod_access</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="../mod/mod_access.html#allow">Allow</a><br />
- <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a><br />
- <a href="../mod/core.html#authname">AuthName</a><br />
- <a href="../mod/core.html#authtype">AuthType</a><br />
- <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a><br />
- <a href="../mod/mod_access.html#deny">Deny</a><br />
- <a href="../mod/core.html#options">Options</a><br />
- <a href="../mod/core.html#require">Require</a><br />
- </td>
- </tr>
- </table>
-
- <h1><a id="authentication"
- name="authentication">Authentication</a></h1>
-
- <p>Authentication is any process by which you verify that
- someone is who they claim they are. Authorization is any
- process by which someone is allowed to be where they want to
- go, or to have information that they want to have.</p>
-
- <h2><a id="introduction"
- name="introduction">Introduction</a></h2>
-
- <p>If you have information on your web site that is sensitive
- or intended for only a small group of people, the techniques in
- this article will help you make sure that the people that see
- those pages are the people that you wanted to see them.</p>
-
- <p>This article covers the "standard" way of protecting parts
- of your web site that most of you are going to use.</p>
-
- <h2><a id="theprerequisites" name="theprerequisites">The
- prerequisites</a></h2>
-
- <p>The directives discussed in this article will need to go
- either in your main server configuration file (typically in a
- &lt;Directory&gt; section), or in per-directory configuration
- files (<code>.htaccess</code> files).</p>
-
- <p>If you plan to use <code>.htaccess</code> files, you will
- need to have a server configuration that permits putting
- authentication directives in these files. This is done with the
- <code><a
- href="../mod/core.html#allowoverride">AllowOverride</a></code>
- directive, which specifies which directives, if any, may be put
- in per-directory configuration files.</p>
-
- <p>Since we're talking here about authentication, you will need
- an <code>AllowOverride</code> directive like the following:</p>
-<pre>
- AllowOverride AuthConfig
-</pre>
-
- <p>Or, if you are just going to put the directives directly in
- your main server configuration file, you will of course need to
- have write permission to that file.</p>
-
- <p>And you'll need to know a little bit about the directory
- structure of your server, in order to know where some files are
- kept. This should not be terribly difficult, and I'll try to
- make this clear when we come to that point.</p>
-
- <h2><a id="gettingitworking"
- name="gettingitworking">Getting it working</a></h2>
-
- <p>Here's the basics of password protecting a directory on your
- server.</p>
-
- <p>You'll need to create a password file. This file should be
- placed somewhere not accessible from the web. This is so that
- folks cannot download the password file. For example, if your
- documents are served out of
- <code>/usr/local/apache/htdocs</code> you might want to put the
- password file(s) in <code>/usr/local/apache/passwd</code>.</p>
-
- <p>To create the file, use the <a
- href="../programs/htpasswd.html">htpasswd</a> utility that came
- with Apache. This be located in the <code>bin</code> directory
- of wherever you installed Apache. To create the file, type:</p>
-<pre>
- htpasswd -c /usr/local/apache/passwd/password rbowen
-</pre>
-
- <p><code>htpasswd</code> will ask you for the password, and
- then ask you to type it again to confirm it:</p>
-<pre>
- # htpasswd -c /usr/local/apache/passwd/passwords rbowen
- New password: mypassword
- Re-type new password: mypassword
- Adding password for user rbowen
-</pre>
-
- <p>If <code>htpasswd</code> is not in your path, of course
- you'll have to type the full path to the file to get it to run.
- On my server, it's located at
- <code>/usr/local/apache/bin/htpasswd</code></p>
-
- <p>Next, you'll need to configure the server to request a
- password and tell the server which users are allowed access.
- You can do this either by editing the <code>httpd.conf</code>
- file or using an <code>.htaccess</code> file. For example, if
- you wish to protect the directory
- <code>/usr/local/apache/htdocs/secret</code>, you can use the
- following directives, either placed in the file
- <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or
- placed in httpd.conf inside a &lt;Directory
- /usr/local/apache/apache/htdocs/secret&gt; section.</p>
-<pre>
- AuthType Basic
- AuthName "Restricted Files"
- AuthUserFile /usr/local/apache/passwd/passwords
- require user rbowen
-</pre>
-
- <p>Let's examine each of those directives individually. The <a
- href="../mod/core.html#authtype">AuthType</a> directive selects
- that method that is used to authenticate the user. The most
- common method is <code>Basic</code>, and this is the method
- implemented by <a href="../mod/mod_auth.html">mod_auth</a>. It
- is important to be aware, however, that Basic authentication
- sends the password from the client to the browser unencrypted.
- This method should therefore not be used for highly sensitive
- data. Apache supports one other authentication method:
- <code>AuthType Digest</code>. This method is implemented by <a
- href="../mod/mod_auth_digest.html">mod_auth_digest</a> and is
- much more secure. Only the most recent versions of clients are
- known to support Digest authentication.</p>
-
- <p>The <a href="../mod/core.html#authname">AuthName</a>
- directive sets the <em>Realm</em> to be used in the
- authentication. The realm serves two major functions. First,
- the client often presents this information to the user as part
- of the password dialog box. Second, it is used by the client to
- determine what password to send for a given authenticated area.
- So, for example, once a client has authenticated in the
- <code>"Restricted Files"</code> area, it will automatically
- retry the same password for any area on the same server that is
- marked with the <code>"Restricted Files"</code> Realm.
- Therefore, you can prevent a user from being prompted more than
- once for a password by letting multiple restricted areas share
- the same realm. Of course, for security reasons, the client
- will always need to ask again for the password whenever the
- hostname of the server changes.</p>
-
- <p>The <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a>
- directive sets the path to the password file that we just
- created with <code>htpasswd</code>. If you have a large number
- of users, it can be quite slow to search through a plain text
- file to authenticate the user on each request. Apache also has
- the ability to store user information in fast database files.
- The <a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a> module
- provides the <a
- href="../mod/mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>
- directive. These files can be created and
- manipulated with the <a
- href="../programs/dbmmanage.html">dbmmanage</a> program. Many
- other types of authentication options are available from third
- party modules in the <a
- href="http://modules.apache.org/">Apache Modules
- Database</a>.</p>
-
- <p>Finally, the <a href="../mod/core.html#require">require</a>
- directive provides the authorization part of the process by
- setting the user that is allowed to access this region of the
- server. In the next section, we discuss various ways to use the
- <code>require</code> directive.</p>
-
- <h2><a id="lettingmorethanonepersonin"
- name="lettingmorethanonepersonin">Letting more than one
- person in</a></h2>
-
- <p>The directives above only let one person (specifically
- someone with a username of <code>rbowen</code>) into the
- directory. In most cases, you'll want to let more than one
- person in. This is where the <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a>
- comes in.</p>
-
- <p>If you want to let more than one person in, you'll need to
- create a group file that associates group names with a list of
- users in that group. The format of this file is pretty simple,
- and you can create it with your favorite editor. The contents
- of the file will look like this:</p>
-<pre>
- GroupName: rbowen dpitts sungo rshersey
-</pre>
-
- <p>That's just a list of the members of the group in a long
- line separated by spaces.</p>
-
- <p>To add a user to your already existing password file,
- type:</p>
-<pre>
- htpasswd /usr/local/apache/passwd/password dpitts
-</pre>
-
- <p>You'll get the same response as before, but it will be
- appended to the existing file, rather than creating a new file.
- (It's the <code>-c</code> that makes it create a new password
- file.</p>
-
- <p>Now, you need to modify your <code>.htaccess</code> file to
- look like the following:</p>
-<pre>
- AuthType Basic
- AuthName "By Invitation Only"
- AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /usr/local/apache/passwd/groups
- require group GroupName
-</pre>
-
- <p>Now, anyone that is listed in the group
- <code>GroupName</code>, and has an entry in the
- <code>password</code> file, will be let in, if they type the
- correct password.</p>
-
- <p>There's another way to let multiple users in that is less
- specific. Rather than creating a group file, you can just use
- the following directive:</p>
-<pre>
- require valid-user
-</pre>
-
- <p>Using that rather than the <code>require user rbowen</code>
- line will allow anyone in that is listed in the password file,
- and who correctly enters their password. You can even emulate
- the group behavior here, by just keeping a separate password
- file for each group. The advantage of this approach is that
- Apache only has to check one file, rather than two. The
- disadvantage is that you have to maintain a bunch of password
- files, and remember to reference th right one in the
- <code>AuthUserFile</code> directive.</p>
-
- <h2><a id="possibleproblems" name="possibleproblems">Possible
- problems</a></h2>
-
- <p>Because of the way that Basic authentication is specified,
- your username and password must be verified every time you
- request a document from the server. This is even if you're
- reloading the same page, and for every image on the page (if
- they come from a protected directory). As you can imagine, this
- slows things down a little. The amount that it slows things
- down is proportional to the size of the password file, because
- it has to open up that file, and go down the list of users
- until it gets to your name. And it has to do this every time a
- page is loaded.</p>
-
- <p>A consequence of this is that there's a practical limit to
- how many users you can put in one password file. This limit
- will vary depending on the performance of your particular
- server machine, but you can expect to see slowdowns once you
- get above a few hundred entries, and may wish to consider a
- different authentication method at that time.</p>
-
- <h2><a id="whatotherneatstuffcanido"
- name="whatotherneatstuffcanido">What other neat stuff can
- I do?</a></h2>
-
- <p>Authentication by username and password is only part of the
- story. Frequently you want to let people in based on something
- other than who they are. Something such as where they are
- coming from.</p>
-
- <p>The <code>allow</code> and <code>deny</code> directives let
- you allow and deny access based on the host name, or host
- address, of the machine requesting a document. The
- <code>order</code> directive goes hand-in-hand with these two,
- and tells Apache in which order to apply the filters.</p>
-
- <p>The usage of these directives is:</p>
-<pre>
- allow from address
-</pre>
-
- <p>where <em>address</em> is an IP address (or a partial IP
- address) or a fully qualified domain name (or a partial domain
- name); you may provide multiple addresses or domain names, if
- desired.</p>
-
- <p>For example, if you have someone spamming your message
- board, and you want to keep them out, you could do the
- following:</p>
-<pre>
- deny from 205.252.46.165
-</pre>
-
- <p>Visitors coming from that address will not be able to see
- the content covered by this directive. If, instead, you have a
- machine name, rather than an IP address, you can use that.</p>
-<pre>
- deny from host.example.com
-</pre>
-
- <p>And, if you'd like to block access from an entire domain,
- you can specify just part of an address or domain name:</p>
-<pre>
- deny from 192.101.205
- deny from cyberthugs.com moreidiots.com
- deny from ke
-</pre>
-
- <p>Using <code>order</code> will let you be sure that you are
- actually restricting things to the group that you want to let
- in, by combining a <code>deny</code> and an <code>allow</code>
- directive:</p>
-<pre>
- order deny,allow
- deny from all
- allow from dev.example.com
-</pre>
-
- <p>Listing just the <code>allow</code> directive would not do
- what you want, because it will let folks from that host in, in
- addition to letting everyone in. What you want is to let
- <em>only</em> those folks in.</p>
-
- <h2><a id="moreinformation" name="moreinformation">More
- information</a></h2>
-
- <p>You should also read the documentation for <code><a
- href="../mod/mod_auth.html">mod_auth</a></code> and <code><a
- href="../mod/mod_access.html">mod_access</a></code> which
- contain some more information about how this all works.</p>
- </body>
-</html>
-
diff --git a/docs/manual/howto/auth.html.en b/docs/manual/howto/auth.html.en
deleted file mode 100644
index ca7cedbb72..0000000000
--- a/docs/manual/howto/auth.html.en
+++ /dev/null
@@ -1,379 +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>Authentication</title>
- <link rev="made" href="mailto:rbowen@rcbowen.com" />
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Authentication</h1>
- <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
-
-
- <ul>
- <li><a href="#introduction">Introduction</a></li>
-
- <li><a href="#theprerequisites">The prerequisites</a></li>
-
- <li><a href="#gettingitworking">Getting it working</a></li>
-
- <li><a href="#lettingmorethanonepersonin">Letting more
- than one person in</a></li>
-
- <li><a href="#possibleproblems">Possible problems</a></li>
-
- <li><a href="#whatotherneatstuffcanido">What other neat
- stuff can I do?</a></li>
-
- <li><a href="#moreinformation">More information</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="../mod/mod_auth.html">mod_auth</a><br />
- <a href="../mod/mod_access.html">mod_access</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="../mod/mod_access.html#allow">Allow</a><br />
- <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a><br />
- <a href="../mod/core.html#authname">AuthName</a><br />
- <a href="../mod/core.html#authtype">AuthType</a><br />
- <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a><br />
- <a href="../mod/mod_access.html#deny">Deny</a><br />
- <a href="../mod/core.html#options">Options</a><br />
- <a href="../mod/core.html#require">Require</a><br />
- </td>
- </tr>
- </table>
-
- <h1><a id="authentication"
- name="authentication">Authentication</a></h1>
-
- <p>Authentication is any process by which you verify that
- someone is who they claim they are. Authorization is any
- process by which someone is allowed to be where they want to
- go, or to have information that they want to have.</p>
-
- <h2><a id="introduction"
- name="introduction">Introduction</a></h2>
-
- <p>If you have information on your web site that is sensitive
- or intended for only a small group of people, the techniques in
- this article will help you make sure that the people that see
- those pages are the people that you wanted to see them.</p>
-
- <p>This article covers the "standard" way of protecting parts
- of your web site that most of you are going to use.</p>
-
- <h2><a id="theprerequisites" name="theprerequisites">The
- prerequisites</a></h2>
-
- <p>The directives discussed in this article will need to go
- either in your main server configuration file (typically in a
- &lt;Directory&gt; section), or in per-directory configuration
- files (<code>.htaccess</code> files).</p>
-
- <p>If you plan to use <code>.htaccess</code> files, you will
- need to have a server configuration that permits putting
- authentication directives in these files. This is done with the
- <code><a
- href="../mod/core.html#allowoverride">AllowOverride</a></code>
- directive, which specifies which directives, if any, may be put
- in per-directory configuration files.</p>
-
- <p>Since we're talking here about authentication, you will need
- an <code>AllowOverride</code> directive like the following:</p>
-<pre>
- AllowOverride AuthConfig
-</pre>
-
- <p>Or, if you are just going to put the directives directly in
- your main server configuration file, you will of course need to
- have write permission to that file.</p>
-
- <p>And you'll need to know a little bit about the directory
- structure of your server, in order to know where some files are
- kept. This should not be terribly difficult, and I'll try to
- make this clear when we come to that point.</p>
-
- <h2><a id="gettingitworking"
- name="gettingitworking">Getting it working</a></h2>
-
- <p>Here's the basics of password protecting a directory on your
- server.</p>
-
- <p>You'll need to create a password file. This file should be
- placed somewhere not accessible from the web. This is so that
- folks cannot download the password file. For example, if your
- documents are served out of
- <code>/usr/local/apache/htdocs</code> you might want to put the
- password file(s) in <code>/usr/local/apache/passwd</code>.</p>
-
- <p>To create the file, use the <a
- href="../programs/htpasswd.html">htpasswd</a> utility that came
- with Apache. This be located in the <code>bin</code> directory
- of wherever you installed Apache. To create the file, type:</p>
-<pre>
- htpasswd -c /usr/local/apache/passwd/password rbowen
-</pre>
-
- <p><code>htpasswd</code> will ask you for the password, and
- then ask you to type it again to confirm it:</p>
-<pre>
- # htpasswd -c /usr/local/apache/passwd/passwords rbowen
- New password: mypassword
- Re-type new password: mypassword
- Adding password for user rbowen
-</pre>
-
- <p>If <code>htpasswd</code> is not in your path, of course
- you'll have to type the full path to the file to get it to run.
- On my server, it's located at
- <code>/usr/local/apache/bin/htpasswd</code></p>
-
- <p>Next, you'll need to configure the server to request a
- password and tell the server which users are allowed access.
- You can do this either by editing the <code>httpd.conf</code>
- file or using an <code>.htaccess</code> file. For example, if
- you wish to protect the directory
- <code>/usr/local/apache/htdocs/secret</code>, you can use the
- following directives, either placed in the file
- <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or
- placed in httpd.conf inside a &lt;Directory
- /usr/local/apache/apache/htdocs/secret&gt; section.</p>
-<pre>
- AuthType Basic
- AuthName "Restricted Files"
- AuthUserFile /usr/local/apache/passwd/passwords
- require user rbowen
-</pre>
-
- <p>Let's examine each of those directives individually. The <a
- href="../mod/core.html#authtype">AuthType</a> directive selects
- that method that is used to authenticate the user. The most
- common method is <code>Basic</code>, and this is the method
- implemented by <a href="../mod/mod_auth.html">mod_auth</a>. It
- is important to be aware, however, that Basic authentication
- sends the password from the client to the browser unencrypted.
- This method should therefore not be used for highly sensitive
- data. Apache supports one other authentication method:
- <code>AuthType Digest</code>. This method is implemented by <a
- href="../mod/mod_auth_digest.html">mod_auth_digest</a> and is
- much more secure. Only the most recent versions of clients are
- known to support Digest authentication.</p>
-
- <p>The <a href="../mod/core.html#authname">AuthName</a>
- directive sets the <em>Realm</em> to be used in the
- authentication. The realm serves two major functions. First,
- the client often presents this information to the user as part
- of the password dialog box. Second, it is used by the client to
- determine what password to send for a given authenticated area.
- So, for example, once a client has authenticated in the
- <code>"Restricted Files"</code> area, it will automatically
- retry the same password for any area on the same server that is
- marked with the <code>"Restricted Files"</code> Realm.
- Therefore, you can prevent a user from being prompted more than
- once for a password by letting multiple restricted areas share
- the same realm. Of course, for security reasons, the client
- will always need to ask again for the password whenever the
- hostname of the server changes.</p>
-
- <p>The <a
- href="../mod/mod_auth.html#authuserfile">AuthUserFile</a>
- directive sets the path to the password file that we just
- created with <code>htpasswd</code>. If you have a large number
- of users, it can be quite slow to search through a plain text
- file to authenticate the user on each request. Apache also has
- the ability to store user information in fast database files.
- The <a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a> module
- provides the <a
- href="../mod/mod_auth_dbm.html#authdbmuserfile">AuthDBMUserFile</a>
- directive. These files can be created and
- manipulated with the <a
- href="../programs/dbmmanage.html">dbmmanage</a> program. Many
- other types of authentication options are available from third
- party modules in the <a
- href="http://modules.apache.org/">Apache Modules
- Database</a>.</p>
-
- <p>Finally, the <a href="../mod/core.html#require">require</a>
- directive provides the authorization part of the process by
- setting the user that is allowed to access this region of the
- server. In the next section, we discuss various ways to use the
- <code>require</code> directive.</p>
-
- <h2><a id="lettingmorethanonepersonin"
- name="lettingmorethanonepersonin">Letting more than one
- person in</a></h2>
-
- <p>The directives above only let one person (specifically
- someone with a username of <code>rbowen</code>) into the
- directory. In most cases, you'll want to let more than one
- person in. This is where the <a
- href="../mod/mod_auth.html#authgroupfile">AuthGroupFile</a>
- comes in.</p>
-
- <p>If you want to let more than one person in, you'll need to
- create a group file that associates group names with a list of
- users in that group. The format of this file is pretty simple,
- and you can create it with your favorite editor. The contents
- of the file will look like this:</p>
-<pre>
- GroupName: rbowen dpitts sungo rshersey
-</pre>
-
- <p>That's just a list of the members of the group in a long
- line separated by spaces.</p>
-
- <p>To add a user to your already existing password file,
- type:</p>
-<pre>
- htpasswd /usr/local/apache/passwd/password dpitts
-</pre>
-
- <p>You'll get the same response as before, but it will be
- appended to the existing file, rather than creating a new file.
- (It's the <code>-c</code> that makes it create a new password
- file.</p>
-
- <p>Now, you need to modify your <code>.htaccess</code> file to
- look like the following:</p>
-<pre>
- AuthType Basic
- AuthName "By Invitation Only"
- AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /usr/local/apache/passwd/groups
- require group GroupName
-</pre>
-
- <p>Now, anyone that is listed in the group
- <code>GroupName</code>, and has an entry in the
- <code>password</code> file, will be let in, if they type the
- correct password.</p>
-
- <p>There's another way to let multiple users in that is less
- specific. Rather than creating a group file, you can just use
- the following directive:</p>
-<pre>
- require valid-user
-</pre>
-
- <p>Using that rather than the <code>require user rbowen</code>
- line will allow anyone in that is listed in the password file,
- and who correctly enters their password. You can even emulate
- the group behavior here, by just keeping a separate password
- file for each group. The advantage of this approach is that
- Apache only has to check one file, rather than two. The
- disadvantage is that you have to maintain a bunch of password
- files, and remember to reference th right one in the
- <code>AuthUserFile</code> directive.</p>
-
- <h2><a id="possibleproblems" name="possibleproblems">Possible
- problems</a></h2>
-
- <p>Because of the way that Basic authentication is specified,
- your username and password must be verified every time you
- request a document from the server. This is even if you're
- reloading the same page, and for every image on the page (if
- they come from a protected directory). As you can imagine, this
- slows things down a little. The amount that it slows things
- down is proportional to the size of the password file, because
- it has to open up that file, and go down the list of users
- until it gets to your name. And it has to do this every time a
- page is loaded.</p>
-
- <p>A consequence of this is that there's a practical limit to
- how many users you can put in one password file. This limit
- will vary depending on the performance of your particular
- server machine, but you can expect to see slowdowns once you
- get above a few hundred entries, and may wish to consider a
- different authentication method at that time.</p>
-
- <h2><a id="whatotherneatstuffcanido"
- name="whatotherneatstuffcanido">What other neat stuff can
- I do?</a></h2>
-
- <p>Authentication by username and password is only part of the
- story. Frequently you want to let people in based on something
- other than who they are. Something such as where they are
- coming from.</p>
-
- <p>The <code>allow</code> and <code>deny</code> directives let
- you allow and deny access based on the host name, or host
- address, of the machine requesting a document. The
- <code>order</code> directive goes hand-in-hand with these two,
- and tells Apache in which order to apply the filters.</p>
-
- <p>The usage of these directives is:</p>
-<pre>
- allow from address
-</pre>
-
- <p>where <em>address</em> is an IP address (or a partial IP
- address) or a fully qualified domain name (or a partial domain
- name); you may provide multiple addresses or domain names, if
- desired.</p>
-
- <p>For example, if you have someone spamming your message
- board, and you want to keep them out, you could do the
- following:</p>
-<pre>
- deny from 205.252.46.165
-</pre>
-
- <p>Visitors coming from that address will not be able to see
- the content covered by this directive. If, instead, you have a
- machine name, rather than an IP address, you can use that.</p>
-<pre>
- deny from host.example.com
-</pre>
-
- <p>And, if you'd like to block access from an entire domain,
- you can specify just part of an address or domain name:</p>
-<pre>
- deny from 192.101.205
- deny from cyberthugs.com moreidiots.com
- deny from ke
-</pre>
-
- <p>Using <code>order</code> will let you be sure that you are
- actually restricting things to the group that you want to let
- in, by combining a <code>deny</code> and an <code>allow</code>
- directive:</p>
-<pre>
- order deny,allow
- deny from all
- allow from dev.example.com
-</pre>
-
- <p>Listing just the <code>allow</code> directive would not do
- what you want, because it will let folks from that host in, in
- addition to letting everyone in. What you want is to let
- <em>only</em> those folks in.</p>
-
- <h2><a id="moreinformation" name="moreinformation">More
- information</a></h2>
-
- <p>You should also read the documentation for <code><a
- href="../mod/mod_auth.html">mod_auth</a></code> and <code><a
- href="../mod/mod_access.html">mod_access</a></code> which
- contain some more information about how this all works.</p>
- </body>
-</html>
-
diff --git a/docs/manual/howto/cgi.html.en b/docs/manual/howto/cgi.html.en
deleted file mode 100644
index 8d80d532d5..0000000000
--- a/docs/manual/howto/cgi.html.en
+++ /dev/null
@@ -1,552 +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 Tutorial: Dynamic Content with CGI</title>
- <link rev="made" href="mailto:rbowen@rcbowen.com" />
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="CENTER">Dynamic Content with CGI</h1>
- <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
-
-
- <ul>
- <li><a href="#dynamiccontentwithcgi">Dynamic Content with
- CGI</a></li>
-
- <li>
- <a href="#configuringapachetopermitcgi">Configuring Apache
- to permit CGI</a>
-
- <ul>
- <li><a href="#scriptalias">ScriptAlias</a></li>
-
- <li>
- <a href="#cgioutsideofscriptaliasdirectories">CGI
- outside of ScriptAlias directories</a>
-
- <ul>
- <li><a
- href="#explicitlyusingoptionstopermitcgiexecution">Explicitly
- using Options to permit CGI execution</a></li>
-
- <li><a href="#htaccessfiles">.htaccess files</a></li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#writingacgiprogram">Writing a CGI program</a>
-
- <ul>
- <li><a href="#yourfirstcgiprogram">Your first CGI
- program</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#butitsstillnotworking">But it's still not
- working!</a>
-
- <ul>
- <li><a href="#filepermissions">File permissions</a></li>
-
- <li><a href="#pathinformation">Path information</a></li>
-
- <li><a href="#syntaxerrors">Syntax errors</a></li>
-
- <li><a href="#errorlogs">Error logs</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#whatsgoingonbehindthescenes">What's going on
- behind the scenes?</a>
-
- <ul>
- <li><a href="#environmentvariables">Environment
- variables</a></li>
-
- <li><a href="#stdinandstdout">STDIN and STDOUT</a></li>
- </ul>
- </li>
-
- <li><a href="#cgimoduleslibraries">CGI
- modules/libraries</a></li>
-
- <li><a href="#formoreinformation">For more
- information</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
-
- <h2><a id="dynamiccontentwithcgi"
- name="dynamiccontentwithcgi">Dynamic Content with CGI</a></h2>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="../mod/mod_alias.html">mod_alias</a><br />
- <a href="../mod/mod_cgi.html">mod_cgi</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a
- href="../mod/mod_mime.html#addhandler">AddHandler</a><br />
- <a href="../mod/core.html#options">Options</a><br />
- <a
- href="../mod/mod_alias.html#scriptalias">ScriptAlias</a><br />
- </td>
- </tr>
- </table>
-
- <p>The CGI (Common Gateway Interface) defines a way for a web
- server to interact with external content-generating programs,
- which are often referred to as CGI programs or CGI scripts. It
- is the simplest, and most common, way to put dynamic content on
- your web site. This document will be an introduction to setting
- up CGI on your Apache web server, and getting started writing
- CGI programs.</p>
- <hr />
-
- <h2><a id="configuringapachetopermitcgi"
- name="configuringapachetopermitcgi">Configuring Apache to
- permit CGI</a></h2>
-
- <p>In order to get your CGI programs to work properly, you'll
- need to have Apache configured to permit CGI execution. There
- are several ways to do this.</p>
-
- <h3><a id="scriptalias" name="scriptalias">ScriptAlias</a></h3>
-
- <p>The <code>ScriptAlias</code> directive tells Apache that a
- particular directory is set aside for CGI programs. Apache will
- assume that every file in this directory is a CGI program, and
- will attempt to execute it, when that particular resource is
- requested by a client.</p>
-
- <p>The <code>ScriptAlias</code> directive looks like:</p>
-<pre>
- ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
-</pre>
-
- <p>The example shown is from your default
- <code>httpd.conf</code> configuration file, if you installed
- Apache in the default location. The <code>ScriptAlias</code>
- directive is much like the <code>Alias</code> directive, which
- defines a URL prefix that is to mapped to a particular
- directory. <code>Alias</code> and <code>ScriptAlias</code> are
- usually used for directories that are outside of the
- <code>DocumentRoot</code> directory. The difference between
- <code>Alias</code> and <code>ScriptAlias</code> is that
- <code>ScriptAlias</code> has the added meaning that everything
- under that URL prefix will be considered a CGI program. So, the
- example above tells Apache that any request for a resource
- beginning with <code>/cgi-bin/</code> should be served from the
- directory <code>/usr/local/apache/cgi-bin/</code>, and should
- be treated as a CGI program.</p>
-
- <p>For example, if the URL
- <code>http://dev.rcbowen.com/cgi-bin/test.pl</code> is
- requested, Apache will attempt to execute the file
- <code>/usr/local/apache/cgi-bin/test.pl</code> and return the
- output. Of course, the file will have to exist, and be
- executable, and return output in a particular way, or Apache
- will return an error message.</p>
-
- <h3><a id="cgioutsideofscriptaliasdirectories"
- name="cgioutsideofscriptaliasdirectories">CGI outside of
- ScriptAlias directories</a></h3>
-
- <p>CGI programs are often restricted to
- <code>ScriptAlias</code>'ed directories for security reasons.
- In this way, administrators can tightly control who is allowed
- to use CGI programs. However, if the proper security
- precautions are taken, there is no reason why CGI programs
- cannot be run from arbitrary directories. For example, you may
- wish to let users have web content in their home directories
- with the <code>UserDir</code> directive. If they want to have
- their own CGI programs, but don't have access to the main
- <code>cgi-bin</code> directory, they will need to be able to
- run CGI programs elsewhere.</p>
-
- <h3><a id="explicitlyusingoptionstopermitcgiexecution"
- name="explicitlyusingoptionstopermitcgiexecution">Explicitly
- using Options to permit CGI execution</a></h3>
-
- <p>You could explicitly use the <code>Options</code> directive,
- inside your main server configuration file, to specify that CGI
- execution was permitted in a particular directory:</p>
-<pre>
- &lt;Directory /usr/local/apache/htdocs/somedir&gt;
- Options +ExecCGI
- &lt;/Directory&gt;
-</pre>
-
- <p>The above directive tells Apache to permit the execution of
- CGI files. You will also need to tell the server what files are
- CGI files. The following <code>AddHandler</code> directive
- tells the server to treat all files with the <code>cgi</code>
- or <code>pl</code> extension as CGI programs:</p>
-<pre>
- AddHandler cgi-script cgi pl
-</pre>
-
- <h3><a id="htaccessfiles" name="htaccessfiles">.htaccess
- files</a></h3>
-
- <p>A <code>.htaccess</code> file is a way to set configuration
- directives on a per-directory basis. When Apache serves a
- resource, it looks in the directory from which it is serving a
- file for a file called <code>.htaccess</code>, and, if it finds
- it, it will apply directives found therein.
- <code>.htaccess</code> files can be permitted with the
- <code>AllowOverride</code> directive, which specifies what
- types of directives can appear in these files, or if they are
- not allowed at all. To permit the directive we will need for
- this purpose, the following configuration will be needed in
- your main server configuration:</p>
-<pre>
- AllowOverride Options
-</pre>
-
- <p>In the <code>.htaccess</code> file, you'll need the
- following directive:</p>
-<pre>
- Options +ExecCGI
-</pre>
-
- <p>which tells Apache that execution of CGI programs is
- permitted in this directory.</p>
- <hr />
-
- <h2><a id="writingacgiprogram"
- name="writingacgiprogram">Writing a CGI program</a></h2>
-
- <p>There are two main differences between ``regular''
- programming, and CGI programming.</p>
-
- <p>First, all output from your CGI program must be preceded by
- a MIME-type header. This is HTTP header that tells the client
- what sort of content it is receiving. Most of the time, this
- will look like:</p>
-<pre>
- Content-type: text/html
-</pre>
-
- <p>Secondly, your output needs to be in HTML, or some other
- format that a browser will be able to display. Most of the
- time, this will be HTML, but occasionally you might write a CGI
- program that outputs a gif image, or other non-HTML
- content.</p>
-
- <p>Apart from those two things, writing a CGI program will look
- a lot like any other program that you might write.</p>
-
- <h3><a id="yourfirstcgiprogram" name="yourfirstcgiprogram">Your
- first CGI program</a></h3>
-
- <p>The following is an example CGI program that prints one line
- to your browser. Type in the following, save it to a file
- called <code>first.pl</code>, and put it in your
- <code>cgi-bin</code> directory.</p>
-<pre>
- #!/usr/bin/perl
- print "Content-type: text/html\r\n\r\n";
- print "Hello, World.";
-</pre>
-
- <p>Even if you are not familiar with Perl, you should be able
- to see what is happening here. The first line tells Apache (or
- whatever shell you happen to be running under) that this
- program can be executed by feeding the file to the interpreter
- found at the location <code>/usr/bin/perl</code>. The second
- line prints the content-type declaration we talked about,
- followed by two carriage-return newline pairs. This puts a
- blank line after the header, to indicate the end of the HTTP
- headers, and the beginning of the body. The third line prints
- the string ``Hello, World.'' And that's the end of it.</p>
-
- <p>If you open your favorite browser and tell it to get the
- address</p>
-<pre>
- http://www.example.com/cgi-bin/first.pl
-</pre>
-
- <p>or wherever you put your file, you will see the one line
- <code>Hello, World.</code> appear in your browser window. It's
- not very exciting, but once you get that working, you'll have a
- good chance of getting just about anything working.</p>
- <hr />
-
- <h2><a id="butitsstillnotworking"
- name="butitsstillnotworking">But it's still not
- working!</a></h2>
-
- <p>There are four basic things that you may see in your browser
- when you try to access your CGI program from the web:</p>
-
- <dl>
- <dt>The output of your CGI program</dt>
-
- <dd>Great! That means everything worked fine.<br />
- <br />
- </dd>
-
- <dt>The source code of your CGI program or a "POST Method Not
- Allowed" message</dt>
-
- <dd>That means that you have not properly configured Apache
- to process your CGI program. Reread the section on <a
- href="#configuringapachetopermitcgi">configuring Apache</a>
- and try to find what you missed.<br />
- <br />
- </dd>
-
- <dt>A message starting with "Forbidden"</dt>
-
- <dd>That means that there is a permissions problem. Check the
- <a href="#errorlogs">Apache error log</a> and the section
- below on <a href="#filepermissions">file
- permissions</a>.<br />
- <br />
- </dd>
-
- <dt>A message saying "Internal Server Error"</dt>
-
- <dd>If you check the <a href="#errorlogs">Apache error
- log</a>, you will probably find that it says "Premature end
- of script headers", possibly along with an error message
- generated by your CGI program. In this case, you will want to
- check each of the below sections to see what might be
- preventing your CGI program from emitting the proper HTTP
- headers.</dd>
- </dl>
-
- <h3><a id="filepermissions" name="filepermissions">File
- permissions</a></h3>
-
- <p>Remember that the server does not run as you. That is, when
- the server starts up, it is running with the permissions of an
- unprivileged user - usually ``nobody'', or ``www'' - and so it
- will need extra permissions to execute files that are owned by
- you. Usually, the way to give a file sufficient permissions to
- be executed by ``nobody'' is to give everyone execute
- permission on the file:</p>
-<pre>
- chmod a+x first.pl
-</pre>
-
- <p>Also, if your program reads from, or writes to, any other
- files, those files will need to have the correct permissions to
- permit this.</p>
-
- <p>The exception to this is when the server is configured to
- use <a href="../suexec.html">suexec</a>. This program allows
- CGI programs to be run under different user permissions,
- depending on which virtual host or user home directory they are
- located in. Suexec has very strict permission checking, and any
- failure in that checking will result in your CGI programs
- failing with an "Internal Server Error". In this case, you will
- need to check the suexec log file to see what specific security
- check is failing.</p>
-
- <h3><a id="pathinformation" name="pathinformation">Path
- information</a></h3>
-
- <p>When you run a program from your command line, you have
- certain information that is passed to the shell without you
- thinking about it. For example, you have a path, which tells
- the shell where it can look for files that you reference.</p>
-
- <p>When a program runs through the web server as a CGI program,
- it does not have that path. Any programs that you invoke in
- your CGI program (like 'sendmail', for example) will need to be
- specified by a full path, so that the shell can find them when
- it attempts to execute your CGI program.</p>
-
- <p>A common manifestation of this is the path to the script
- interpreter (often <code>perl</code>) indicated in the first
- line of your CGI program, which will look something like:</p>
-<pre>
- #!/usr/bin/perl
-</pre>
-
- <p>Make sure that this is in fact the path to the
- interpreter.</p>
-
- <h3><a id="syntaxerrors" name="syntaxerrors">Syntax
- errors</a></h3>
-
- <p>Most of the time when a CGI program fails, it's because of a
- problem with the program itself. This is particularly true once
- you get the hang of this CGI stuff, and no longer make the
- above two mistakes. Always attempt to run your program from the
- command line before you test if via a browser. This will
- eliminate most of your problems.</p>
-
- <h3><a id="errorlogs" name="errorlogs">Error logs</a></h3>
-
- <p>The error logs are your friend. Anything that goes wrong
- generates message in the error log. You should always look
- there first. If the place where you are hosting your web site
- does not permit you access to the error log, you should
- probably host your site somewhere else. Learn to read the error
- logs, and you'll find that almost all of your problems are
- quickly identified, and quickly solved.</p>
- <hr />
-
- <h2><a id="whatsgoingonbehindthescenes"
- name="whatsgoingonbehindthescenes">What's going on behind the
- scenes?</a></h2>
-
- <p>As you become more advanced in CGI programming, it will
- become useful to understand more about what's happening behind
- the scenes. Specifically, how the browser and server
- communicate with one another. Because although it's all very
- well to write a program that prints ``Hello, World.'', it's not
- particularly useful.</p>
-
- <h3><a id="environmentvariables"
- name="environmentvariables">Environment variables</a></h3>
-
- <p>Environment variables are values that float around you as
- you use your computer. They are useful things like your path
- (where the computer searches for a the actual file implementing
- a command when you type it), your username, your terminal type,
- and so on. For a full list of your normal, every day
- environment variables, type <code>env</code> at a command
- prompt.</p>
-
- <p>During the CGI transaction, the server and the browser also
- set environment variables, so that they can communicate with
- one another. These are things like the browser type (Netscape,
- IE, Lynx), the server type (Apache, IIS, WebSite), the name of
- the CGI program that is being run, and so on.</p>
-
- <p>These variables are available to the CGI programmer, and are
- half of the story of the client-server communication. The
- complete list of required variables is at <a
- href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a></p>
-
- <p>This simple Perl CGI program will display all of the
- environment variables that are being passed around. Two similar
- programs are included in the <code>cgi-bin</code> directory of
- the Apache distribution. Note that some variables are required,
- while others are optional, so you may see some variables listed
- that were not in the official list. In addition, Apache
- provides many different ways for you to <a
- href="../env.html">add your own environment variables</a> to
- the basic ones provided by default.</p>
-<pre>
- #!/usr/bin/perl
- print "Content-type: text/html\n\n";
- foreach $key (keys %ENV) {
- print "$key --&gt; $ENV{$key}&lt;br&gt;";
- }
-</pre>
-
- <h3><a id="stdinandstdout" name="stdinandstdout">STDIN and
- STDOUT</a></h3>
-
- <p>Other communication between the server and the client
- happens over standard input (<code>STDIN</code>) and standard
- output (<code>STDOUT</code>). In normal everyday context,
- <code>STDIN</code> means the keyboard, or a file that a program
- is given to act on, and <code>STDOUT</code> usually means the
- console or screen.</p>
-
- <p>When you <code>POST</code> a web form to a CGI program, the
- data in that form is bundled up into a special format and gets
- delivered to your CGI program over <code>STDIN</code>. The
- program then can process that data as though it was coming in
- from the keyboard, or from a file</p>
-
- <p>The ``special format'' is very simple. A field name and its
- value are joined together with an equals (=) sign, and pairs of
- values are joined together with an ampersand (&amp;).
- Inconvenient characters like spaces, ampersands, and equals
- signs, are converted into their hex equivalent so that they
- don't gum up the works. The whole data string might look
- something like:</p>
-<pre>
- name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
-</pre>
-
- <p>You'll sometimes also see this type of string appended to
- the a URL. When that is done, the server puts that string into
- the environment variable called <code>QUERY_STRING</code>.
- That's called a <code>GET</code> request. Your HTML form
- specifies whether a <code>GET</code> or a <code>POST</code> is
- used to deliver the data, by setting the <code>METHOD</code>
- attribute in the <code>FORM</code> tag.</p>
-
- <p>Your program is then responsible for splitting that string
- up into useful information. Fortunately, there are libraries
- and modules available to help you process this data, as well as
- handle other of the aspects of your CGI program.</p>
- <hr />
-
- <h2><a id="cgimoduleslibraries" name="cgimoduleslibraries">CGI
- modules/libraries</a></h2>
-
- <p>When you write CGI programs, you should consider using a
- code library, or module, to do most of the grunt work for you.
- This leads to fewer errors, and faster development.</p>
-
- <p>If you're writing CGI programs in Perl, modules are
- available on <a href="http://www.cpan.org/">CPAN</a>. The most
- popular module for this purpose is CGI.pm. You might also
- consider CGI::Lite, which implements a minimal set of
- functionality, which is all you need in most programs.</p>
-
- <p>If you're writing CGI programs in C, there are a variety of
- options. One of these is the CGIC library, from <a
- href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a></p>
- <hr />
-
- <h2><a id="formoreinformation" name="formoreinformation">For
- more information</a></h2>
-
- <p>There are a large number of CGI resources on the web. You
- can discuss CGI problems with other users on the Usenet group
- comp.infosystems.www.authoring.cgi. And the -servers mailing
- list from the HTML Writers Guild is a great source of answers
- to your questions. You can find out more at <a
- href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a></p>
-
- <p>And, of course, you should probably read the CGI
- specification, which has all the details on the operation of
- CGI programs. You can find the original version at the <a
- href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a>
- and there is an updated draft at the <a
- href="http://web.golux.com/coar/cgi/">Common Gateway Interface
- RFC project</a>.</p>
-
- <p>When you post a question about a CGI problem that you're
- having, whether to a mailing list, or to a newsgroup, make sure
- you provide enough information about what happened, what you
- expected to happen, and how what actually happened was
- different, what server you're running, what language your CGI
- program was in, and, if possible, the offending code. This will
- make finding your problem much simpler.</p>
-
- <p>Note that questions about CGI problems should
- <strong>never</strong> be posted to the Apache bug database
- unless you are sure you have found a problem in the Apache
- source code.</p>
- <!--#include virtual="footer.html" -->
- </body>
-</html>
-
diff --git a/docs/manual/howto/cgi.html.ja.jis b/docs/manual/howto/cgi.html.ja.jis
deleted file mode 100644
index b6bf58c219..0000000000
--- a/docs/manual/howto/cgi.html.ja.jis
+++ /dev/null
@@ -1,495 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache Tutorial: CGI $B$K$h$kF0E*%3%s%F%s%D(B</title>
-</head>
-<!-- English revision: 1.6 -->
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#000080"
-alink="#FF0000">
-<!--#include virtual="header.html" -->
-<h1 align="CENTER">CGI $B$K$h$kF0E*%3%s%F%s%D(B</h1>
-
-<a name="__index__"></a> <!-- INDEX BEGIN -->
-
-
-<ul>
-<li><a href="#dynamiccontentwithcgi">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a></li>
-
-<li><a href="#configuringapachetopermitcgi">CGI $B$r5v2D$9$k$h$&$K(B Apache $B$r(B
-$B@_Dj$9$k(B</a>
-
-<ul>
-<li><a href="#scriptalias">ScriptAlias</a></li>
-
-<li><a href="#cgioutsideofscriptaliasdirectories">ScriptAlias $B%G%#%l%/%H%j30$N(B
-CGI</a>
-
-<ul>
-<li><a href="#explicitlyusingoptionstopermitcgiexecution">CGI $B$N<B9T$r2DG=$K(B
-$B$9$k$?$a$K(B Options $B$rL@<(E*$K;HMQ$9$k(B</a></li>
-
-
-<li><a href="#htaccessfiles">.htaccess $B%U%!%$%k(B</a></li>
-</ul>
-</li>
-</ul>
-</li>
-
-<li><a href="#writingacgiprogram">CGI $B%W%m%0%i%`$r=q$/(B</a>
-
-<ul>
-<li><a href="#yourfirstcgiprogram">$B$"$J$?$N:G=i$N(B CGI $B%W%m%0%i%`(B</a></li>
-</ul>
-</li>
-
-<li><a href="#butitsstillnotworking">$B$7$+$7!"$^$@F0$+$J$$(B !</a>
-
-<ul>
-<li><a href="#filepermissions">$B%U%!%$%k$N%Q!<%_%C%7%g%s(B</a></li>
-
-<li><a href="#pathinformation">$B%Q%9>pJs(B</a></li>
-
-<li><a href="#syntaxerrors">$B9=J8%(%i!<(B</a></li>
-
-<li><a href="#errorlogs">$B%(%i!<%m%0(B</a></li>
-</ul>
-</li>
-
-<li><a href="#whatsgoingonbehindthescenes">$BN"$G2?$,5/$3$C$F$$$k$N$+(B?</a>
-
-<ul>
-<li><a href="#environmentvariables">$B4D6-JQ?t(B</a></li>
-
-<li><a href="#stdinandstdout">$BI8=`F~=PNO(B</a></li>
-</ul>
-</li>
-
-<li><a href="#cgimoduleslibraries">CGI $B%b%8%e!<%k(B/$B%i%$%V%i%j(B</a></li>
-
-<li><a href="#formoreinformation">$B99$J$k>pJs(B</a></li>
-</ul>
-
-<!-- INDEX END -->
-<hr>
-<h2><a name="dynamiccontentwithcgi">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a></h2>
-
-<table border="1">
-<tr><td valign="top">
-<strong>$B4XO"%b%8%e!<%k(B</strong><br><br>
-
-<a href="../mod/mod_alias.html">mod_alias</a><br>
-<a href="../mod/mod_cgi.html">mod_cgi</a><br>
-
-</td><td valign="top">
-<strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br><br>
-
-<a href="../mod/mod_mime.html#addhandler">AddHandler</a><br>
-<A HREF="../mod/core.html#options">Options</a><br>
-<a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a><br>
-
-</td></tr></table>
-
-<p>CGI (Common Gateway Interface) $B$O!"%&%'%V%5!<%P$,%3%s%F%s%D@8@.$r$9$k(B
-$B30It%W%m%0%i%`$H6(D4$7$FF0:n$9$k$?$a$NJ}K!$rDj5A$7$F$$$^$9!#$=$N%W%m%0%i%`$O$7$P$7$P(B
-CGI $B%W%m%0%i%`$d(B CGI $B%9%/%j%W%H$H8F$P$l$^$9!#(BCGI $B$O!"%&%'%V%5%$%H$K(B
-$BF0E*$J%3%s%F%s%D$rCV$/$?$a$N:G$b4JC1$G0lHLE*$JJ}K!$G$9!#$3$N%I%-%e%a%s%H$O!"(B
-Apache $B%&%'%V%5!<%P$G(B CGI $B$r@_Dj$7!"(BCGI $B%W%m%0%i%`$r=q$-;O$a$k$?$a$N(B
-$BF~Lg=q$H$J$k$G$7$g$&!#(B</p>
-
-<hr>
-<h2><a name="configuringapachetopermitcgi">CGI $B$r5v2D$9$k$h$&$K(B Apache $B$r(B
-$B@_Dj$9$k(B</a></h2>
-
-<p>CGI $B%W%m%0%i%`$r@5$7$/F0:n$5$;$k$K$O!"(BCGI $B$r5v2D$9$k$h$&$K(B
-Apache $B$N@_Dj$r9T$&I,MW$,$"$j$^$9!#$3$l$r9T$J$&$?$a$NJ}K!$,$$$/$D$+(B
-$B$"$j$^$9!#(B</p>
-
-<h3><a name="scriptalias">ScriptAlias</a></h3>
-
-<p><code>ScriptAlias</code> $B%G%#%l%/%F%#%V$r;HMQ$7$F!"(BCGI $B%W%m%0%i%`MQ$N(B
-$BFCJL$JJL%G%#%l%/%H%j$r(B Apache $B$K@_Dj$7$^$9!#(B
-Apache $B$O!"$3$N%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k$r(B CGI $B%W%m%0%i%`$G$"$k$H(B
-$B2>Dj$7$^$9!#$=$7$F!"$3$NFCJL$J%j%=!<%9$,%/%i%$%"%s%H$+$iMW5a$5$l$k$H!"(B
-$B$=$N%W%m%0%i%`$N<B9T$r;n$_$^$9!#(B</p>
-
-<p><code>ScriptAlias</code> $B%G%#%l%/%F%#%V$O0J2<$N$h$&$K;HMQ$7$^$9(B:</p>
-
-<pre>
- ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
-</pre>
-
-<p>$B%G%U%)%k%H0LCV$K(B Apache $B$r%$%s%9%H!<%k$7$?$J$i$P!"(B
-$B$3$NNc$O%G%U%)%k%H>uBV$N(B <code>httpd.conf</code> $B@_Dj%U%!%$%k(B
-$B$K4^$^$l$F$$$^$9!#(B
-<code>ScriptAlias</code> $B%G%#%l%/%F%#%V$O!"(BURL $B$NA0$KIU2C$9$k%G%#%l%/%H%j$rDj5A$9$k(B <code>Alias</code> $B%G%#%l%/%F%#%V$H$+$J$j;w$F$$$^$9!#(B
-<code>Alias</code> $B$H(B <code>ScriptAlias</code> $B$ODL>o!"(B
-<code>DocumentRoot</code> $B%G%#%l%/%H%j30$N%G%#%l%/%H%j$N$?$a$K;HMQ$5$l$^$9!#(B
-<code>Alias</code> $B$H(B <code>ScriptAlias</code> $B$H$N:9$O!"(B
-<code>ScriptAlias</code> $B$,@\F,<-$G;O$^$k$9$Y$F$N(B URL $B$O(B CGI $B%W%m%0%i%`$H(B
-$B$_$J$5$l$k$H$$$&DI2C$N0UL#$r4^$s$G$$$k$3$H$G$9!#=>$C$F!"(B
-$B>e5-$NNc$G$O!"(B<code>/cgi-bin/</code>
-$B$G;O$^$k%j%=!<%9$X$N$"$i$f$k%j%/%(%9%H$KBP$7$F!"%G%#%l%/%H%j(B
-<code>/usr/local/apache/cgi-bin/</code>
-$B$+$iDs6!$7!"$=$l$i$r(B CGI $B%W%m%0%i%`$H$7$F07$&$h$&(B Apache $B$K<($7$^$9!#(B</p>
-
-<p>$BNc$($P!"(BURL <code>http://dev.rcbowen.com/cgi-bin/test.pl</code>
-$B$,MW5a$5$l$?>l9g!"(BApache $B$O(B $B%U%!%$%k(B
-<code>/usr/local/apache/cgi-bin/test.pl</code> $B$r<B9T$7!"$=$N=PNO$rJV$9$3$H$r(B
-$B;n$_$^$9!#(B
-$B$b$A$m$s!"%U%!%$%k$,B8:_$7!"<B9T2DG=$G$"$j!"7h$a$i$l$?J}K!$G=PNO$rJV$7$^$9!#(B
-$B$=$&$G$J$1$l$P!"(BApache $B$O%(%i!<%a%C%;!<%8$rJV$7$^$9!#(B
-
-<h3><a name="cgioutsideofscriptaliasdirectories">
-ScriptAlias $B%G%#%l%/%H%j30$N(B CGI</a></h3>
-
-<p>CGI $B%W%m%0%i%`$O!"%;%-%e%j%F%#>e$NM}M3$+$i(B
-<code>ScriptAlias</code> $B$5$l$?%G%#%l%/%H%j$K@)8B$5$l$k$3$H$,$7$P$7$P$"$j$^$9!#(B
-$B$3$NJ}K!$K$h$j!"(BCGI $B%W%m%0%i%`$r;HMQ$G$-$k%f!<%6$r4IM}<T$,87$7$/@)8f$9$k(B
-$B$3$H$,$G$-$^$9!#(B
-$B$7$+$7$J$,$i!"E,@Z$J%;%-%e%j%F%#;vA0BP:v$,$H$i$l$k$J$i$P!"(BCGI $B%W%m%0%i%`(B
-$B$rG$0U$N%G%#%l%/%H%j$G<B9T$G$-$J$$$h$&$K$9$kM}M3$O$"$j$^$;$s!#(B
-$BNc$($P!"%f!<%6$K(B <code>UserDir</code> $B%G%#%l%/%F%#%V$G(B
-$BH`$i$N%[!<%`%G%#%l%/%H%jG[2<$K%&%'%V%3%s%F%s%D$r;}$?$;$?$$$H$7$^$9!#(B
-$B$b$7!"H`$i$,(B CGI $B%W%m%0%i%`$r;}$D$3$H$rK>$s$G$$$F$b!"%a%$%s$N(B
-<code>cgi-bin</code> $B%G%#%l%/%H%j$X$N%"%/%;%9$,$G$-$J$$>l9g!"(BCGI $B%W%m%0%i%`$r(B
-$B<B9T$9$k$3$H$,$G$-$kB>$N>l=j$,I,MW$K$J$j$^$9!#(B</p>
-
-<h3><a name="explicitlyusingoptionstopermitcgiexecution">
-CGI $B$N<B9T$r2DG=$K$9$k$?$a$K(B Options $B$rL@<(E*$K;HMQ$9$k(B</a></h3>
-
-<p>$B%5!<%P$N%a%$%s$N@_Dj%U%!%$%kCf$G(B <code>Options</code> $B%G%#%l%/%F%#%V$r(B
-$BL@<(E*$K;HMQ$9$k$3$H$G!"FCDj$N%G%#%l%/%H%jG[2<$G(B CGI $B$N<B9T$r5v2D$9$k$h$&$K(B
-$B;XDj$9$k$3$H$,$G$-$^$9(B:<p>
-
-<pre>
- &lt;Directory /usr/local/apache/htdocs/somedir&gt;
- Options +ExecCGI
- &lt;/Directory&gt;
-</pre>
-
-<p>$B>e5-%G%#%l%/%F%#%V$O!"(BCGI $B%U%!%$%k$N<B9T$r2DG=$K$9$k$h$&(B Apache
-$B$KEA$($^$9!#$^$?!"$I$N%U%!%$%k$,(B CGI $B%U%!%$%k$+$r(B
-$B%5!<%P$KEA$($kI,MW$,$"$j$^$9!#<!$N(B <code>AddHandler</code>
-$B%G%#%l%/%F%#%V$NNc$G$O!"(B<code>cgi</code> $B$^$?$O(B <code>pl</code> $B$r3HD%;R$K(B
-$B;}$D$9$Y$F$N%U%!%$%k$r(B CGI $B%W%m%0%i%`$H$7$F$_$J$9$3$H$r%5!<%P$KEA$($^$9(B:<p>
-
-<pre>
- AddHandler cgi-script cgi pl
-</pre>
-
-<h3><a name="htaccessfiles">.htaccess $B%U%!%$%k(B</a></h3>
-
-<p><code>.htaccess</code> $B%U%!%$%k$O!"%G%#%l%/%H%jKh$K(B
-$B%G%#%l%/%F%#%V$r;XDj$9$kJ}K!$G$9!#(B
-Apache $B$O!"%j%=!<%9$rDs6!$9$k$H$-$K!"Ds6!$9$k%U%!%$%k$,CV$+$l$F$$$k(B
-$B%G%#%l%/%H%jCf$N(B <code>.htaccess</code> $B$H$$$&%U%!%$%k$r;2>H$7$^$9!#(B
-$B$=$N%U%!%$%k$rH/8+$7$?$i!"$=$NCf$GH/8+$5$l$?%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#(B
-<code>.htaccess</code> $B%U%!%$%k$O!"(B<code>AllowOverride</code>
-$B%G%#%l%/%F%#%V$N;XDj$K$h$j;H$($k$h$&$K$J$j$^$9!#(B
-<code>AllowOverride</code> $B%G%#%l%/%F%#%V$O!"(B<code>.htaccess</code> $B%U%!%$%k$G(B
-$B@_Dj$G$-$k%G%#%l%/%F%#%V$N%?%$%W$r;XDj$7$^$9!#(B
-<code>AllowOverride</code> $B%G%#%l%/%F%#%V$N;XDj$,$J$$>l9g!"$^$C$?$/;H$($^$;$s!#(B
-CGI $B$N<B9T$r5v2D$9$k$?$a$KI,MW$H$J$k%G%#%l%/%F%#%V$r;XDj2DG=$K$9$k$K$O!"(B
-$B0J2<$N@_Dj$,%5!<%P$N%a%$%s$N@_Dj$GI,MW$K$J$j$^$9(B:</p>
-
-<pre>
- AllowOverride Options
-</pre>
-
-<p><code>.htaccess</code> $B%U%!%$%k$G$O!"<!$N%G%#%l%/%F%#%V$,I,MW$H(B
-$B$J$j$^$9(B:</p>
-
-<pre>
- Options +ExecCGI
-</pre>
-
-<p>$B$3$N@_Dj$G$O!"$3$N%G%#%l%/%H%j$K$*$1$k(B CGI $B%W%m%0%i%`$N<B9T$r5v2D$9$k$h$&(B
-Apache $B$KEA$($^$9!#(B</p>
-
-<hr>
-<h2><a name="writingacgiprogram">CGI $B%W%m%0%i%`$r=q$/(B</a></h2>
-
-<p>$BDL>o$N%W%m%0%i%_%s%0$H(B CGI $B%W%m%0%i%_%s%0$N4V$K$O<g$KFs$D$N0c$$$,(B
-$B$"$j$^$9!#(B</p>
-
-<p>$B0l$D$O!"(BCGI $B%W%m%0%i%`$N$9$Y$F$N=PNO$K$O(B MIME-type
-$B%X%C%@$rIU$1$J$1$l$P$J$j$^$;$s!#$3$l$O$I$N$h$&$J<oN`$N%3%s%F%s%D$r<u$1<h$C$F(B
-$B$$$k$+$r%/%i%$%"%s%H$K<($9(B HTTP $B%X%C%@$G$9!#$[$H$s$I$N>l9g$G$O!"(B
-$B<!$N$h$&$K=PNO$7$^$9(B:</p>
-
-<pre>
- Content-type: text/html
-</pre>
-
-<p>$B$b$&0l$D$O!"=PNO$r(B HTML $B$+!"%V%i%&%6$,I=<($9$k$3$H$,(B
-$B$G$-$k2?$+B>$N7A<0$K$9$kI,MW$,$"$j$^$9!#(B
-$BBgDq$N>l9g$O(B HTML $B$G$7$g$&$,!"(BGIF $B%$%a!<%8$dB>$NHs(B HTML
-$B%3%s%F%s%D$r=PNO$9$k(B CGI $B%W%m%0%i%`$r=q$/$3$H$b$"$k$G$7$g$&!#(B</p>
-
-<p>$B$3$l$iFsE@0J30$G$O!"(BCGI $B%W%m%0%i%`$r=q$/$3$H$O!"$"$J$?$,=q$$$F$$$k(B
-$BB>$N%W%m%0%i%`$HBg$$$K;w$F$$$k$G$7$g$&!#(B</p>
-
-<h3><a name="yourfirstcgiprogram">$B$"$J$?$N:G=i$N(B CGI $B%W%m%0%i%`(B</a></h3>
-
-<p>$B<!$K<($9$N$O!"%V%i%&%6$K(B 1 $B9T0u;z$9$k(B CGI $B%W%m%0%i%`$NNc$G$9!#(B
-$B0J2<$rF~NO$7!"(B<code>first.pl</code> $B$H$$$&%U%!%$%k$KJ]B8$7!"$=$l$r(B
-<code>cgi-bin</code> $B%G%#%l%/%H%j$KCV$$$F$/$@$5$$!#(B</p>
-
-<pre>
- #!/usr/bin/perl
- print "Content-type: text/html\r\n\r\n";
- print "Hello, World.";
-</pre>
-
-<p>Perl $B$K@:DL$7$F$$$J$/$F$b!"2?$,5/$3$k$+$r(B
-$BM}2r$9$k$3$H$O$G$-$k$O$:$G$9!#(B
-1 $B9TL\$O!"(B<code>/usr/bin/perl</code> $B$G8+$D$1(B
-$B$i$l$k%$%s%?%W%j%?$K$3$N%U%!%$%k$r6!5k$9$k$3$H$G$3$N%W%m%0%i%`$,<B9T$5$l$k$3$H$r(B
-Apache $B$K(B ($B%7%'%k>e$G<B9T$7$h$&$H$7$F$$$k$J$i$P!"$=$N%7%'%k$K(B ) $B<($7$^$9!#(B
-2 $B9TL\$O!"A0=R$7$?$H$*$j(B content-type $B$NDj5A$r0u;z$7$^$9!#(B
-$B$3$l$K$OI|5"2~9T$NFs$D$NAH$r8e$KIU2C$7$^$9!#$3$l$K$h$j!"(B
-$B%X%C%@$N=*$j$K6u9T$,CV$+$l!"(BHTTP $B%X%C%@$N=*$j$H%\%G%#$N;O$^$j$r<($7$^$9!#(B
-3 $B9TL\$O!"(B``Hello, World.'' $B$H$$$&J8;zNs$r0u;z$7!"$3$l$G=*$j$H$J$j$^$9!#(B</p>
-
-<p>$B9%$_$N%V%i%&%6$r3+$-!"%"%I%l%9(B</p>
-
-<pre>
- http://www.example.com/cgi-bin/first.pl
-</pre>
-
-<p>$B$"$k$$$O%U%!%$%k$rCV$$$?%m%1!<%7%g%s$r;XDj$9$k$H!"(B
-<code>Hello, World.</code> $B$H$$$&(B 1 $B9T$,%V%i%&%6%&%#%s%I$K8=$l$k$G$7$g$&!#(B
-$B$=$l$O$"$^$j%(%-%5%$%F%#%s%0$J$3$H$G$O$"$j$^$;$s!#(B
-$B$7$+$7!"$3$l$,$&$^$/F0$1$P!"(B
-$BB>$N$I$N$h$&$J$b$N$G$bF0$+$9$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B</p>
-
-<hr>
-<h2><a name="butitsstillnotworking">$B$7$+$7!"$^$@F0$+$J$$(B !</a></h2>
-
-<p>$B%&%'%V$+$i(B CGI $B%W%m%0%i%`$X$N%"%/%;%9$r9T$J$C$?$H$-!"(B
-$B%V%i%&%6$G8+$k2DG=@-$,$"$k;M$D$N4pK\E*$J$3$H$,$"$j$^$9(B:</p>
-
-<dl>
-<dt>CGI $B%W%m%0%i%`$N=PNO(B</dt>
-<dd>$BAG@2$i$7$$(B ! $B$=$l$O$9$Y$F$,$&$^$/F0$$$?$3$H$r0UL#$7$^$9!#(B<br><br></dd>
-
-<dt>CGI $B%W%m%0%i%`$N%=!<%9%3!<%I!"$^$?$O(B "POST Method Not Allowed"
-$B$H$$$&%a%C%;!<%8(B</dt>
-<dd>$B$3$l$O!"(BCGI $B%W%m%0%i%`$r=hM}$G$-$k$h$&(B Apache $B$rE,@Z$K@_Dj$7$F(B
-$B$$$J$+$C$?$3$H$r0UL#$7$^$9!#(B
-<a href="#configuringapachetopermitcgi">$B!V(BCGI $B$r5v2D$9$k$h$&$K(B Apache $B$r@_Dj$9$k!W(B</a>$B$N>O$rFI$_D>$7!"$"$J$?$,2?$r4V0c$($?$+$r(B
-$BC5$7$F$_$F$/$@$5$$!#(B<br><br></dd>
-
-<dt>$B%a%C%;!<%8$,(B "Forbidden" $B$G;O$^$C$F$$$k(B</dt>
-<dd>$B$3$l$O%Q!<%_%C%7%g%s$NLdBj$H$$$&$3$H$r0UL#$7$^$9!#(B
-<a href="#errorlogs">Apache $B$N%(%i!<%m%0(B</a>$B$H!"8e=R$N(B
-<a href="#filepermissions">$B!V%U%!%$%k$N%Q!<%_%C%7%g%s!W(B</a>$B$N>O$r(B
-$B%A%'%C%/$7$F$/$@$5$$!#(B
-<br><br></dd>
-
-<dt>"Internal Server Error" $B$H$$$&%a%C%;!<%8(B</dt>
-<dd><a href="#errorlogs">Apache $B$N%(%i!<%m%0(B</a>$B$r%A%'%C%/$9$k$H!"(B
-"Premature end of script headers" $B$H$$$&%m%0$,5-O?$5$l$F$$$k$H;W$$$^$9!#(B
-$B$=$7$F!"$*$=$i$/(B CGI $B%W%m%0%i%`$K$h$C$F@8@.$5$l$?%(%i!<%a%C%;!<%8$b5-O?$5$l$F$$$k$G$7$g$&!#(B
-$B$3$N>l9g!"(BCGI $B%W%m%0%i%`$,E,@Z$J(B HTTP $B%X%C%@$r=PNO$G$-$J$$860x$r(B
-$BCN$k$?$a$K!"0J2<$N3F>O$G%A%'%C%/$7$F$_$F$/$@$5$$!#(B</dd>
-</dl>
-
-<h3><a name="filepermissions">$B%U%!%$%k$N%Q!<%_%C%7%g%s(B</a></h3>
-
-<p>$B%5!<%P$O$"$J$?$N8"8B$G<B9T$5$l$F$$$J$$$N$rK:$l$J$$$h$&$K!#(B
-$B$D$^$j!"5/F0$9$k$H$-!"%5!<%P$OFC8"$r$b$?$J$$%f!<%6(B - $BDL>o(B ``nobody'' $B$d(B ``www''
-$B$N8"8B$G<B9T$5$l$^$9!#$7$?$,$C$F!"$"$J$?$,=jM-$9$k%U%!%$%k$r(B
-$B<B9T$9$k$K$OJL$N%Q!<%_%C%7%g%s$,I,MW$H$J$j$^$9!#(B
-$BDL>o!"(B``nobody'' $B$,<B9T$9$k$N$K==J,$J%Q!<%_%C%7%g%s$rM?$($kJ}K!$O!"%U%!%$%k$K(B
-$BC/$G$b<B9T2DG=$H$9$k%Q!<%_%C%7%g%s$rM?$($k$3$H$G$9(B:</p>
-
-<pre>
- chmod a+x first.pl
-</pre>
-
-<p>$B$^$?!"$b$7$"$J$?$N%W%m%0%i%`$,B>$N%U%!%$%k$rFI$_=q$-$9$k$J$i$P!"(B
-$B$=$l$i$N%U%!%$%k$O!"$3$l$,2DG=$H$J$k@5$7$$%Q!<%_%C%7%g%s$r;}$C$F$$$kI,MW$,(B
-$B$"$j$^$9!#(B</p>
-
-<p>$B$3$l$KBP$9$kNc30$O!"%5!<%P$,(B <a href="../suexec.html">suexec</a> $B$r(B
-$B;HMQ$9$k$h$&@_Dj$5$l$F$$$k>l9g$G$9!#(B
-suexec $B$O!"(BCGI $B%W%m%0%i%`$,CV$+$l$F$$$k%P!<%A%c%k%[%9%H$^$?$O%f!<%6$N%[!<%`(B
-$B%G%#%l%/%H%j$K$h$C$F!"0[$J$k%f!<%68"8B$G(B
-$B<B9T$5$l$k$h$&$K$7$^$9!#(B
-suexec $B$O$H$F$b87$7$$%Q!<%_%C%7%g%s$N%A%'%C%/$,$"$j!"(B
-$B$=$N%A%'%C%/$rDL2a$G$-$J$$$H(B "Internal Server Error" $B$H$J$j!"(B
-$B$=$N(B CGI $B%W%m%0%i%`$N<B9T$O<:GT$7$^$9!#(B
-$B$3$N>l9g!"$I$N%;%-%e%j%F%#%A%'%C%/$,<:GT$7$F$$$k$N$+$rCN$k(B
-$B$?$a$K(B suexec $B%m%0%U%!%$%k$r%A%'%C%/$9$kI,MW$,$"$j$^$9!#(B</p>
-
-<h3><a name="pathinformation">$B%Q%9>pJs(B</a></h3>
-
-<p>$B%3%^%s%I%i%$%s$+$i%W%m%0%i%`$r<B9T$9$k$H$-!"0U<1$7$J$/$F$b(B
-$B%7%'%k$KEO$5$l$k>pJs$,$"$j$^$9!#(B
-$BNc$($P!";2>H$9$k%U%!%$%k$N$?$a$K$I$3$r8!:w$7$?$i$h$$$+$r%7%'%k$KEA$($k%Q%9$,(B
-$B$"$j$^$9!#(B</p>
-
-<p>$B%W%m%0%i%`$,(B CGI $B%W%m%0%i%`$H$7$F%&%'%V%5!<%P$K$h$C$F<B9T$5$l$k$H$-!"(B
-$B$=$l$O%Q%9$r;}$A$^$;$s!#(B
-CGI $B%W%m%0%i%`Fb$G8F$S=P$9$"$i$f$k%W%m%0%i%`(B ($BNc$($P!"(B'sendmail' $B$N(B
-$B$h$&$J$b$N(B) $B$O!"%U%k%Q%9$G;XDj$9$kI,MW$,$"$k$G$7$g$&!#(B
-$B$=$l$K$h$j!"(BCGI $B%W%m%0%i%`$r<B9T$7$h$&$H$7$?$H$-!"%7%'%k$O$=$N$h$&$J%W%m%0%i%`$r(B
-$B8+$D$1$k$3$H$,$G$-$^$9!#(B</p>
-
-<p>$BF1MM$J$3$H$O!"%9%/%j%W%H$N%$%s%?%W%j%?(B ($B$7$P$7$P(B <code> perl </code>)
-$B$X$N%Q%9$G!"(BCGI $B%W%m%0%i%`$N(B 1 $B9TL\$K<!$N$h$&$K<($5$l$^$9(B:</p>
-
-<pre>
- #!/usr/bin/perl
-</pre>
-
-<p>$B$3$l$,%$%s%?!<%W%j%?$X$N<B:]$N%Q%9$G$"$k$3$H$r3N<B$K$7$F$*$-$^$9!#(B</p>
-
-<h3><a name="syntaxerrors">$B9=J8%(%i!<(B</a></h3>
-
-<p>CGI $B%W%m%0%i%`$,<:GT$9$k$N$OBgDq!"%W%m%0%i%`<+?H$KLdBj$,$"$k>l9g$G$9!#(B
-$B0lEY(B CGI $B$N;H$$J}$rM}2r$7!"A0=R$NFs$D$N8m$j$rHH$7$F$$$J$$$J$i$P!"(B
-$B$^$:4V0c$$$J$/$=$&$G$7$g$&!#%V%i%&%6$rDL$7$F%F%9%H$r9T$&A0$KI,$:!"%3%^%s%I%i%$%s(B
-$B$+$i%W%m%0%i%`$N<B9T$r;n$7$J$5$$!#$3$l$K$h$j!"BgDq$NLdBj$,5/$3$i$J$/$J$j$^$9!#(B</p>
-
-<h3><a name="errorlogs">$B%(%i!<%m%0(B</a></h3>
-
-<p>$B%(%i!<%m%0$OM'C#$G$9!#A4$F$N$&$^$/$$$+$J$$$3$H$O!"%(%i!<%m%0$K(B
-$B%a%C%;!<%8$r@8@.$7$^$9!#I,$:$=$l$r:G=i$K8+$k$Y$-$G$9!#(B
-$B$b$7!"$"$J$?$,%&%'%V%5%$%H$r<g:E$7$F$$$k>l=j$,%(%i!<%m%0$N;2>H$r(B
-$B5v$7$F$$$J$$$J$i$P!"$-$C$HB>$N%5%$%H$G<g:E$9$k$Y$-$G$9!#(B
-$B%(%i!<%m%0$NFI$_J}$r3X$V$3$H$G!"$[$H$s$IA4$F$NLdBj$,?WB.$K(B
-$B3NG'$5$l!"?WB.$K2r7h$5$l$k$H$$$&$3$H$,J,$+$k$G$7$g$&!#(B</p>
-
-<hr>
-<h2><a name="whatsgoingonbehindthescenes">$BN"$G2?$,5/$3$C$F$$$k$N$+(B?</a></h2>
-
-<p>CGI $B%W%m%0%i%_%s%0$K=OC#$9$k$H!"N"$G5/$3$C$F$$$k(B
-$B$3$H$K$D$$$F99$KM}2r$9$k$3$H$OM-1W$K$J$k$G$7$g$&!#%V%i%&%6$H(B
-$B%5!<%P$,$I$N$h$&$KAj8_DL?.$9$k$+$K$D$$$F$OFC$K$=$&$G$9!#$J$<$J$i!"(B
-``Hello, World.'' $B$r0u;z$9$k%W%m%0%i%`$r=q$/$3$H$O$^$3$H$K7k9=$G$9$,!"(B
-$B$=$l$OFC$KM-1W$G$O$"$j$^$;$s!#(B</p>
-
-<h3><a name="environmentvariables">$B4D6-JQ?t(B</a></h3>
-
-<p>$B4D6-JQ?t$O!"$"$J$?$,%3%s%T%e!<%?$r;H$&$H$-$KJU$j$KB8:_$7$F$$$kCM$G$9!#(B
-$B$=$l$i$O!"%Q%9(B ($B%3%^%s%I$r%?%$%W$7$?$H$-$K<B9T$9$k<B:]$N%U%!%$%k$r(B
-$BC5$7=P$9$H$3$m(B)$B!"%f!<%6L>!"C<Kv7?$J$I$N$h$&$JJXMx$J$b$N$G$9!#(B
-$BDL>o$N!"KhF|$N4D6-JQ?t$N40A4$J%j%9%H$rD4$Y$k$K$O!"%3%^%s%I%W%m%s%W%H$G(B
-<code>env</code> $B$rF~NO$7$^$9!#(B</p>
-
-<p>CGI $B$N=hM}Cf!"%5!<%P$H%V%i%&%6$b4D6-JQ?t$r@_Dj$7!"$=$l$K$h$j(B
-$BAj8_$KDL?.$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B
-$B$=$N4D6-JQ?t$O!"%V%i%&%6%?%$%W(B (Netscape, IE, Lynx)$B!"(B
-$B%5!<%P%?%$%W(B (Apache, IIS, WebSite)$B!"<B9T$5$l$F$$$k(B CGI $B%W%m%0%i%`$NL>A0(B
-$B$J$I$N$h$&$J$b$N$G$9!#(B</p>
-
-<p>$B$3$l$i$NJQ?t$O(B CGI $B%W%m%0%i%^$,;HMQ$9$k$3$H$,$G$-$^$9!#$=$7$F!"(B
-$B$=$l$O%/%i%$%"%s%H$H%5!<%P$NDL?.$NOC$NH>J,$G$9!#I,MW$JJQ?t$N40A4$J%j%9%H$O(B
-<a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a>
-$B$K$"$j$^$9!#(B</p>
-
-<p>$B0J2<$NC1=c$J(B Perl CGI $B%W%m%0%i%`$O!"EO$5$l$kA4$F$N4D6-JQ?t$r(B
-$BI=<($7$^$9!#F1MM$N%W%m%0%i%`$O!"(BApache $B%G%#%9%H%j%S%e!<%7%g%s$N(B
-<code>cgi-bin</code> $B%G%#%l%/%H%j$KFs$D4^$^$l$F$$$^$9!#(B
-$B$$$/$D$+$NJQ?t$,I,?\$G$"$j!"$$$/$D$+$OG$0U$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
-$B$=$7$F!"8x<0$N%j%9%H$K$O$J$$$$$/$D$+$NJQ?t$,I=<($5$l$F$$$k$+$b$7$l$^$;$s!#(B
-$B$5$i$K!"(BApache $B$O%G%U%)%k%H$GMQ0U$5$l$F$$$k4pK\E*$J$b$N$K(B
-<a href="../env.html">$B$"$J$?<+?H$N4D6-JQ?t$r2C$($k(B</a>
-$B$?$a$N!"B?$/$N0[$J$kJ}K!$rMQ0U$7$F$7$^$9!#(B</p>
-
-<pre>
- #!/usr/bin/perl
- print "Content-type: text/html\n\n";
- foreach $key (keys %ENV) {
- print "$key --&gt; $ENV{$key}&lt;br&gt;";
- }
-</pre>
-
-<h3><a name="stdinandstdout">STDIN $B$H(B STDOUT</a></h3>
-
-<p>$B%5!<%P$H%/%i%$%"%s%H4V$N$b$&0l$D$NDL?.$O!"I8=`F~NO(B (<code>STDIN</code>)$B$H(B
-$BI8=`=PNO(B (<code>STDOUT</code>) $B$rDL$8$F9T$J$o$l$^$9!#DL>o$NJ8L.$K$*$$$F!"(B
-<code>STDIN</code> $B$O%-!<%\!<%I$d%W%m%0%i%`$,F0:n$9$k$?$a$KM?$($i$l$k(B
-$B%U%!%$%k$r0UL#$7!"(B<code>STDOUT</code> $B$ODL>o%3%s%=!<%k$^$?$O%9%/%j!<%s$r(B
-$B0UL#$7$^$9!#(B</p>
-
-<p>$B%&%'%V%U%)!<%`$+$i(B CGI $B%W%m%0%i%`$X(B<code>POST</code> $B$7$?$H$-!"(B
-$B%U%)!<%`$N%G!<%?$OFCJL$J%U%)!<%^%C%H$GB+$M$i$l!"(B<code>STDIN</code> $B$r(B
-$BDL$7$F!"(BCGI $B%W%m%0%i%`$K0z$-EO$5$l$^$9!#%W%m%0%i%`$O%G!<%?$,%-!<%\!<%I(B
-$B$b$7$/$O%U%!%$%k$+$iMh$F$$$?$+$N$h$&$K=hM}$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<P>$B!VFCJL$J%U%)!<%^%C%H!W$O$H$F$bC1=c$G$9!#%U%#!<%k%IL>$HCM$O%$%3!<%k(B
-(=) $B$G7k$P$l$^$9!#$=$7$FCM$NAH$O%"%s%Q%5%s%I(B (&amp;) $B$G(B
-$B7k$P$l$^$9!#%9%Z!<%9!"%"%s%Q%5%s%I!"%$%3!<%k$N$h$&$JLLE]$JJ8;z(B
-$B$O!"$=$l$i$,F0:n$rBLL\$K$7$J$$$h$&$K$=$NJ8;z$KAjEv$9$k(B 16 $B?J$KJQ49$5$l$^$9!#(B
-$BA4%G!<%?J8;zNs$O!"0J2<$N$h$&$K$J$j$^$9(B:</p>
-
-<pre>
- name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
-</pre>
-
-<p>$B;~!9!"$3$N$h$&$JJ8;zNs$,(B URL $B$KIU2C$5$l$k$N$r8+$k$G$7$g$&!#(B
-$B$=$N>l9g!"%5!<%P$O(B <code>QUERY_STRING</code> $B$H$$$&4D6-JQ?t$K$=$N(B
-$BJ8;zNs$rF~$l$^$9!#$=$l$O(B <code>GET</code> $B%j%/%(%9%H$H8F$P$l$^$9!#(B
-HTML $B%U%)!<%`$G$O!"%G!<%?$rEO$9$?$a$K(B <code>GET</code> $B$H(B <code>POST</code>
-$B$N$I$A$i$r;HMQ$9$k$+$r!"(B
-<code>FORM</code>$B%?%0$N(B <code>METHOD</code> $BB0@-$N@_Dj$G;XDj$7$^$9!#(B</p>
-
-<p>CGI $B%W%m%0%i%`$O!"$=$NJ8;zNs$rLr$KN)$D>pJs$KJ,3d$9$k@UG$$,$"$j$^$9!#(B
-$B9,$$$K$b!"$=$N%G!<%?=hM}$r=u$1$k%i%$%V%i%j$d%b%8%e!<%k$,B8:_$7$^$9!#$3$l$i$O!"(B
-CGI $B%W%m%0%i%`$NB>$NLL$G$bF1MM$KLr$KN)$A$^$9!#(B</p>
-
-<hr>
-<h2><a name="cgimoduleslibraries">CGI $B%b%8%e!<%k(B/$B%i%$%V%i%j(B</a></h2>
-
-<p>CGI $B%W%m%0%i%`$r=q$/$H$-!"LLE]$J;E;v$NBgItJ,$r$7$F$/$l$k(B
-$B%3!<%I%i%$%V%i%j$^$?$O%b%8%e!<%k$r;H$&$3$H$r8!F$$9$Y$-$G$9!#(B
-$B$3$l$O%(%i!<$r8:$i$7!"Aa$$3+H/$K$D$J$,$j$^$9!#(B</p>
-
-<p>Perl $B$G(B CGI $B%W%m%0%i%`$r=q$$$F$$$k$J$i!"%b%8%e!<%k$O(B
-<a href="http://www.cpan.org/">CPAN</a> $B$GDs6!$5$l$F$$$^$9!#$3$NL\E*$N$?$a$N(B
-$B:G$bIa5Z$7$F$$$k%b%8%e!<%k$O(B CGI.pm $B$G$9!#(B
-CGI::Lite $B$b8!F$$7$^$7$g$&!#$3$l$O!"$[$H$s$I$N%W%m%0%i%`$K$*$$$FI,MW$H$9$k$9$Y$F$N5!G=$N:G>.%;%C%H$N<BAu$G$9!#(B</p>
-
-<p>C $B$G(B CGI $B%W%m%0%i%`$r=q$$$F$$$k$J$i!"$$$m$$$m$J(B
-$B%*%W%7%g%s$,$"$j$^$9!#$3$l$i$NFb$N0l$D$O(B
-<a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>
-$B$GDs6!$5$l$F$$$k(B CGIC $B%i%$%V%i%j$G$9!#(B</p>
-
-<hr>
-<h2><a name="formoreinformation">$B99$J$k>pJs(B</a></h2>
-
-<p>CGI $B$K4X$9$k>pJs$O%&%'%V$G?tB?$/Ds6!$5$l$F$$$^$9!#(BCGI $B$NLdBj$K$D$$$F$O(B
-Usenet $B$N(B comp.infosystems.www.authoring.cgi $B$G!"B>$N%f!<%6$H(B
-$BO@5D$9$k$3$H$,$G$-$^$9!#(BHTML Writers Guide $B$N(B -servers$B%a!<%j%s%0%j%9%H(B
-$B$O!"$"$J$?$N<ALd$K2sEz$7$F$/$l$k0NBg$J%j%=!<%9$G$9!#(B
-<a href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a>
-$B$G99$KB?$/$rC5$7=P$9$3$H$,(B
-$B$G$-$^$9!#(B</p>
-
-<p>$B$=$7$F$b$A$m$s!"$*$=$i$/(B CGI $B%W%m%0%i%`$NF0:n$K4X$9$k>\:Y$N(B
-$BA4$F$,5-=R$5$l$F$$$k(B CGI $B$N;EMM$rFI$`$Y$-$G$9!#%*%j%8%J%k%P!<%8%g%s$r(B
-<a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a> $B$G!"(B
-$B%"%C%W%G!<%H$5$l$?%I%i%U%H$r(B
-<a href="http://web.golux.com/coar/cgi/">Common Gateway Interface RFC
-$B%W%m%8%'%/%H(B</a>$B$G;2>H$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<p>CGI $B$NLdBj$K$D$$$F!"2C$o$C$F$$$k%a!<%j%s%0%j%9%H$^$?$O%K%e!<%9(B
-$B%0%k!<%W$K<ALd$rAw$k$H$-!"5/$3$C$?$b$N!"5/$3$C$F$[$7$$$3$H!"(B
-$B<B:]$K5/$3$C$?$3$H$,$I$&0c$&$+!";HMQ$7$F$$$k%5!<%P!"(B
-CGI $B%W%m%0%i%`$r5-=R$7$F$$$k8@8l$K4X$9$k==J,$J>pJs$H!"(B
-$B2DG=$G$"$l$PLdBj$N%3!<%I$rDs6!$9$k$h$&$K$7$F$/$@$5$$!#(B
-$B$=$&$9$k$3$H$G!"LdBj$,$h$j4VC1$K8+$D$+$k$h$&$K$J$j$^$9!#(B</p>
-
-<p>Apache $B$N%=!<%9%3!<%I$K$*$$$FLdBj$rH/8+$7$?$3$H$r3N?.$7$F$$$J$$(B
-$B8B$j!"(BCGI $B$NLdBj$K4X$9$k<ALd$r(B Apache $B%P%0%G!<%?%Y!<%9$KAw$k$Y$-$G$J$$(B
-$B$3$H$KCmL\$7$F$/$@$5$$!#(B</p>
-
-<!--#include virtual="footer.html" -->
-
-</body>
-</html>
-
diff --git a/docs/manual/howto/footer.html b/docs/manual/howto/footer.html
deleted file mode 100644
index 965ff02cf8..0000000000
--- a/docs/manual/howto/footer.html
+++ /dev/null
@@ -1,7 +0,0 @@
- <hr />
-
- <h3 align="CENTER">Apache HTTP Server Version 2.0</h3>
- <a href="./"><img src="../images/index.gif" alt="Index" /></a>
- <a href="../"><img src="../images/home.gif" alt="Home" /></a>
-
-
diff --git a/docs/manual/howto/header.html b/docs/manual/howto/header.html
deleted file mode 100644
index 749461de9e..0000000000
--- a/docs/manual/howto/header.html
+++ /dev/null
@@ -1,6 +0,0 @@
- <div align="CENTER">
- <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" />
-
- <h3>Apache HTTP Server Version 2.0</h3>
- </div>
-
diff --git a/docs/manual/howto/ssi.html.en b/docs/manual/howto/ssi.html.en
deleted file mode 100644
index eef2ed2f9f..0000000000
--- a/docs/manual/howto/ssi.html.en
+++ /dev/null
@@ -1,548 +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 Tutorial: Introduction to Server Side
- Includes</title>
- <link rev="made" href="mailto:rbowen@rcbowen.com" />
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="CENTER">Apache Tutorial: Introduction to Server Side
- Includes</h1>
- <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->
-
-
- <ul>
- <li><a
- href="#apachetutorial:introductiontoserversideincludes">Apache
- Tutorial: Introduction to Server Side Includes</a></li>
-
- <li><a href="#whataressi">What are SSI?</a></li>
-
- <li><a href="#configuringyourservertopermitssi">Configuring
- your server to permit SSI</a></li>
-
- <li>
- <a href="#basicssidirectives">Basic SSI directives</a>
-
- <ul>
- <li><a href="#today'sdate">Today's date</a></li>
-
- <li><a href="#modificationdateofthefile">Modification
- date of the file</a></li>
-
- <li><a href="#includingtheresultsofacgiprogram">Including
- the results of a CGI program</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#additionalexamples">Additional examples</a>
-
- <ul>
- <li><a href="#whenwasthisdocumentmodified">When was this
- document modified?</a></li>
-
- <li><a href="#includingastandardfooter">Including a
- standard footer</a></li>
-
- <li><a href="#whatelsecaniconfig">What else can I
- config?</a></li>
-
- <li><a href="#executingcommands">Executing
- commands</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#advancedssitechniques">Advanced SSI
- techniques</a>
-
- <ul>
- <li><a href="#settingvariables">Setting
- variables</a></li>
-
- <li><a href="#conditionalexpressions">Conditional
- expressions</a></li>
- </ul>
- </li>
-
- <li><a href="#conclusion">Conclusion</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
-
- <h2><a id="apachetutorial:introductiontoserversideincludes"
- name="apachetutorial:introductiontoserversideincludes">Apache
- Tutorial: Introduction to Server Side Includes</a></h2>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="../mod/mod_include.html">mod_include</a><br />
- <a href="../mod/mod_cgi.html">mod_cgi</a><br />
- <a href="../mod/mod_expires.html">mod_expires</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="../mod/core.html#options">Options</a><br />
- <a
- href="../mod/mod_include.html#xbithack">XBitHack</a><br />
- <a href="../mod/mod_mime.html#addtype">AddType</a><br />
- <a
- href="../mod/core.html.html#setoutputfilter">SetOutputFilter</a><br />
- <a
- href="../mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br />
- </td>
- </tr>
- </table>
-
- <p>This article deals with Server Side Includes, usually called
- simply SSI. In this article, I'll talk about configuring your
- server to permit SSI, and introduce some basic SSI techniques
- for adding dynamic content to your existing HTML pages.</p>
-
- <p>In the latter part of the article, we'll talk about some of
- the somewhat more advanced things that can be done with SSI,
- such as conditional statements in your SSI directives.</p>
- <hr />
-
- <h2><a id="whataressi" name="whataressi">What are SSI?</a></h2>
-
- <p>SSI (Server Side Includes) are directives that are placed in
- HTML pages, and evaluated on the server while the pages are
- being served. They let you add dynamically generated content to
- an existing HTML page, without having to serve the entire page
- via a CGI program, or other dynamic technology.</p>
-
- <p>The decision of when to use SSI, and when to have your page
- entirely generated by some program, is usually a matter of how
- much of the page is static, and how much needs to be
- recalculated every time the page is served. SSI is a great way
- to add small pieces of information, such as the current time.
- But if a majority of your page is being generated at the time
- that it is served, you need to look for some other
- solution.</p>
- <hr />
-
- <h2><a id="configuringyourservertopermitssi"
- name="configuringyourservertopermitssi">Configuring your server
- to permit SSI</a></h2>
-
- <p>To permit SSI on your server, you must have the following
- directive either in your <code>httpd.conf</code> file, or in a
- <code>.htaccess</code> file:</p>
-<pre>
- Options +Includes
-</pre>
-
- <p>This tells Apache that you want to permit files to be parsed
- for SSI directives. Note that most configurations contain
- multiple <a href="../mod/core.html#options">Options</a> directives
- that can override each other. You will probably need to apply the
- <code>Options</code> to the specific directory where you want SSI
- enabled in order to assure that it gets evaluated last.</p>
-
- <p>Not just any file is parsed for SSI directives. You have to
- tell Apache which files should be parsed. There are two ways to
- do this. You can tell Apache to parse any file with a
- particular file extension, such as <code>.shtml</code>, with
- the following directives:</p>
-<pre>
- AddType text/html .shtml
- AddOutputFilter INCLUDES .shtml
-</pre>
-
- <p>One disadvantage to this approach is that if you wanted to
- add SSI directives to an existing page, you would have to
- change the name of that page, and all links to that page, in
- order to give it a <code>.shtml</code> extension, so that those
- directives would be executed.</p>
-
- <p>The other method is to use the <code>XBitHack</code>
- directive:</p>
-<pre>
- XBitHack on
-</pre>
-
- <p><code>XBitHack</code> tells Apache to parse files for SSI
- directives if they have the execute bit set. So, to add SSI
- directives to an existing page, rather than having to change
- the file name, you would just need to make the file executable
- using <code>chmod</code>.</p>
-<pre>
- chmod +x pagename.html
-</pre>
-
- <p>A brief comment about what not to do. You'll occasionally
- see people recommending that you just tell Apache to parse all
- <code>.html</code> files for SSI, so that you don't have to
- mess with <code>.shtml</code> file names. These folks have
- perhaps not heard about <code>XBitHack</code>. The thing to
- keep in mind is that, by doing this, you're requiring that
- Apache read through every single file that it sends out to
- clients, even if they don't contain any SSI directives. This
- can slow things down quite a bit, and is not a good idea.</p>
-
- <p>Of course, on Windows, there is no such thing as an execute
- bit to set, so that limits your options a little.</p>
-
- <p>In its default configuration, Apache does not send the last
- modified date or content length HTTP headers on SSI pages,
- because these values are difficult to calculate for dynamic
- content. This can prevent your document from being cached, and
- result in slower perceived client performance. There are two
- ways to solve this:</p>
-
- <ol>
- <li>Use the <code>XBitHack Full</code> configuration. This
- tells Apache to determine the last modified date by looking
- only at the date of the originally requested file, ignoring
- the modification date of any included files.</li>
-
- <li>Use the directives provided by <a
- href="../mod/mod_expires.html">mod_expires</a> to set an
- explicit expiration time on your files, thereby letting
- browsers and proxies know that it is acceptable to cache
- them.</li>
- </ol>
- <hr />
-
- <h2><a id="basicssidirectives" name="basicssidirectives">Basic
- SSI directives</a></h2>
-
- <p>SSI directives have the following syntax:</p>
-<pre>
- &lt;!--#element attribute=value attribute=value ... --&gt;
-</pre>
-
- <p>It is formatted like an HTML comment, so if you don't have
- SSI correctly enabled, the browser will ignore it, but it will
- still be visible in the HTML source. If you have SSI correctly
- configured, the directive will be replaced with its
- results.</p>
-
- <p>The element can be one of a number of things, and we'll talk
- some more about most of these in the next installment of this
- series. For now, here are some examples of what you can do with
- SSI</p>
-
- <h3><a id="today'sdate" name="today'sdate">Today's
- date</a></h3>
-<pre>
- &lt;!--#echo var="DATE_LOCAL" --&gt;
-</pre>
-
- <p>The <code>echo</code> element just spits out the value of a
- variable. There are a number of standard variables, which
- include the whole set of environment variables that are
- available to CGI programs. Also, you can define your own
- variables with the <code>set</code> element.</p>
-
- <p>If you don't like the format in which the date gets printed,
- you can use the <code>config</code> element, with a
- <code>timefmt</code> attribute, to modify that formatting.</p>
-<pre>
- &lt;!--#config timefmt="%A %B %d, %Y" --&gt;
- Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
-</pre>
-
- <h3><a id="modificationdateofthefile"
- name="modificationdateofthefile">Modification date of the
- file</a></h3>
-<pre>
- This document last modified &lt;!--#flastmod file="index.html" --&gt;
-</pre>
-
- <p>This element is also subject to <code>timefmt</code> format
- configurations.</p>
-
- <h3><a id="includingtheresultsofacgiprogram"
- name="includingtheresultsofacgiprogram">Including the results
- of a CGI program</a></h3>
-
- <p>This is one of the more common uses of SSI - to output the
- results of a CGI program, such as everybody's favorite, a ``hit
- counter.''</p>
-<pre>
- &lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
-</pre>
- <hr />
-
- <h2><a id="additionalexamples"
- name="additionalexamples">Additional examples</a></h2>
-
- <p>Following are some specific examples of things you can do in
- your HTML documents with SSI.</p>
- <hr />
-
- <h2><a id="whenwasthisdocumentmodified"
- name="whenwasthisdocumentmodified">When was this document
- modified?</a></h2>
-
- <p>Earlier, we mentioned that you could use SSI to inform the
- user when the document was most recently modified. However, the
- actual method for doing that was left somewhat in question. The
- following code, placed in your HTML document, will put such a
- time stamp on your page. Of course, you will have to have SSI
- correctly enabled, as discussed above.</p>
-<pre>
- &lt;!--#config timefmt="%A %B %d, %Y" --&gt;
- This file last modified &lt;!--#flastmod file="ssi.shtml" --&gt;
-</pre>
-
- <p>Of course, you will need to replace the
- <code>ssi.shtml</code> with the actual name of the file that
- you're referring to. This can be inconvenient if you're just
- looking for a generic piece of code that you can paste into any
- file, so you probably want to use the
- <code>LAST_MODIFIED</code> variable instead:</p>
-<pre>
- &lt;!--#config timefmt="%D" --&gt;
- This file last modified &lt;!--#echo var="LAST_MODIFIED" --&gt;
-</pre>
-
- <p>For more details on the <code>timefmt</code> format, go to
- your favorite search site and look for <code>ctime</code>. The
- syntax is the same.</p>
- <hr />
-
- <h2><a id="includingastandardfooter"
- name="includingastandardfooter">Including a standard
- footer</a></h2>
-
- <p>If you are managing any site that is more than a few pages,
- you may find that making changes to all those pages can be a
- real pain, particularly if you are trying to maintain some kind
- of standard look across all those pages.</p>
-
- <p>Using an include file for a header and/or a footer can
- reduce the burden of these updates. You just have to make one
- footer file, and then include it into each page with the
- <code>include</code> SSI command. The <code>include</code>
- element can determine what file to include with either the
- <code>file</code> attribute, or the <code>virtual</code>
- attribute. The <code>file</code> attribute is a file path,
- <em>relative to the current directory</em>. That means that it
- cannot be an absolute file path (starting with /), nor can it
- contain ../ as part of that path. The <code>virtual</code>
- attribute is probably more useful, and should specify a URL
- relative to the document being served. It can start with a /,
- but must be on the same server as the file being served.</p>
-<pre>
- &lt;!--#include virtual="/footer.html" --&gt;
-</pre>
-
- <p>I'll frequently combine the last two things, putting a
- <code>LAST_MODIFIED</code> directive inside a footer file to be
- included. SSI directives can be contained in the included file,
- and includes can be nested - that is, the included file can
- include another file, and so on.</p>
- <hr />
-
- <h2><a id="whatelsecaniconfig" name="whatelsecaniconfig">What
- else can I config?</a></h2>
-
- <p>In addition to being able to <code>config</code> the time
- format, you can also <code>config</code> two other things.</p>
-
- <p>Usually, when something goes wrong with your SSI directive,
- you get the message</p>
-<pre>
- [an error occurred while processing this directive]
-</pre>
-
- <p>If you want to change that message to something else, you
- can do so with the <code>errmsg</code> attribute to the
- <code>config</code> element:</p>
-<pre>
- &lt;!--#config errmsg="[It appears that you don't know how to use SSI]" --&gt;
-</pre>
-
- <p>Hopefully, end users will never see this message, because
- you will have resolved all the problems with your SSI
- directives before your site goes live. (Right?)</p>
-
- <p>And you can <code>config</code> the format in which file
- sizes are returned with the <code>sizefmt</code> attribute. You
- can specify <code>bytes</code> for a full count in bytes, or
- <code>abbrev</code> for an abbreviated number in Kb or Mb, as
- appropriate.</p>
- <hr />
-
- <h2><a id="executingcommands"
- name="executingcommands">Executing commands</a></h2>
-
- <p>I expect that I'll have an article some time in the coming
- months about using SSI with small CGI programs. For now, here's
- something else that you can do with the <code>exec</code>
- element. You can actually have SSI execute a command using the
- shell (<code>/bin/sh</code>, to be precise - or the DOS shell,
- if you're on Win32). The following, for example, will give you
- a directory listing.</p>
-<pre>
- &lt;pre&gt;
- &lt;!--#exec cmd="ls" --&gt;
- &lt;/pre&gt;
-</pre>
-
- <p>or, on Windows</p>
-<pre>
- &lt;pre&gt;
- &lt;!--#exec cmd="dir" --&gt;
- &lt;/pre&gt;
-</pre>
-
- <p>You might notice some strange formatting with this directive
- on Windows, because the output from <code>dir</code> contains
- the string ``&lt;<code>dir</code>&gt;'' in it, which confuses
- browsers.</p>
-
- <p>Note that this feature is exceedingly dangerous, as it will
- execute whatever code happens to be embedded in the
- <code>exec</code> tag. If you have any situation where users
- can edit content on your web pages, such as with a
- ``guestbook'', for example, make sure that you have this
- feature disabled. You can allow SSI, but not the
- <code>exec</code> feature, with the <code>IncludesNOEXEC</code>
- argument to the <code>Options</code> directive.</p>
- <hr />
-
- <h2><a id="advancedssitechniques"
- name="advancedssitechniques">Advanced SSI techniques</a></h2>
-
- <p>In addition to spitting out content, Apache SSI gives you
- the option of setting variables, and using those variables in
- comparisons and conditionals.</p>
-
- <h3><a id="caveat" name="caveat">Caveat</a></h3>
-
- <p>Most of the features discussed in this article are only
- available to you if you are running Apache 1.2 or later. Of
- course, if you are not running Apache 1.2 or later, you need to
- upgrade immediately, if not sooner. Go on. Do it now. We'll
- wait.</p>
- <hr />
-
- <h2><a id="settingvariables" name="settingvariables">Setting
- variables</a></h2>
-
- <p>Using the <code>set</code> directive, you can set variables
- for later use. We'll need this later in the discussion, so
- we'll talk about it here. The syntax of this is as follows:</p>
-<pre>
- &lt;!--#set var="name" value="Rich" --&gt;
-</pre>
-
- <p>In addition to merely setting values literally like that,
- you can use any other variable, including, for example,
- environment variables, or some of the variables we discussed in
- the last article (like <code>LAST_MODIFIED</code>, for example)
- to give values to your variables. You will specify that
- something is a variable, rather than a literal string, by using
- the dollar sign ($) before the name of the variable.</p>
-<pre>
- &lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
-</pre>
-
- <p>To put a literal dollar sign into the value of your
- variable, you need to escape the dollar sign with a
- backslash.</p>
-<pre>
- &lt;!--#set var="cost" value="\$100" --&gt;
-</pre>
-
- <p>Finally, if you want to put a variable in the midst of a
- longer string, and there's a chance that the name of the
- variable will run up against some other characters, and thus be
- confused with those characters, you can place the name of the
- variable in braces, to remove this confusion. (It's hard to
- come up with a really good example of this, but hopefully
- you'll get the point.)</p>
-<pre>
- &lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
-</pre>
- <hr />
-
- <h2><a id="conditionalexpressions"
- name="conditionalexpressions">Conditional expressions</a></h2>
-
- <p>Now that we have variables, and are able to set and compare
- their values, we can use them to express conditionals. This
- lets SSI be a tiny programming language of sorts.
- <code>mod_include</code> provides an <code>if</code>,
- <code>elif</code>, <code>else</code>, <code>endif</code>
- structure for building conditional statements. This allows you
- to effectively generate multiple logical pages out of one
- actual page.</p>
-
- <p>The structure of this conditional construct is:</p>
-<pre>
- &lt;!--#if expr="test_condition" --&gt;
- &lt;!--#elif expr="test_condition" --&gt;
- &lt;!--#else --&gt;
- &lt;!--#endif --&gt;
-</pre>
-
- <p>A <em>test_condition</em> can be any sort of logical
- comparison - either comparing values to one another, or testing
- the ``truth'' of a particular value. (A given string is true if
- it is nonempty.) For a full list of the comparison operators
- available to you, see the <code>mod_include</code>
- documentation. Here are some examples of how one might use this
- construct.</p>
-
- <p>In your configuration file, you could put the following
- line:</p>
-<pre>
- BrowserMatchNoCase macintosh Mac
- BrowserMatchNoCase MSIE InternetExplorer
-</pre>
-
- <p>This will set environment variables ``Mac'' and
- ``InternetExplorer'' to true, if the client is running Internet
- Explorer on a Macintosh.</p>
-
- <p>Then, in your SSI-enabled document, you might do the
- following:</p>
-<pre>
- &lt;!--#if expr="${Mac} &amp;&amp; ${InternetExplorer}" --&gt;
- Apologetic text goes here
- &lt;!--#else --&gt;
- Cool JavaScript code goes here
- &lt;!--#endif --&gt;
-</pre>
-
- <p>Not that I have anything against IE on Macs - I just
- struggled for a few hours last week trying to get some
- JavaScript working on IE on a Mac, when it was working
- everywhere else. The above was the interim workaround.</p>
-
- <p>Any other variable (either ones that you define, or normal
- environment variables) can be used in conditional statements.
- With Apache's ability to set environment variables with the
- <code>SetEnvIf</code> directives, and other related directives,
- this functionality can let you do some pretty involved dynamic
- stuff without ever resorting to CGI.</p>
- <hr />
-
- <h2><a id="conclusion" name="conclusion">Conclusion</a></h2>
-
- <p>SSI is certainly not a replacement for CGI, or other
- technologies used for generating dynamic web pages. But it is a
- great way to add small amounts of dynamic content to pages,
- without doing a lot of extra work.</p>
- <!--#include virtual="footer.html" -->
- </body>
-</html>
-
diff --git a/docs/manual/howto/ssi.html.ja.jis b/docs/manual/howto/ssi.html.ja.jis
deleted file mode 100644
index eafa3150b7..0000000000
--- a/docs/manual/howto/ssi.html.ja.jis
+++ /dev/null
@@ -1,501 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<title>Apache $B%A%e!<%H%j%"%k(B: Server Side Includes $BF~Lg(B</title>
-<!-- link rev="made" href="mailto:rbowen@rcbowen.com" -->
-</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">
-<!--#include virtual="header.html" -->
-<h1 align="CENTER">Apache $B%A%e!<%H%j%"%k(B: Server Side Includes $BF~Lg(B</h1>
-
-<a name="__index__"></a> <!-- INDEX BEGIN -->
-
-
-<ul>
-<li><a href="#apachetutorial:introductiontoserversideincludes">Apache
- $B%A%e!<%H%j%"%k(B: Server Side Includes $BF~Lg(B</a></li>
-
-<li><a href="#whataressi">SSI $B$H$O(B?</a></li>
-
-<li><a href="#configuringyourservertopermitssi">SSI $B$r5v2D$9$k$?$a$N(B
-$B%5!<%P$N@_Dj(B</a></li>
-
-<li><a href="#basicssidirectives">$B4pK\E*$J(B SSI $B%G%#%l%/%F%#%V(B</a>
-
-<ul>
- <li><a href="#today'sdate">$B:#F|$NF|IU(B</a></li>
-
- <li><a href="#modificationdateofthefile">$B%U%!%$%k$NJQ99F|(B</a></li>
-
- <li><a href="#includingtheresultsofacgiprogram">CGI $B%W%m%0%i%`$N7k2L$r(B
-$B<h$j9~$`(B</a></li>
-</ul>
-</li>
-
-<li><a href="#additionalexamples">$BDI2C$NNc(B</a>
-
-<ul>
-<li><a href="#whenwasthisdocumentmodified">$B$$$D$3$N%I%-%e%a%s%H$O(B
-$B=$@5$5$l$?$N$+(B?</a></li>
-
-<li><a href="#includingastandardfooter">$BI8=`$N%U%C%?$rA^F~$9$k(B</a></li>
-
-<li><a href="#whatelsecaniconfig">$BB>$K2?$,@_Dj$G$-$k$N$+(B?</a></li>
-
-<li><a href="#executingcommands">$B%3%^%s%I$N<B9T(B</a></li>
-</ul>
-</li>
-
-<li><a href="#advancedssitechniques">$B9bEY$J(B SSI $B%F%/%K%C%/(B</a>
-
-<ul>
-<li><a href="#settingvariables">$BJQ?t$r@_Dj$9$k(B</a></li>
-
-<li><a href="#conditionalexpressions">$B>r7o<0(B</a></li>
-</ul>
-</li>
-
-<li><a href="#conclusion">$B=*$o$j$K(B</a></li>
-</ul>
-
-<!-- INDEX END -->
-<hr>
-<h2><a name=
-"apachetutorial:introductiontoserversideincludes">Apache
-$B%A%e!<%H%j%"%k(B: Server Side Includes $BF~Lg(B</a></h2>
-
-<table border="1">
-<tr>
-<td valign="top"><strong>$B4XO"%b%8%e!<%k(B</strong><br>
-<br>
- <a href="../mod/mod_include.html">mod_include</a><br>
-<a href="../mod/mod_cgi.html">mod_cgi</a><br>
-<a href="../mod/mod_expires.html">mod_expires</a><br>
- </td>
-<td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br>
-<br>
- <a href="../mod/core.html#options">Options</a><br>
-<a href="../mod/mod_include.html#xbithack">XBitHack</a><br>
-<a href="../mod/mod_mime.html#addtype">AddType</a><br>
-<a href="../mod/mod_mime.html#addhandler">AddHandler</a><br>
-<a href=
-"../mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br>
-
- </td>
-</tr>
-</table>
-
-<p>$B$3$NJ8=q$O:G=i!"(BApache Today (http://www.apachetoday.com/) $B$K;02s$NO":\5-;v$H$7$F7G:\$5$l$^$7$?!#(B
-$B$3$3$G$O!"(BApcheToday $B$H(B Internet.com $B$H$N6(Dj$K$h$j:\$;$F$$$^$9!#(B</p>
-
-<p>$B$3$N5-;v$O!"DL>o$OC1$K(B SSI $B$H8F$P$l$k(B Server Side Includes $B$r(B
-$B07$$$^$9!#$3$N5-;v$K$*$$$F$O!"%5!<%P$G$N(B SSI $B$r5v2D$9$k$?$a$N@_Dj$H!"(B
-$B8=:_$N(B HTML $B%Z!<%8$KF0E*$J%3%s%F%s%D$r2C$($k$?$a$N$$$/$D$+$N4pK\E*$J(B
-SSI $B5;=Q$r>R2p$7$^$9!#(B</p>
-
-<p>$B5-;v$N8eH>$G$O!"(BSSI $B%G%#%l%/%F%#%V$G(B
-SSI $B$H6&$K<B9T$9$k$3$H$,$G$-$k>r7oJ8$N$h$&$J4vJ,9bEY$J;vJA$K(B
-$B$D$$$F=R$Y$F$$$^$9!#(B</p>
-
-<hr>
-<h2><a name="whataressi">SSI $B$H$O(B?</a></h2>
-
-<p>SSI (Server Side Includes) $B$O!"(BHTML $B%Z!<%8Cf$KG[CV$5$l$k%G%#%l%/%F%#%V$G$"$j!"(B
-$B%5!<%P$G%Z!<%8$rDs6!$9$k;~$KI>2A$5$l$^$9!#(B
-SSI $B$O!"(BCGI $B%W%m%0%i%`$d$=$NB>$NF0E*$J5;=Q$GA4$F$N%Z!<%8$rDs6!(B
-$B$;$:$K!"F0E*$K@8@.$5$l$?%3%s%F%s%D$r8=:_$N(B HTML $B%Z!<%8$K(B
-$B2C$($^$9!#(B</p>
-
-<p>$B$I$&$$$&>l9g$K(B SSI $B$r;H$$!"$I$&$$$&>l9g$K%W%m%0%i%`$G%Z!<%8$r40A4$K@8@.$9$k$+(B
-$B$O!"%Z!<%8$N$&$A$I$NDxEY$,@EE*$G$"$j!"%Z!<%8$,Ds6!$5$l$k$?$S$K(B
-$B:F7W;;$9$kI,MW$,$I$NDxEY$"$k$+$GDL>o$O7hDj$7$^$9!#(BSSI $B$O8=:_;~9o$N$h$&$J(B
-$B>.$5$$>pJs$r2C$($k$K$O$&$C$F$D$1$NJ}K!$G$9!#(B
-$B$7$+$7!"$=$N%Z!<%8$N$[$H$s$I$NItJ,$,Ds6!;~$K@8@.$5$l$k>l9g$O!"(B
-$BB>$NJ}K!$rC5$9I,MW$,$"$j$^$9!#(B</p>
-
-<hr>
-<h2><a name="configuringyourservertopermitssi">SSI $B$r5v2D$9$k$?$a$N(B
-$B%5!<%P$N@_Dj(B</a></h2>
-
-<p>$B%5!<%P$G(B SSI $B5v2D$9$k$K$O!"(B<code>httpd.conf</code> $B%U%!%$%k(B
-$B$^$?$O(B <code>.htaccess</code> $B%U%!%$%k$K<!$N%G%#%l%/%F%#%V$r;XDj$9$kI,MW$,$"$j$^$9(B:</p>
-
-<pre>
- Options +Includes
-</pre>
-
-<p>$B$3$N;XDj$O!"%U%!%$%k$r(B SSI $B%G%#%l%/%F%#%V$G2r@O$5$;$k$3$H$r5v2D$9$k(B
-$B$H$$$&$3$H$r(B Apache $B$KEA$($^$9!#(B</p>
-
-<p>$BA4$F$N%U%!%$%k$,(B SSI $B%G%#%l%/%F%#%V$G2r@O$5$l$k$H$$$&$o$1$G$O$"$j$^$;$s!#(B
-$B$I$N%U%!%$%k$,2r@O$5$l$k$+$r(B Apache $B$KEA$($kI,MW$,$"$j$^$9!#$3$l$r(B
-$B9T$J$&$K$OFs$DJ}K!$,$"$j$^$9!#<!$N%G%#%l%/%F%#%V$r;H$&$3$H$G!"(B
-$BNc$($P(B <code>.shtml</code> $B$N$h$&$JFCJL$J%U%!%$%k3HD%;R$r;}$D%U%!%$%k$r(B
-$B2r@O$9$k$h$&(B Apache $B$KEA$($k$3$H$,$G$-$^$9(B:</p>
-
-<pre>
- AddType text/html .shtml
- AddHandler server-parsed .shtml
-</pre>
-
-<p>$B$3$NJ}K!$N7gE@$O!"$b$78=:_$N%Z!<%8$K(B SSI
-$B%G%#%l%/%F%#%V$r2C$($?$$>l9g!"$=$l$i$N%G%#%l%/%F%#%V$,<B9T$5$l$k(B
-$B$h$&$K(B <code>.shtml</code> $B3HD%;R$K$9$k$?$a!"$=$N%Z!<%8$NL>A0$H!"(B
-$B$=$N%Z!<%8$X$NA4$F$N%j%s%/$rJQ99$7$J$1$l$P$J$i$J$$$3$H$G$9!#(B</p>
-
-<p>$B$b$&0l$D$NJ}K!$O!"(B<code>XBitHack</code> $B%G%#%l%/%F%#%V$r;HMQ$9$k$3$H$G$9(B:</p>
-
-<pre>
- XBitHack on
-</pre>
-
-<p><code>XBitHack</code> $B$O!"%U%!%$%k$N<B9T%S%C%H$,N)$C$F$$$k>l9g!"(B
-SSI $B%G%#%l%/%F%#%V$K$h$j2r@O$9$k$3$H$r(B Apache $B$KEA$($^$9!#=>$C$F!"(B
-SSI $B%G%#%l%/%F%#%V$r8=:_$N%Z!<%8$K2C$($k$?$a$K$O!"%U%!%$%kL>$rJQ99$7$J$/$F$b$h$/!"(B
-$BC1$K(B <code>chmod</code> $B$r;HMQ$7$F%U%!%$%k$r<B9T2DG=$K$9$k(B
-$B$@$1$G:Q$_$^$9!#(B</p>
-
-<pre>
- chmod +x pagename.html
-</pre>
-
-<p>$B9T$J$&$Y$-$G$O$J$$$3$H$K4X$9$kC;$$%3%a%s%H!#;~!9C/$+$,!"(B
-$BA4$F$N(B <code>.html</code> $B%U%!%$%k$r(B SSI $B$G2r@O$9$k$h$&(B Apache $B$KEA$($l$P!"(B
-$B$o$6$o$6(B <code>.shtml</code> $B$H$$$&%U%!%$%kL>$K$9$kI,MW$,$J$$$H$$$C$F(B
-$BA&$a$k$N$r8+$k$3$H$G$7$g$&!#$3$&$$$&?M$?$A$O!"$*$=$i$/(B <code>XBitHack</code>
-$B$K$D$$$FJ9$$$?$3$H$,$J$$$N$G$7$g$&!#$3$NJ}K!$K$D$$$FCm0U$9$k$3$H$O!"(B
-$B$?$H$((B SSI $B%G%#%l%/%F%#%V$rA4$/4^$^$J$$>l9g$G$b!"(BApache $B$,%/%i%$%"%s%H$K(B
-$BAw$kA4$F$N%U%!%$%k$r:G8e$^$GFI$_9~$^$;$k$3$H$K$J$j$^$9!#(B
-$B$3$NJ}K!$O$+$J$j=hM}$rCY$/$9$k$b$N$G$"$j!"NI$/$J$$%"%$%G%"$G$9!#(B</p>
-
-<p>$B$b$A$m$s!"(BWindows $B$G$O$=$N$h$&$J<B9T%S%C%H$r%;%C%H$9$k$h$&$J$b$N$O(B
-$B$"$j$^$;$s$N$G%*%W%7%g%s$,>/$7@)8B$5$l$F$$$^$9!#(B</p>
-
-<p>$B%G%U%)%k%H$N@_Dj$G$O!"(BApache $B$O(B SSI $B%Z!<%8$K$D$$$F:G=*JQ99;~9o$d(B
-$B%3%s%F%s%D$ND9$5$r(B HTTP $B%X%C%@$KAw$j$^$;$s!#(B
-$BF0E*$J%3%s%F%s%D$G$"$k$?$a!"$=$l$i$NCM$r7W;;$9$k$N$,Fq$7$$$+$i$G$9!#(B
-$B$3$N$?$a%I%-%e%a%s%H$,(B
-$B%-%c%C%7%e$5$l$J$/$J$j!"7k2L$H$7$F%/%i%$%"%s%H$N@-G=$,(B
-$BCY$/$J$C$?$h$&$K46$8$5$;$k$3$H$K$J$j$^$9!#(B
-$B$3$l$r2r7h$9$kJ}K!$,Fs$D$"$j$^$9(B:</p>
-
-<ol>
-
-<li><code>XBitHack Full</code> $B@_Dj$r;HMQ$9$k!#$3$N@_Dj$K$h$j!"$b$H$b$HMW5a$5$l$?(B
-$B%U%!%$%k$N;~9o$r;2>H$7!"FI$_9~$^$l$k%U%!%$%k$NJQ99;~9o$r(B
-$BL5;k$7$F:G=*JQ99;~9o$r7hDj$9$k$h$&(B Apache $B$KEA$($^$9!#(B</li>
-
-<li><a href="../mod/mod_expires.html">mod_expires</a> $B$GDs6!$5$l$F$$$k%G%#%l%/%F%#%V$r;HMQ$7$F!"(B
-$B%U%!%$%k$,L58z$K$J$k;~9o$rL@<($7$^$9!#(B
-$B$3$l$K$h$j!"%V%i%&%6$H%W%m%-%7$K%-%c%C%7%e$,M-8z$G$"$k$3$H$rDLCN$7$^$9!#(B</li>
-
-</ol>
-
-<hr>
-<h2><a name="basicssidirectives">$B4pK\E*$J(B SSI $B%G%#%l%/%F%#%V(B</a></h2>
-
-<p>SSI $B%G%#%l%/%F%#%V$O0J2<$NJ8K!$G5-=R$7$^$9(B:</p>
-
-<pre>
- &lt;!--#element attribute=value attribute=value ... --&gt;
-</pre>
-
-<p>HTML $B$N%3%a%s%H$N$h$&$J=q<0$r$7$F$$$k$N$G!"$b$7(B SSI $B$r(B
-$B@5$7$/F0:n2DG=$K$7$J$1$l$P!"%V%i%&%6$O$=$l$rL5;k$9$k$G$7$g$&!#$7$+$7!"(B
-HTML $B%=!<%9Cf$G$O8+$($^$9!#$b$7(B SSI $B$r@5$7$/@_Dj$7$?$J$i!"(B
-$B%G%#%l%/%F%#%V$O$=$N7k2L$HCV$-49$($i$l$^$9!#(B</p>
-
-<p>element $B$O$?$/$5$s$"$k$b$N$+$i0l$D;XDj$9$k$3$H$,$G$-$^$9!#(B
-$B;XDj$G$-$k$b$N$NBgB??t$K$D$$$F$O!"<!2s$b$&>/$7>\$7$/@bL@$7$^$9!#(B
-$B$3$3$G$O!"(BSSI $B$G9T$J$&$3$H$,$G$-$kNc$r$$$/$D$+<($7$^$9!#(B</p>
-
-<h3><a name="today'sdate">$B:#F|$NF|IU(B</a></h3>
-
-<pre>
- &lt;!--#echo var="DATE_LOCAL" --&gt;
-</pre>
-
-<p><code>echo</code> $BMWAG$OC1$KJQ?t$NCM$r=PNO$7$^$9!#(BCGI $B%W%m%0%i%`$K(B
-$BMxMQ2DG=$J4D6-JQ?t$NA4$F$N%;%C%H$r4^$`B?$/$NI8=`JQ?t$,$"$j$^$9!#(B
-$B$^$?!"(B<code>set</code> $BMWAG$rMQ$$$k$3$H$G!"FH<+$NJQ?t$rDj5A$9$k$3$H$,(B
-$B$G$-$^$9!#(B</p>
-
-<p>$B=PNO$5$l$kF|IU$N=q<0$,9%$-$G$O$J$$>l9g!"$=$N=q<0$r(B
-$B=$@5$9$k$?$a$K!"(B<code>config</code> $BMWAG$K(B <code>timefmt</code> $BB0@-$r(B
-$B;HMQ$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<pre>
- &lt;!--#config timefmt="%A %B %d, %Y" --&gt;
- Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
-</pre>
-
-<h3><a name="modificationdateofthefile">$B%U%!%$%k$NJQ99F|(B</a></h3>
-
-<pre>
- This document last modified &lt;!--#flastmod file="index.html" --&gt;
-</pre>
-
-<p>$B$3$NMWAG$b(B <code>timefmt</code> $B%U%)!<%^%C%H$N@_Dj$K=>$$$^$9!#(B</p>
-
-<h3><a name="includingtheresultsofacgiprogram">CGI $B%W%m%0%i%`$N7k2L$r<h$j9~$`(B
-</a></h3>
-
-<p>$B$3$l$O!"A4$F$N?M$N$*5$$KF~$j$G$"$k(B ``$B%R%C%H%+%&%s%?(B'' $B$N$h$&$J(B CGI $B%W%m%0%i%`$N(B
-$B7k2L$r=PNO$9$k(B SSI $B$N$h$j0lHLE*$J;HMQ$N$&$A$N0l$D$G$9!#(B</p>
-
-<pre>
- &lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
-</pre>
-
-<hr>
-<h2><a name="additionalexamples">$BDI2C$NNc(B</a></h2>
-
-<p>$B0J2<$O!"(BSSI $B$r;HMQ$7$F(B HTML $B%I%-%e%a%s%H$K$*$$$F$G$-$k$3$H$N(B
-$B$$$/$D$+$NFCJL$JNc$G$9!#(B</p>
-
-<hr>
-<h2><a name="whenwasthisdocumentmodified">$B$$$D$3$N%I%-%e%a%s%H$O=$@5$5$l$?$N$+(B?
-</a></h2>
-
-<p>$B@h$K!"%I%-%e%a%s%H$,:G8e$KJQ99$5$l$?$N$O$$$D$+$r%f!<%6$KDLCN$9$k$?$a$K(B SSI $B$r;HMQ$9$k$3$H$,$G$-$k$3$H$r(B
-$B=R$Y$^$7$?!#$7$+$7$J$,$i!"<B:]$NJ}K!$O!"$$$/$V$sLdBj$N$^$^$K$7$F$*$-$^$7$?!#(B
-HTML $B%I%-%e%a%s%H$KG[CV$5$l$?<!$N%3!<%I$O!"%Z!<%8$K(B
-$B$=$N$h$&$J%?%$%`%9%?%s%W$rF~$l$k$G$7$g$&!#$b$A$m$s!">e=R$N(B
-$B$h$&$K!"(BSSI $B$r@5$7$/F0:n2DG=$K$7$F$*$/I,MW$,$"$j$^$9!#(B</p>
-
-<pre>
- &lt;!--#config timefmt="%A %B %d, %Y" --&gt;
- This file last modified &lt;!--#flastmod file="ssi.shtml" --&gt;
-</pre>
-
-<p>$B$b$A$m$s!"(B<code>ssi.shtml</code> $B$NItJ,$r<B:]$NEv3:%U%!%$%kL>$H(B
-$BCV$-49$($kI,MW$,$"$j$^$9!#$b$7!"$"$i$f$k%U%!%$%k$KD%$k$3$H$,(B
-$B$G$-$k0lHLE*$J%3!<%I$rC5$7$F$$$k$J$i!"$3$l$OITJX$G$"$k$+$b$7$l$^$;$s!#(B
-$B$*$=$i$/$=$N>l9g$O!"$=$&$9$kBe$o$j$KJQ?t(B <code>LAST_MODIFIED</code>
-$B$r;HMQ$7$?$$$H9M$($k$G$7$g$&(B:</p>
-
-<pre>
- &lt;!--#config timefmt="%D" --&gt;
- This file last modified &lt;!--#echo var="LAST_MODIFIED" --&gt;
-</pre>
-
-<p><code>timefmt</code> $B=q<0$K$D$$$F$N$h$j>\:Y$K$D$$$F$O!"(B
-$B$*9%$_$N8!:w%5%$%H$K9T$-!"(B<code>ctime</code> $B$G8!:w$7$F$_$F$/$@$5$$!#J8K!$OF1$8$G$9!#(B</p>
-
-<hr>
-<h2><a name="includingastandardfooter">$BI8=`$N%U%C%?$rA^F~$9$k(B</a></h2>
-
-<p>$B$b$7?t%Z!<%8$rD6$($k%Z!<%8$r;}$D%5%$%H$r4IM}$7$F$$$k$J$i$P!"(B
-$BA4%Z!<%8$KBP$7$FJQ9`$r9T$J$&$3$H$,K\Ev$K6lDK$H$J$jF@$k$3$H$,J,$+$k$G$7$g$&!#(B
-$BA4$F$N%Z!<%8$KEO$C$F$"$k<o$NI8=`E*$J304Q$r0];}$7$h$&$H(B
-$B$7$F$$$k$J$i$PFC$K$=$&$G$7$g$&!#(B</p>
-
-<p>$B%X%C%@$d%U%C%?MQ$NA^F~MQ%U%!%$%k$r;HMQ$9$k$3$H$G!"$3$N$h$&$J(B
-$B99?7$K$+$+$kIiC4$r8:$i$9$3$H$,$G$-$^$9!#0l$D$N%U%C%?%U%!%$%k$r(B
-$B:n@.$7!"$=$l$r(B <code>include</code> SSI $B%3%^%s%I$G3F%Z!<%8$K(B
-$BF~$l$k$@$1$G:Q$_$^$9!#(B<code>include</code> $BMWAG$O!"(B<code>file</code> $BB0@-(B
-$B$^$?$O(B <code>virtual</code> $BB0@-$N$$$:$l$+$r;HMQ$7$F$I$N%U%!%$%k$rA^F~$9$k$+$r(B
-$B7h$a$k$3$H$,$G$-$^$9!#(B<code>file</code> $BB0@-$O!"(B<em>$B%+%l%s%H%G%#%l%/%H%j$+$i$N(B
-$BAjBP%Q%9$G<($5$l$?(B</em>$B%U%!%$%k%Q%9$G$9!#$=$l$O(B
-/ $B$G;O$^$k@dBP%U%!%$%k%Q%9$K$O$G$-$:!"$^$?!"$=$N%Q%9$N0lIt$K(B ../ $B$r(B
-$B4^$`$3$H$,$G$-$J$$$3$H$r0UL#$7$^$9!#(B<code>virtual</code> $BB0@-$O!"$*$=$i$/(B
-$B$h$jJXMx$@$H;W$$$^$9$,!"Ds6!$9$k%I%-%e%a%s%H$+$i$NAjBP(B URL $B$G;XDj$9$Y$-$G$9!#(B
-$B$=$l$O(B / $B$G;O$a$k$3$H$,$G$-$^$9$,!"Ds6!$9$k%U%!%$%k$HF1$8%5!<%P>e$K(B
-$BB8:_$7$J$/$F$O$J$j$^$;$s!#(B</p>
-
-<pre>
- &lt;!--#include virtual="/footer.html" --&gt;
-</pre>
-
-<p>$B;d$O:G8e$NFs$D$rAH$_9g$o$;$F!"(B<code>LAST_MODIFIED</code> $B%G%#%l%/%F%#%V$r(B
-$B%U%C%?%U%!%$%k$NCf$KCV$/$3$H$,$h$/$"$j$^$9!#(B
-SSI $B%G%#%l%/%F%#%V$O!"A^F~MQ$N%U%!%$%k$K4^$^$;$?$j!"(B
-$BA^F~%U%!%$%k$N%M%9%H$r$7$?$j$9$k$3$H$,$G$-$^$9!#$9$J$o$A!"(B
-$BA^F~MQ$N%U%!%$%k$OB>$N%U%!%$%k$r:F5"E*$KA^F~$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<hr>
-<h2><a name="whatelsecaniconfig">$BB>$K2?$,@_Dj$G$-$k$N$+(B?</a></h2>
-
-<p>$B;~9o=q<0$r(B <code>config</code> $B$G@_Dj$G$-$k$3$H$K2C$($F!"(B
-$B99$KFs$D(B <code>config</code> $B$G@_Dj$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<p>$BDL>o!"(BSSI $B%G%#%l%/%F%#%V$G2?$+$,$&$^$/$$$+$J$$$H$-$O!"<!$N%a%C%;!<%8$,(B
-$B=PNO$5$l$^$9!#(B</p>
-
-<pre>
- [an error occurred while processing this directive]
-</pre>
-
-<p>$B$3$N%a%C%;!<%8$rB>$N$b$N$K$7$?$$>l9g!"(B
-<code>config</code> $BMWAG$N(B <code>errmsg</code> $BB0@-$GJQ99$9$k$3$H$,(B
-$B$G$-$^$9(B:<p>
-
-<pre>
- &lt;!--#config errmsg="[It appears that you don't know how to use SSI]" --&gt;
-</pre>
-
-<p>$B$*$=$i$/!"%(%s%I%f!<%6$O$3$N%a%C%;!<%8$r7h$7$F8+$k$3$H$O$"$j$^$;$s!#(B
-$B$J$<$J$i!"$=$N%5%$%H$,@8$-$?>uBV$K$J$kA0$K(B SSI $B%G%#%l%/%F%#%V$K4X$9$k(B
-$BA4$F$NLdBj$r2r7h$7$F$$$k$O$:$@$+$i$G$9!#(B($B$=$&$G$9$h$M(B?)</p>
-
-<p>$B$=$7$F!"(B<code>config</code> $B$K$*$$$F(B <code>sizefmt</code> $BB0@-$r;HMQ$9$k$3$H$G!"(B
-$BJV$5$l$k%U%!%$%k%5%$%:$N=q<0$r@_Dj$9$k$3$H$,$G$-$^$9!#(B
-$B%P%$%H?t$K$O(B <code>bytes</code> $B$r!"E,Ev$K(B Kb $B$d(B Mb $B$K(B
-$BC;=L$5$;$k$K$O(B <code>abbrev</code> $B$r;XDj$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<hr>
-<h2><a name="executingcommands">$B%3%^%s%I$N<B9T(B</a></h2>
-
-<p>$B:#8e?t%v7n$NFb$K!">.$5$J(B CGI $B%W%m%0%i%`$H(B SSI $B$r;HMQ$9$k(B
-$B5-;v$r=P$7$?$$$H9M$($F$$$^$9!#$3$3$G$O$=$l$H$OJL$K!"(B
-<code>exec</code> $BMWAG$K$h$C$F9T$J$&$3$H$,$G$-$k$3$H$r<($7$^$9!#(B
-SSI $B$K%7%'%k(B ($B@53N$K$O(B <code>/bin/sh</code>$B!#(BWin32 $B$J$i$P(B DOS $B%7%'%k(B)
-$B$r;HMQ$7$F%3%^%s%I$r<B9T$5$;$k$3$H$,$G$-$^$9!#2<5-$NNc$G$O!"%G%#%l%/%H%j(B
-$B%j%9%H=PNO$r9T$J$$$^$9!#(B</p>
-
-<pre>
- &lt;pre&gt;
- &lt;!--#exec cmd="ls" --&gt;
- &lt;/pre&gt;
-</pre>
-
-<p>Windows $B>e$G$O!"(B</p>
-
-<pre>
- &lt;pre&gt;
- &lt;!--#exec cmd="dir" --&gt;
- &lt;/pre&gt;
-</pre>
-
-<p>Windows $B>e$G$O!"$3$N%G%#%l%/%F%#%V$K$h$C$F$$$/$D$+$N4qL/$J(B
-$B=q<0$K5$$E$/$G$7$g$&!#$J$<$J$i(B <code>dir</code> $B$N=PNO$,(B
-$BJ8;zNs(B ``&lt;<code>dir</code>&gt;'' $B$r4^$_!"%V%i%&%6$r:.Mp$5$;$k$+$i$G$9!#(B</P>
-
-<p>$B$3$N5!G=$OHs>o$K4m81$G$"$j!"$I$s$J%3!<%I$G$b(B <code>exec</code> $B%?%0$K(B
-$BKd$a9~$^$l$F$7$^$($P<B9T$9$k$3$H$KCm0U$7$F$/$@$5$$!#Nc$($P(B
-`` $B%2%9%H%V%C%/(B '' $B$N$h$&$K!"$b$7!"%f!<%6$,%Z!<%8$NFbMF$r(B
-$BJT=8$G$-$k>u67$K$"$k$J$i$P!"$3$N5!G=$r3N<B$KM^@)$7$F$/$@$5$$!#(B
-<code>Options</code> $B%G%#%l%/%F%#%V$N(B <code>IncludesNOEXEC</code> $B0z?t$r;XDj$9$k$3$H$G!"(B
-SSI $B$O5v2D$9$k$1$l$I(B <code>exec</code> $B5!G=$O5v2D$7$J$$$h$&$K$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<hr>
-<h2><a name="advancedssitechniques">$B9bEY$J(B SSI $B%F%/%K%C%/(B</a></h2>
-
-<p>$B%3%s%F%s%D$r=PNO$9$k$3$H$K2C$(!"(BApache SSI $B$OJQ?t$r@_Dj$7!"$=$7$FHf3S(B
-$B$H>r7oJ,4t$K$=$NJQ?t$r;HMQ$G$-$k5!G=$rDs6!$7$F$$$^$9!#(B</p>
-
-<h3><a name="caveat">$B7Y9p(B</a></h3>
-
-<p>$B$3$N5-;v$G=R$Y$?BgItJ,$N5!G=$O!"(BApache 1.2 $B0J9_$r(B
-$B;HMQ$7$F$$$k>l9g$N$_MxMQ2DG=$G$9!#$b$A$m$s!"$b$7(B Apache 1.2 $B0J9_$r(B
-$B;HMQ$7$F$J$$>l9g!"D>$A$K%"%C%W%0%l!<%I$9$kI,MW$,$"$j$^$9!#(B
-$B$5$!!":#$=$l$r9T$J$$$J$5$$!#$=$l$^$GBT$C$F$$$^$9!#(B</p>
-
-<hr>
-<h2><a name="settingvariables">$BJQ?t$r@_Dj$9$k(B</a></h2>
-
-<p><code>set</code> $B%G%#%l%/%F%#%V$r;HMQ$7$F!"8e$G;HMQ$9$k$?$a$KJQ?t$r(B
-$B@_Dj$9$k$3$H$,$G$-$^$9!#$3$l$O8e$N@bL@$GI,MW$K$J$k$N$G!"$3$3$G(B
-$B$=$l$K$D$$$F=R$Y$F$$$^$9!#J8K!$O0J2<$N$H$*$j$G$9(B:</p>
-
-<pre>
- &lt;!--#set var="name" value="Rich" --&gt;
-</pre>
-
-<p>$B$3$N$h$&$KC1=c$KJ8;z$I$*$j$K@_Dj$9$k$3$H$K2C$(!"(B
-$BNc$($P4D6-JQ?t$dA0$N5-;v$G=R$Y$?JQ?t(B ($BNc$($P(B <code
->LAST_MODIFIED</code> $B$N$h$&$J(B) $B$r4^$`B>$N$"$i$f$kJQ?t$r(B
-$BCM$r@_Dj$9$k$N$K;HMQ$9$k$3$H$,(B
-$B$G$-$^$9!#JQ?tL>$NA0$K%I%k5-9f(B ($) $B$r;HMQ$9$k$3$H$G!"(B
-$B$=$l$,%j%F%i%kJ8;zNs$G$O$J$/$FJQ?t$G$"$k$3$H$r<($7$^$9!#(B</p>
-
-<pre>
- &lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
-</pre>
-
-<p>$B%I%k5-9f(B ($) $B$rJ8;z$H$7$FJQ?t$NCM$KF~$l$k$K$O!"%P%C%/%9%i%C%7%e$K$h$C$F(B
-$B%I%k5-9f$r%(%9%1!<%W$9$kI,MW$,$"$j$^$9!#(B</p>
-
-<pre>
- &lt;!--#set var="cost" value="\$100" --&gt;
-</pre>
-
-<p>$B:G8e$K$J$j$^$9$,!"D9$$J8;zNs$NCf$KJQ?t$rCV$-$?$$>l9g$G!"(B
-$BJQ?tL>$,B>$NJ8;z$H$V$D$+$k2DG=@-$,$"$j!"$=$l$i$NJ8;z$K$D$$$F(B
-$B:.Mp$7$F$7$^$&>l9g!"$3$N:.Mp$r<h$j=|$/$?$a!"JQ?tL>$rCf3g8L$G(B
-$B0O$`$3$H$,$G$-$^$9(B ($B$3$l$K$D$$$F$NNI$$Nc$r<($9$N$OFq$7$$$N$G$9$,!"(B
-$B$*$=$i$/J,$+$C$F$$$?$@$1$k$G$7$g$&(B)$B!#(B</P>
-
-<pre>
- &lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
-</pre>
-
-<hr>
-<h2><a name="conditionalexpressions">$B>r7o<0(B</a></h2>
-
-<p>$B$5$F!"JQ?t$r;}$C$F$$$F!"$=$l$i$NCM$r@_Dj$7$FHf3S$9$k$3$H$,$G$-$k$N$G$9$+$i!"(B
-$B>r7o$rI=$9$?$a$K$=$l$i$r;HMQ$9$k$3$H$,$G$-$^$9!#$3$l$K$h$j(B SSI $B$O(B
-$B$"$k<o$N>.$5$J%W%m%0%i%_%s%08@8l$K$J$C$F$$$^$9!#(B<code>mod_include</code> $B$O(B
-$B>r7o$rI=8=$9$k$?$a$K(B <code>if</code>, <code>elif</code>, <code>else</code>,
-<code>endif</code> $B9=B$$rDs6!$7$F$$$^$9!#$3$l$K$h$C$F!"0l$D$N<B:]$N%Z!<%8$+$i(B
-$BJ#?t$NO@M}%Z!<%8$r8z2LE*$K@8@.$9$k$3$H$,$G$-$^$9!#(B</p>
-
-<p>$B>r7o9=B$$O0J2<$N$H$*$j$G$9(B:</p>
-
-<pre>
- &lt;!--#if expr="test_condition" --&gt;
- &lt;!--#elif expr="test_condition" --&gt;
- &lt;!--#else --&gt;
- &lt;!--#endif --&gt;
-</pre>
-
-<p><em>test_condition</em> $B$O$"$i$f$k<oN`$NO@M}E*Hf3S$r$9$k$3$H$,$G$-$^$9!#(B
-$BCM$rHf3S$7$?$j!"$=$NCM$,(B ``$B??(B'' $B$+$I$&$+$rI>2A$7$^$9(B ($B6u$G$J$$$J$i(B
-$BM?$($i$l$?J8;zNs$O??$G$9(B)$B!#MxMQ2DG=$JHf3S1i;;;R$NA4$F$N%j%9%H$K$D$$$F$O!"(B
-<code>mod_include</code> $B%I%-%e%a%s%F!<%7%g%s$r;2>H$7$F$/$@$5$$!#(B
-$B$3$3$G$O!"$3$N9=B$$r$I$&;HMQ$9$k$+$NNc$r$$$/$D$+<($7$^$9!#(B</p>
-
-<p>$B@_Dj%U%!%$%k$G<!$N9T$r5-=R$7$^$9(B:</P>
-
-<pre>
- BrowserMatchNoCase macintosh Mac
- BrowserMatchNoCase MSIE InternetExplorer
-</pre>
-
-<p>$B$3$l$O%/%i%$%"%s%H$,(B Macintosh $B>e$G%$%s%?!<%M%C%H%(%/%9%W%m!<%i$,(B
-$BF0$$$F$$$k>l9g!"4D6-JQ?t(B ``Mac'' $B$H(B ``InternetExplorer'' $B$r??$H@_Dj$7$^$9!#(B</P>
-
-<p>$B<!$K!"(BSSI $B$,2DG=$K$J$C$?%I%-%e%a%s%H$G0J2<$r9T$J$$$^$9(B:</p>
-
-<pre>
- &lt;!--#if expr="${Mac} &amp;&amp; ${InternetExplorer}" --&gt;
- Apologetic text goes here
- &lt;!--#else --&gt;
- Cool JavaScript code goes here
- &lt;!--#endif --&gt;
-</pre>
-
-<p>Mac $B>e$N(B IE $B$KBP$7$F2?$+;W$&$H$3$m$,$"$k$o$1$G$"$j$^$;$s!#(B
-$BB>$G$O<B9T$G$-$F$$$k$$$/$D$+$N(B JavaScript $B$r(B Mac $B>e$N(B IE $B$G(B
-$B<B9T$5$;$k$N$K!"@h=5?t;~4V6lO+$7$?$H$$$&$@$1$N$3$H$G$9!#(B
-$B>e$NNc$O$=$N;CDjE*$JBP=hJ}K!$G$9!#(B</p>
-
-<p>$BB>$N$I$s$JJQ?t(B ($B$"$J$?$,Dj5A$9$k$b$N!"$^$?$OIaDL$N4D6-JQ?t$N$$$:$l$+(B) $B$b!"(B
-$B>r7oJ8$K;HMQ$9$k$3$H$,$G$-$^$9!#(BApache $B$O(B <code>SetEnvIf</code>
-$B%G%#%l%/%F%#%V$dB>$N4XO"%G%#%l%/%F%#%V;HMQ$7$F4D6-JQ?t$r@_Dj$9$k$3$H$,(B
-$B$G$-$^$9!#$3$N5!G=$K$h$j!"(BCGI $B$KMj$k$3$H$J$/$+$J$jJ#;($JF0E*$J$3$H$r$5$;$k(B
-$B$3$H$,$G$-$^$9!#(B</p>
-
-<hr>
-<h2><a name="conclusion">$B=*$o$j$K(B</a></h2>
-
-<p>SSI $B$O3N$+$K(B CGI $B$dF0E*$J%&%'%V%Z!<%8$r@8@.$9$kB>$N5;=Q$KBe$o$k$b$N(B
-$B$G$O$"$j$^$;$s!#$7$+$7!"(B
-$B$?$/$5$s$NM>J,$J:n6H$r$;$:$K!">/NL$NF0E*$J%3%s%F%s%D$r2C$($k$K$O(B
-$B$9$0$l$?J}K!$G$9!#(B</p>
-
-</body>
-</html>