208651a016b098f4fa1f6279559f104d70f1632dtakashi<?xml version="1.0" encoding="UTF-8" ?>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
a99c5d4cc3cab6a62b04d52000dbc22ce1fa2d94coar<!-- English Revision: 151408:1673945 (outdated) -->
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
acc36ab93565d2880447d535da6ca6e5feac7a70nd<!--
031b91a62d25106ae69d4693475c79618dd5e884fielding Licensed to the Apache Software Foundation (ASF) under one or more
031b91a62d25106ae69d4693475c79618dd5e884fielding contributor license agreements. See the NOTICE file distributed with
031b91a62d25106ae69d4693475c79618dd5e884fielding this work for additional information regarding copyright ownership.
031b91a62d25106ae69d4693475c79618dd5e884fielding The ASF licenses this file to You under the Apache License, Version 2.0
031b91a62d25106ae69d4693475c79618dd5e884fielding (the "License"); you may not use this file except in compliance with
031b91a62d25106ae69d4693475c79618dd5e884fielding the License. You may obtain a copy of the License at
acc36ab93565d2880447d535da6ca6e5feac7a70nd
acc36ab93565d2880447d535da6ca6e5feac7a70nd http://www.apache.org/licenses/LICENSE-2.0
acc36ab93565d2880447d535da6ca6e5feac7a70nd
acc36ab93565d2880447d535da6ca6e5feac7a70nd Unless required by applicable law or agreed to in writing, software
acc36ab93565d2880447d535da6ca6e5feac7a70nd distributed under the License is distributed on an "AS IS" BASIS,
acc36ab93565d2880447d535da6ca6e5feac7a70nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
acc36ab93565d2880447d535da6ca6e5feac7a70nd See the License for the specific language governing permissions and
acc36ab93565d2880447d535da6ca6e5feac7a70nd limitations under the License.
acc36ab93565d2880447d535da6ca6e5feac7a70nd-->
acc36ab93565d2880447d535da6ca6e5feac7a70nd
7db9f691a00ead175b03335457ca296a33ddf31bnd<manualpage metafile="urlmapping.xml.meta">
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <title>URL からファイルシステム上の位置へのマップ</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki <summary>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>この文書は Apache がリクエストの URL から送信するファイルの
208651a016b098f4fa1f6279559f104d70f1632dtakashi ファイルシステム上の位置を決定する方法を説明します。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki </summary>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="related"><title>関連するモジュールとディレクティブ</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<related>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<modulelist>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_alias</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_proxy</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_rewrite</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_userdir</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_speling</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<module>mod_vhost_alias</module>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</modulelist>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directivelist>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">Alias</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">AliasMatch</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_speling">CheckSpelling</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="core">DocumentRoot</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="core">ErrorDocument</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="core">Options</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_proxy">ProxyPass</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_proxy">ProxyPassReverse</directive>
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawai<directive module="mod_proxy">ProxyPassReverseCookieDomain</directive>
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawai<directive module="mod_proxy">ProxyPassReverseCookiePath</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">Redirect</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">RedirectMatch</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_rewrite">RewriteCond</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_rewrite">RewriteMatch</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">ScriptAlias</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_alias">ScriptAliasMatch</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<directive module="mod_userdir">UserDir</directive>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</directivelist>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</related>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<section id="documentroot"><title>DocumentRoot</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>リクエストに対してどのファイルを送信するかを決定するときの
208651a016b098f4fa1f6279559f104d70f1632dtakashi Apache のデフォルトの動作は、リクエストの URL-Path (URL のホスト名と
208651a016b098f4fa1f6279559f104d70f1632dtakashi ポート番号の後に続く部分) を取り出して設定ファイルで指定されている
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki <directive module="core">DocumentRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi の最後に追加する、というものです。ですから、
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki <directive module="core">DocumentRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi の下のディレクトリやファイルがウェブから見える基本のドキュメントの木構造を
208651a016b098f4fa1f6279559f104d70f1632dtakashi なします。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>Apache にはサーバが複数のホストへのリクエストを受け取る
208651a016b098f4fa1f6279559f104d70f1632dtakashi <a href="vhosts/">バーチャルホスト</a> の機能もあります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi この場合、それぞれのバーチャルホストに対して違う
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki <directive module="core">DocumentRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を指定することができます。また、<module>mod_vhost_alias</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi モジュールにより提供されるディレクティブを使って、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 送信するためのコンテンツの場所をリクエストされた IP
208651a016b098f4fa1f6279559f104d70f1632dtakashi アドレスやホスト名から動的に決めることもできます。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="outside"><title>DocumentRoot 外のファイル</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>ファイルシステム上の、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 厳密には <directive module="core">DocumentRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi の下にはない部分へのウェブアクセスを許可する必要がある
208651a016b098f4fa1f6279559f104d70f1632dtakashi 場合がよくあります。Apache はこのために複数の方法を用意しています。
208651a016b098f4fa1f6279559f104d70f1632dtakashi Unix システムでは、ファイルシステムの他の部分をシンボリックリンクを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使って <directive module="core">DocumentRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi の下に持ってくることができます。セキュリティ上の理由により、
208651a016b098f4fa1f6279559f104d70f1632dtakashi Apache は該当するディレクトリの
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="core">Options</directive> の設定に
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>FollowSymLinks</code> か <code>SymLinksIfOwnerMatch</code> が
208651a016b098f4fa1f6279559f104d70f1632dtakashi ある場合にのみシンボリックリンクをたどります。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>代わりの方法として、<directive module="mod_alias">Alias</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブを使ってファイルシステムの任意の部分をウェブの空間に
208651a016b098f4fa1f6279559f104d70f1632dtakashi マップできます。たとえば、</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>Alias /docs /var/web</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>という設定のときは、URL
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>http://www.example.com/docs/dir/file.html</code> には
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/var/web/dir/file.html</code> が送信されます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_alias">ScriptAlias</directive> も、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 対象となっているパスが CGI スクリプトとして扱われるという追加の
208651a016b098f4fa1f6279559f104d70f1632dtakashi 効果以外は同じように動作します。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>もっと柔軟な設定が必要な状況では、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_alias">AliasMatch</directive> ディレクティブや
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_alias">ScriptAliasMatch</directive> ディレクティブ
208651a016b098f4fa1f6279559f104d70f1632dtakashi を使って強力な正規表現に基づいたマッチと置換を行なうことができます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi たとえば、</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
57fbfdce466d9a43dd4c161c901360f8f2ad2757yoshiki<example>ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+)
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki /home/$1/cgi-bin/$2</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>は <code>http://example.com/~user/cgi-bin/script.cgi</code> への
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストを <code>/home/user/cgi-bin/script.cgi</code> というパスへ
208651a016b098f4fa1f6279559f104d70f1632dtakashi マップし、このマップの結果としてのファイルを CGI スクリプトとして
208651a016b098f4fa1f6279559f104d70f1632dtakashi 扱います。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="user"><title>ユーザディレクトリ</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>伝統的に Unix システムではユーザ <em>user</em> のホームディレクトリを
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>~user/</code> として参照できます。<module>mod_userdir</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi モジュールはこの概念をウェブに拡張して、
208651a016b098f4fa1f6279559f104d70f1632dtakashi それぞれのユーザのホームディレクトリのファイルを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 以下のような URL を使ってアクセスできるようにします。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>http://www.example.com/~user/file.html</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>セキュリティの観点から、ウェブからユーザのホームディレクトリへ
208651a016b098f4fa1f6279559f104d70f1632dtakashi 直接アクセスできるようにすることは適切ではありません。ですから、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_userdir">UserDir</directive> ディレクティブには
208651a016b098f4fa1f6279559f104d70f1632dtakashi ユーザのホームディレクトリの下の、ウェブファイルの
208651a016b098f4fa1f6279559f104d70f1632dtakashi 置かれているディレクトリを指定します。デフォルトの設定の
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>Userdir public_html</code> を使うと、上の URL は
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/home/user/public_html/file.html</code> というようなファイルに
208651a016b098f4fa1f6279559f104d70f1632dtakashi マップされます。ここで、<code>/home/user/</code> は
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/etc/passwd</code> で指定されているユーザのホームディレクトリです。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><directive module="mod_userdir">Userdir</directive> には、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/etc/passwd</code> にホームディレクトリの位置が書かれていない
208651a016b098f4fa1f6279559f104d70f1632dtakashi システムでも使うことのできる他の形式もあります。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>中にはシンボル "~" (<code>%7e</code> のように符号化されることが多い)
208651a016b098f4fa1f6279559f104d70f1632dtakashi を格好が悪いと思って、ユーザのディレクトリを表すために別の文字列の
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用を好む人がいます。mod_userdir はこの機能をサポートしていません。
208651a016b098f4fa1f6279559f104d70f1632dtakashi しかし、ユーザのホームディレクトリが規則的な構成のときは、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_alias">AliasMatch</directive> を使って望みの
208651a016b098f4fa1f6279559f104d70f1632dtakashi 効果を達成することができます。たとえば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>http://www.example.com/upages/user/file.html</code> が
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/home/user/public_html/file.html</code> にマップされるようにするには、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 以下のように <code>AliasMatch</code> ディレクティブを使います:</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
57fbfdce466d9a43dd4c161c901360f8f2ad2757yoshiki<example>AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*)
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki /home/$1/public_html/$2</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="redirect"><title>URL リダイレクション</title>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>上の節で説明した設定用のディレクティブは Apache に
208651a016b098f4fa1f6279559f104d70f1632dtakashi ファイルシステムの特定の場所からコンテンツを取ってきて
208651a016b098f4fa1f6279559f104d70f1632dtakashi クライアントに送り返すようにします。ときには、その代わりに
208651a016b098f4fa1f6279559f104d70f1632dtakashi クライアントにリクエストされたコンテンツは別の URL にあることを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 知らせて、クライアントが新しい URL へ新しいリクエストを行なうように
208651a016b098f4fa1f6279559f104d70f1632dtakashi する方が望ましいことがあります。これは<em>リダイレクション</em>と
208651a016b098f4fa1f6279559f104d70f1632dtakashi 呼ばれていて、<directive module="mod_alias">Redirect</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブにより実装されています。たとえば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="core">DocumentRoot</directive> の下のディレクトリ
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/foo/</code> が新しいディレクトリ <code>/bar/</code> に移動したときは、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 以下のようにしてクライアントが新しい場所のコンテンツをリクエストするように
208651a016b098f4fa1f6279559f104d70f1632dtakashi 指示することができます:</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>Redirect permanent /foo/
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki http://www.example.com/bar/</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>これは、<code>/foo/</code> で始まるすべての URL-Path を、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>www.example.com</code> サーバの <code>/bar/</code> が
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>/foo/</code> に置換されたものにリダイレクトします。
208651a016b098f4fa1f6279559f104d70f1632dtakashi サーバは自分自身のサーバだけでなく、どのサーバにでもクライアントを
208651a016b098f4fa1f6279559f104d70f1632dtakashi リダイレクトすることができます。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>Apache はより複雑な書き換えの問題のために、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_alias">RedirectMatch</directive> ディレクティブを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 提供しています。たとえば、サイトのホームページを違うサイトにリダイレクト
208651a016b098f4fa1f6279559f104d70f1632dtakashi するけれど、他のリクエストはそのまま扱う、というときは以下の設定を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使います:</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>RedirectMatch permanent ^/$
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki http://www.example.com/startpage.html</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>あるいは、一時的にサイトのすべてのページを他のサイトの特定の
208651a016b098f4fa1f6279559f104d70f1632dtakashi ページへリダイレクトするときは、以下を使います:</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>RedirectMatch temp .*
498e8a909bc308283d3713bb348246fe51de059cyoshiki http://othersite.example.com/startpage.html</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="proxy"><title>リバースプロキシ</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<p>Apache は遠隔地にあるドキュメントをローカルのサーバの URL 空間に
208651a016b098f4fa1f6279559f104d70f1632dtakashi持ってくることもできます。この手法は<em>リバースプロキシ</em>と呼ばれています。
208651a016b098f4fa1f6279559f104d70f1632dtakashiウェブサーバが遠隔地のドキュメントを取得してクライアントに送り返すのが
208651a016b098f4fa1f6279559f104d70f1632dtakashiプロキシサーバの動作のように見えるからです。クライアントにはドキュメントが
208651a016b098f4fa1f6279559f104d70f1632dtakashiリバースプロキシサーバから送られてきているように見える点が通常の
208651a016b098f4fa1f6279559f104d70f1632dtakashiプロキシとは異なります。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<p>次の例では、クライアントが <code>/foo/</code> ディレクトリの下にある
208651a016b098f4fa1f6279559f104d70f1632dtakashiドキュメントをリクエストすると、サーバが <code>internal.example.com</code> の
208651a016b098f4fa1f6279559f104d70f1632dtakashi<code>/bar/</code> ディレクトリから取得して、さもローカルサーバからの
208651a016b098f4fa1f6279559f104d70f1632dtakashiドキュメントのようにしてクライアントに返します。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshikiProxyPass /foo/ http://internal.example.com/bar/<br />
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawaiProxyPassReverse /foo/ http://internal.example.com/bar/<br />
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawaiProxyPassReverseCookieDomain internal.example.com public.example.com<br />
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawaiProxyPassReverseCookiePath /foo/ /bar/
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</example>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<p><directive module="mod_proxy">ProxyPass</directive> ディレクティブは
208651a016b098f4fa1f6279559f104d70f1632dtakashiサーバが適切なドキュメントを取得するように設定し、
208651a016b098f4fa1f6279559f104d70f1632dtakashi<directive module="mod_proxy">ProxyPassReverse</directive> ディレクティブは
208651a016b098f4fa1f6279559f104d70f1632dtakashi<code>internal.example.com</code> からのリダイレクトがローカルサーバの
208651a016b098f4fa1f6279559f104d70f1632dtakashi適切なディレクトリを指すように書き換えます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi同様に <directive module="mod_proxy">ProxyPassReverseCookieDomain</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashiと <directive module="mod_proxy">ProxyPassReverseCookiePath</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashiでバックエンド側サーバの発行した Cookie を書き換えることができます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi<p>ただし、ドキュメントの中のリンクは書き換えられない、
208651a016b098f4fa1f6279559f104d70f1632dtakashiということは知っておいてください。
208651a016b098f4fa1f6279559f104d70f1632dtakashiですから、<code>internal.example.com</code> への絶対パスによるリンクでは、
208651a016b098f4fa1f6279559f104d70f1632dtakashiクライアントがプロキシサーバを抜け出して <code>internal.example.com</code> に
208651a016b098f4fa1f6279559f104d70f1632dtakashi直接リクエストを送る、ということになります。
208651a016b098f4fa1f6279559f104d70f1632dtakashiサードパーティ製モジュールの <a
18d6d78c596e3e6193fbef9cfbd33618cec13f19kawaihref="http://apache.webthing.com/mod_proxy_html/">mod_proxy_html</a>
208651a016b098f4fa1f6279559f104d70f1632dtakashiは、HTML と XHTML 中のリンクを書き換えることができます。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="rewrite"><title>リライトエンジン</title>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>より一層強力な置換が必要なときは、<module>mod_rewrite</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi が提供するリライトエンジンが役に立つでしょう。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このモジュールにより提供されるディレクティブは
208651a016b098f4fa1f6279559f104d70f1632dtakashi ブラウザの種類、リクエスト元の IP アドレスなどのリクエストの特徴を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使って送り返すコンテンツの場所を決めます。さらに、<module>mod_rewrite</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi は外部のデータベースファイルやプログラムを使ってリクエストの扱い方を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 決めることもできます。リライトエンジンは上で挙げられている三つのマッピング
208651a016b098f4fa1f6279559f104d70f1632dtakashi すべてを行なうことができます: 内部のリダイレクト (エイリアス)、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 外部のリダイレクト、プロキシです。mod_rewrite を使う多くの実用的な例は
208651a016b098f4fa1f6279559f104d70f1632dtakashi <a href="misc/rewriteguide.html">URL リライトガイド</a>
208651a016b098f4fa1f6279559f104d70f1632dtakashi で説明されています。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki<section id="notfound"><title>File Not Found</title>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>必ず、リクエストされた URL に対応するファイルがファイルシステムに
208651a016b098f4fa1f6279559f104d70f1632dtakashi 無いという場合が発生します。これが起こるのにはいくつかの理由があります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 場合によっては、ドキュメントを別の場所に移動した結果であることがあります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi この場合は、クライアントにリソースの新しい位置を知らせるために
208651a016b098f4fa1f6279559f104d70f1632dtakashi <a href="#redirect">URL リダイレクション</a>を使うのが最善の方法です。
208651a016b098f4fa1f6279559f104d70f1632dtakashi そうすることによって、リソースは新しい位置に移動しているけれども、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 古いブックマークやリンクが動作し続けるようにすることができます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>"File Not Found" エラーのもう一つのよくある理由は、
208651a016b098f4fa1f6279559f104d70f1632dtakashi ブラウザへの直接入力や HTML リンクからの偶発的な URL の入力間違いです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi Apache はこの問題を改善するために、<module>mod_speling</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi モジュール (意図的な綴り間違い)
208651a016b098f4fa1f6279559f104d70f1632dtakashi (訳注: 正しくは spelling) を提供しています。このモジュールが
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用されているときは、"File Not Found" エラーを横取りして、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 似たファイル名のリソースを探します。もし一つだけ見つかった場合は
208651a016b098f4fa1f6279559f104d70f1632dtakashi mod_speling はクライアントに正しい位置を知らせるために HTTP リダイレクトを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 送ります。もし複数の「近い」ファイルが見つかった場合は、それら
208651a016b098f4fa1f6279559f104d70f1632dtakashi 代替となりえるもののリストがクライアントに表示されます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>mod_speling の非常に有用な機能は、大文字小文字を区別せずに
208651a016b098f4fa1f6279559f104d70f1632dtakashi ファイル名を比較するものです。これは URL と unix の
208651a016b098f4fa1f6279559f104d70f1632dtakashi ファイルシステムが両方とも大文字小文字を区別するものである、
208651a016b098f4fa1f6279559f104d70f1632dtakashi ということをユーザが知らないシステムで役に立ちます。ただし、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 時折の URL 訂正程度で済まず、mod_speling をより多く使用すると、サーバに
208651a016b098f4fa1f6279559f104d70f1632dtakashi さらなる負荷がかかります。すべての「正しくない」リクエストの後に
208651a016b098f4fa1f6279559f104d70f1632dtakashi URL のリダイレクトとクライアントからの新しいリクエストがくることに
208651a016b098f4fa1f6279559f104d70f1632dtakashi なりますから。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>コンテンツの位置を決めようとするすべての試みが失敗すると、
208651a016b098f4fa1f6279559f104d70f1632dtakashi Apache は、HTTP ステータスコード 404 (file not found) と共に
208651a016b098f4fa1f6279559f104d70f1632dtakashi エラーページを返します。このエラーページの外観は
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki <directive module="core">ErrorDocument</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブで制御され、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <a href="custom-error.html">カスタムエラーレスポンス</a> で
208651a016b098f4fa1f6279559f104d70f1632dtakashi 説明されているように、柔軟な設定を行なうことができます。</p>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</section>
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki
75429b361faff4e3109d7e5962f70d2d65271f60yoshiki</manualpage>