1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>バーチャルホストの例 - Apache HTTP サーバ</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p>
18<p class="apache">Apache HTTP サーバ バージョン 2.2</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.2</a> &gt; <a href="./">バーチャルホスト</a></div><div id="page-content"><div id="preamble"><h1>バーチャルホストの例</h1>
23<div class="toplang">
24<p><span>翻訳済み言語: </span><a href="/en/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26<a href="/ja/vhosts/examples.html" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29</div>
30<div class="outofdate">この日本語訳はすでに古くなっている
31            可能性があります。
32            最近更新された内容を見るには英語版をご覧下さい。
33        </div>
34
35
36    <p>この文書は、バーチャルホストの設定の際に
37    よくある質問に答えるものです。想定している対象は <a href="name-based.html">名前ベース</a> や <a href="ip-based.html">IP ベース</a> のバーチャルホストを使って
38    一つのサーバで複数のウェブサイトを運用している状況です。
39    </p>
40
41</div>
42<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#purename">一つの IP アドレスでいくつかの名前ベースの
43    ウェブサイトを実行する</a></li>
44<li><img alt="" src="/images/down.gif" /> <a href="#twoips">複数の IP アドレスのあるホストで名前ベースの
45    ホスティングを行なう</a></li>
46<li><img alt="" src="/images/down.gif" /> <a href="#intraextra">違う IP アドレス (例えば、内部と外部アドレス)
47    で同じコンテンツを送る</a></li>
48<li><img alt="" src="/images/down.gif" /> <a href="#port">違うポートで違うサイトを運営する</a></li>
49<li><img alt="" src="/images/down.gif" /> <a href="#ip">IP ベースのバーチャルホスティング</a></li>
50<li><img alt="" src="/images/down.gif" /> <a href="#ipport">ポートベースと IP ベースの混ざった
51    バーチャルホスト</a></li>
52<li><img alt="" src="/images/down.gif" /> <a href="#mixed">名前ベースと IP ベースを混ぜた
53    バーチャルホスト</a></li>
54<li><img alt="" src="/images/down.gif" /> <a href="#proxy"><code>Virtual_host</code> と
55    mod_proxy を併用する</a></li>
56<li><img alt="" src="/images/down.gif" /> <a href="#default"><code>_default_</code> のバーチャルホストを
57    使う</a></li>
58<li><img alt="" src="/images/down.gif" /> <a href="#migrate">名前ベースのバーチャルホストから IP ベースの
59    バーチャルホストに移行する</a></li>
60<li><img alt="" src="/images/down.gif" /> <a href="#serverpath"><code>ServerPath</code> ディレクティブを
61    使う</a></li>
62</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
63<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
64<div class="section">
65<h2><a name="purename" id="purename">一つの IP アドレスでいくつかの名前ベースの
66    ウェブサイトを実行する</a></h2>
67
68    <p>サーバは IP アドレスを一つ割り当てられていて、DNS でマシンに
69    複数の名前 (CNAME) が指定されています。このマシンで
70    <code>www.example.com</code> と <code>www.example.org</code>
71    のためのウェブサーバを実行させたいとします。</p>
72
73    <div class="note"><h3>注</h3><p>
74          Apache サーバの設定でバーチャルホストの設定をしただけで、
75          知らない間にそのホスト名に対応する DNS のエントリが
76          作成されたりはしません。そのサーバの IP アドレスに解決される
77          ように DNS に名前を登録しなければ<em>なりません</em>。
78          そうでないと誰もあなたのウェブサイトを見ることはできません。
79          ローカルでのテストのために <code>hosts</code> ファイルに
80          エントリを追加することもできますが、この場合はその
81          hosts エントリのあるマシンからしか動作しません。</p>
82    </div>
83
84    <div class="example"><h3>サーバ設定</h3><p><code>
85    
86
87    # Ensure that Apache listens on port 80<br />
88    Listen 80<br />
89    <br />
90    # Listen for virtual host requests on all IP addresses<br />
91    NameVirtualHost *:80<br />
92    <br />
93    &lt;VirtualHost *:80&gt;<br />
94    <span class="indent">
95      DocumentRoot /www/example1<br />
96      ServerName www.example.com<br />
97      <br />
98      # Other directives here<br />
99      <br />
100    </span>
101    &lt;/VirtualHost&gt;<br />
102    <br />
103    &lt;VirtualHost *:80&gt;<br />
104    <span class="indent">
105      DocumentRoot /www/example2<br />
106      ServerName www.example.org<br />
107      <br />
108      # Other directives here<br />
109      <br />
110    </span>
111    &lt;/VirtualHost&gt;
112    </code></p></div>
113
114    <p>アスタリスクはすべてのアドレスにマッチしますので、主サーバは
115    リクエストを扱いません。<code>www.example.com</code> は
116    最初にあるため、優先順位は一番高くなり、<cite>default</cite> もしくは
117    <cite>primary</cite>  のサーバと考えることができます。つまり、リクエストが
118    どの <code>ServerName</code> ディレクティブにもマッチしない場合、
119    一番最初の <code>VirtualHost</code> により扱われます。</p>
120
121    <div class="note"><h3>注</h3>
122
123          <p><code>*</code> をシステムの実際の IP アドレスに置き換える
124          こともできます。その場合は <code>VirtualHost</code> の引数は
125          <code>NameVirtualHost</code> の引数と同じに<em>しなければなりません
126          </em>:</p>
127
128            <div class="example"><p><code>
129            NameVirtualHost 172.20.30.40<br />
130						<br />
131            &lt;VirtualHost 172.20.30.40&gt;<br />
132 		        # etc ...
133            </code></p></div>
134
135          <p>しかし、IP アドレスが予測不可能なシステム
136          ――例えばプロバイダから動的に IP アドレスを取得して何らかの
137          ダイナミック DNS を使っている場合など――においては、<code>*</code> 
138          指定はさらに便利です。<code>*</code> はすべての IP アドレスに
139          マッチしますので、この設定にしておけば IP アドレスが変更されても
140          設定変更せずに動作します。</p>
141    </div>
142
143    <p>名前ベースのバーチャルホスティングではほぼすべての状況で、
144    上記の設定で希望の設定になっていることでしょう。
145    実際この設定が動作しないのは、IP アドレスやポートの違いによって
146    違うコンテンツを送るときだけです。</p>
147
148    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
149<div class="section">
150<h2><a name="twoips" id="twoips">複数の IP アドレスのあるホストで名前ベースの
151    ホスティングを行なう</a></h2>
152 
153    <div class="note">
154    <h3>注</h3><p>ここで説明されている方法は IP アドレスが
155    何個あっても同様にできます。</p>
156    </div>
157
158    <p>サーバには二つ IP アドレスがついています。一つ目
159    (<code>172.20.30.40</code>) では主サーバ 
160    <code>server.domain.com</code> を扱い、もう一方
161    (<code>172.20.30.50</code>) では二つかそれ以上の数の
162    バーチャルホストを扱います。</p>
163
164    <div class="example"><h3>サーバの設定</h3><p><code>
165    
166
167    Listen 80<br />
168		<br />
169    # This is the "main" server running on 172.20.30.40<br />
170    ServerName server.domain.com<br />
171    DocumentRoot /www/mainserver<br />
172		<br />
173    # This is the other address<br />
174    NameVirtualHost 172.20.30.50<br />
175		<br />
176    &lt;VirtualHost 172.20.30.50&gt;<br />
177    <span class="indent">
178        DocumentRoot /www/example1<br />
179        ServerName www.example.com<br />
180   			<br />
181        # Other directives here ...<br />
182				<br />
183    </span>
184    &lt;/VirtualHost&gt;<br />
185		<br />
186    &lt;VirtualHost 172.20.30.50&gt;<br />
187    <span class="indent">
188        DocumentRoot /www/example2<br />
189        ServerName www.example.org<br />
190				<br />
191        # Other directives here ...<br />
192				<br />
193    </span>
194    &lt;/VirtualHost&gt;
195    </code></p></div>
196
197    <p><code>172.20.30.50</code> 以外のアドレスへのリクエストは主サーバ
198    が扱います。<code>172.20.30.50</code> への、未知のホスト名または
199    <code>Host:</code> ヘッダなしのリクエストは <code>www.example.com</code>
200    が扱います。</p>
201
202    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
203<div class="section">
204<h2><a name="intraextra" id="intraextra">違う IP アドレス (例えば、内部と外部アドレス)
205    で同じコンテンツを送る</a></h2>
206
207    <p>サーバマシンは IP アドレスを二つ (<code>192.168.1.1</code>
208    と <code>172.20.30.40</code>) 持っています。このマシンは内部
209    (イントラネット) と 外部 (インターネット) のネットワークの間に
210    あります。<code>server.example.com</code> はネットワークの外からは
211    外部アドレス (<code>172.20.30.40</code>) として解決されますが、
212    ネットワークの中からは内部アドレス (<code>192.168.1.1</code>) 
213    として解決されます。</p>
214
215    <p><code>VirtualHost</code> 一つだけでサーバが内部のリクエストと
216    外部のリクエストの両方に同じコンテンツで応答するようにできます。</p>
217
218    <div class="example"><h3>サーバの設定</h3><p><code>
219    
220
221    NameVirtualHost 192.168.1.1<br />
222    NameVirtualHost 172.20.30.40<br />
223		<br />
224    &lt;VirtualHost 192.168.1.1 172.20.30.40&gt;<br />
225    <span class="indent">
226        DocumentRoot /www/server1<br />
227        ServerName server.example.com<br />
228        ServerAlias server<br />
229    </span>
230    &lt;/VirtualHost&gt;
231    </code></p></div>
232
233    <p>これでどちらのネットワークからのリクエストも同じ <code>VirtualHost</code>
234    で扱われるようになります。</p>
235
236    <div class="note"><h3>注:</h3><p>内部ネットワークでは完全なホスト名の
237          <code>server.example.com</code> の代わりに、単に <code>server</code>
238          を使うことができます。</p>
239
240          <p>上の例では、IP アドレスのリストを、すべてのアドレスに
241           同じコンテンツで応答する <code>*</code> に置き換えられます。</p>
242    </div>
243
244    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
245<div class="section">
246<h2><a name="port" id="port">違うポートで違うサイトを運営する</a></h2>
247
248    <p>同じ IP に複数のドメインがあり、さらに複数のポートを使って
249    リクエストを扱いたいときがあります。"NameVirtualHost" タグの中で
250    ポートを定義することで、これを動作させられます。
251    NameVirtualHost name:port 無しや Listen ディレクティブで
252    &lt;VirtualHost name:port&gt; を使おうとしても、その設定は動作しません。</p>
253
254    <div class="example"><h3>サーバの設定</h3><p><code>
255    
256
257    Listen 80<br />
258    Listen 8080<br />
259		<br />
260    NameVirtualHost 172.20.30.40:80<br />
261    NameVirtualHost 172.20.30.40:8080<br />
262		<br />
263    &lt;VirtualHost 172.20.30.40:80&gt;<br />
264    <span class="indent">
265        ServerName www.example.com<br />
266        DocumentRoot /www/domain-80<br />
267    </span>
268    &lt;/VirtualHost&gt;<br />
269		<br />
270    &lt;VirtualHost 172.20.30.40:8080&gt;<br />
271    <span class="indent">
272        ServerName www.example.com<br />
273        DocumentRoot /www/domain-8080<br />
274    </span>
275    &lt;/VirtualHost&gt;<br />
276		<br />
277    &lt;VirtualHost 172.20.30.40:80&gt;<br />
278    <span class="indent">
279        ServerName www.example.org<br />
280        DocumentRoot /www/otherdomain-80<br />
281    </span>
282    &lt;/VirtualHost&gt;<br />
283		<br />
284    &lt;VirtualHost 172.20.30.40:8080&gt;<br />
285    <span class="indent">
286        ServerName www.example.org<br />
287        DocumentRoot /www/otherdomain-8080<br />
288    </span>
289    &lt;/VirtualHost&gt;
290    </code></p></div>
291
292    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
293<div class="section">
294<h2><a name="ip" id="ip">IP ベースのバーチャルホスティング</a></h2>
295
296    <p>サーバは <code>www.example.com</code> と <code>www.example.org</code>
297    にそれぞれ解決される、二つの IP アドレス (<code>172.20.30.40</code> と
298    <code>172.20.30.50</code>) があります。</p>
299
300    <div class="example"><h3>サーバの設定</h3><p><code>
301    
302
303    Listen 80<br />
304		<br />
305    &lt;VirtualHost 172.20.30.40&gt;<br />
306    <span class="indent">
307        DocumentRoot /www/example1<br />
308        ServerName www.example.com<br />
309    </span>
310    &lt;/VirtualHost&gt;<br />
311		<br />
312    &lt;VirtualHost 172.20.30.50&gt;<br />
313    <span class="indent">
314        DocumentRoot /www/example2<br />
315        ServerName www.example.org<br />
316    </span>
317    &lt;/VirtualHost&gt;
318    </code></p></div>
319
320    <p><code>&lt;VirtualHost&gt;</code> ディレクティブのどれでも
321    指定されていないアドレス (例えば <code>localhost</code>) は、
322    主サーバがあればそこに行きます。</p>
323
324    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
325<div class="section">
326<h2><a name="ipport" id="ipport">ポートベースと IP ベースの混ざった
327    バーチャルホスト</a></h2>
328
329    <p>サーバマシンはそれぞれ <code>www.example.com</code> と
330    <code>www.example.org</code> にそれぞれ解決される、IP アドレスを二つ
331    (<code>172.20.30.40</code> と <code>172.20.30.50</code>) 持っています。
332    どちらもポート 80 と 8080 でホストを走らせます。</p>
333
334    <div class="example"><h3>サーバの設定</h3><p><code>
335    
336
337    Listen 172.20.30.40:80<br />
338    Listen 172.20.30.40:8080<br />
339    Listen 172.20.30.50:80<br />
340    Listen 172.20.30.50:8080<br />
341		<br />
342    &lt;VirtualHost 172.20.30.40:80&gt;<br />
343    <span class="indent">
344        DocumentRoot /www/example1-80<br />
345        ServerName www.example.com<br />
346    </span>
347    &lt;/VirtualHost&gt;<br />
348		<br />
349    &lt;VirtualHost 172.20.30.40:8080&gt;<br />
350    <span class="indent">
351        DocumentRoot /www/example1-8080<br />
352        ServerName www.example.com<br />
353		</span>
354    &lt;/VirtualHost&gt;<br />
355		<br />
356    &lt;VirtualHost 172.20.30.50:80&gt;<br />
357    <span class="indent">
358        DocumentRoot /www/example2-80<br />
359        ServerName www.example.org<br />
360    </span>
361    &lt;/VirtualHost&gt;<br />
362		<br />
363    &lt;VirtualHost 172.20.30.50:8080&gt;<br />
364    <span class="indent">
365        DocumentRoot /www/example2-8080<br />
366        ServerName www.example.org<br />
367    </span>
368    &lt;/VirtualHost&gt;
369    </code></p></div>
370
371    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
372<div class="section">
373<h2><a name="mixed" id="mixed">名前ベースと IP ベースを混ぜた
374    バーチャルホスト</a></h2>
375
376    <p>いくつかのマシンでは名前ベースの、その他では IP ベースのバーチャル
377    ホストをします。</p>
378
379    <div class="example"><h3>サーバの設定</h3><p><code>
380    
381
382    Listen 80<br />
383		<br />
384    NameVirtualHost 172.20.30.40<br />
385		<br />
386    &lt;VirtualHost 172.20.30.40&gt;<br />
387    <span class="indent">
388        DocumentRoot /www/example1<br />
389        ServerName www.example.com<br />
390    </span>
391    &lt;/VirtualHost&gt;<br />
392		<br />
393    &lt;VirtualHost 172.20.30.40&gt;<br />
394    <span class="indent">
395        DocumentRoot /www/example2<br />
396        ServerName www.example.org<br />
397    </span>
398    &lt;/VirtualHost&gt;<br />
399		<br />
400    &lt;VirtualHost 172.20.30.40&gt;<br />
401    <span class="indent">
402        DocumentRoot /www/example3<br />
403        ServerName www.example3.net<br />
404    </span>
405    &lt;/VirtualHost&gt;<br />
406		<br />
407    # IP-based<br />
408    &lt;VirtualHost 172.20.30.50&gt;<br />
409    <span class="indent">
410        DocumentRoot /www/example4<br />
411        ServerName www.example4.edu<br />
412    </span>
413    &lt;/VirtualHost&gt;<br />
414		<br />
415    &lt;VirtualHost 172.20.30.60&gt;<br />
416    <span class="indent">
417        DocumentRoot /www/example5<br />
418        ServerName www.example5.gov<br />
419    </span>
420    &lt;/VirtualHost&gt;
421    </code></p></div>
422
423    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
424<div class="section">
425<h2><a name="proxy" id="proxy"><code>Virtual_host</code> と
426    mod_proxy を併用する</a></h2>
427
428    <p>次の例は、フロント側のバーチャルホストで他のマシンへプロクシします。
429    例では <code>192.168.111.2</code> のマシンではバーチャルホスト名は
430    同じ名前で設定されています。複数のホスト名を一台のマシンにプロクシする
431    場合は、<code class="directive"><a href="/mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</a></code>
432    ディレクティブを使って、希望のホスト名を渡せるようになります。
433    </p>
434
435    <div class="example"><p><code>
436    &lt;VirtualHost *:*&gt;<br />
437        ProxyPreserveHost On<br />
438        ProxyPass / http://192.168.111.2<br />
439        ProxyPassReverse / http://192.168.111.2/<br />
440        ServerName hostname.example.com<br />
441    &lt;/VirtualHost&gt;
442    </code></p></div>
443
444    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
445<div class="section">
446<h2><a name="default" id="default"><code>_default_</code> のバーチャルホストを
447    使う</a></h2> 
448
449    <h3><a name="defaultallports" id="defaultallports">すべてのポートに対する
450    <code>_default_</code> バーチャルホスト</a></h3>
451
452    <p>未指定の IP アドレスとポート、<em>つまり</em>他のバーチャルホストに
453    使われていないアドレスとポートの組み合わせ、への<em>すべての</em>リクエストを
454    受け取ります。</p>
455
456    <div class="example"><h3>サーバの設定</h3><p><code>
457    
458
459    &lt;VirtualHost _default_:*&gt;<br />
460    <span class="indent">
461        DocumentRoot /www/default<br />
462    </span>
463    &lt;/VirtualHost&gt;
464    </code></p></div>
465
466    <p>このようにワイルドカードのポートでデフォルトのバーチャルホストを
467    指定すると、主サーバにリクエストが行くのを防げます。</p>
468
469    <p>デフォルトのバーチャルホストは名前ベースのバーチャルホストに
470    使われているアドレスとポートの組に送られたリクエストを扱うことは
471    ありません。リクエストが不明な <code>Host:</code> ヘッダやその
472    ヘッダがなかったりする場合は基本名前ベースバーチャルホスト (その
473    アドレスとポートで設定ファイル中で最初のバーチャルホスト) により
474    扱われます。</p>
475
476    <p>どんなリクエストでも <code class="directive"><a href="/mod/mod_alias.html#aliasmatch">AliasMatch</a></code>
477    や <code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> を使って
478    単一の情報ページ (やスクリプト) に書き換えることができます。</p>
479    
480
481    <h3><a name="defaultdifferentports" id="defaultdifferentports">違うポートのための
482    <code>_default_</code> バーチャルホスト</a></h3>
483
484    <p>一つめの設定とほぼ同じですが、サーバは複数のポートを listen しており、
485    80 番ポートに対して二つめの <code>_default_</code> バーチャルホストを
486    設定したい場合です。</p>
487
488    <div class="example"><h3>サーバの設定</h3><p><code>
489    
490
491    &lt;VirtualHost _default_:80&gt;<br />
492    <span class="indent">
493        DocumentRoot /www/default80<br />
494        # ...<br />
495    </span>
496    &lt;/VirtualHost&gt;<br />
497		<br />
498    &lt;VirtualHost _default_:*&gt;<br />
499    <span class="indent">
500        DocumentRoot /www/default<br />
501        # ...<br />
502    </span>
503    &lt;/VirtualHost&gt;
504    </code></p></div>
505
506    <p>80 番ポートのデフォルトバーチャルホスト (ワイルドカードポートの
507    デフォルトバーチャルホストよりも前に書かれていなければ<em>なりません</em>) は
508    未指定の IP アドレスに送られたすべてのリクエストを扱います。
509    主サーバはリクエストを扱いません。</p>
510    
511
512    <h3><a name="defaultoneport" id="defaultoneport">一つのポートに対してだけの
513    <code>_default_</code> バーチャルホスト</a></h3>
514
515    <p>80 番ポートにはデフォルトのバーチャルホストが必要で、他の
516    バーチャルホストはデフォルトが必要ない場合です。</p>
517
518    <div class="example"><h3>サーバの設定</h3><p><code>
519    
520
521    &lt;VirtualHost _default_:80&gt;<br />
522    DocumentRoot /www/default<br />
523    ...<br />
524    &lt;/VirtualHost&gt;
525    </code></p></div>
526
527    <p>80 番ポートへのアドレス未指定のリクエストはデフォルトのバーチャル
528    ホストから送られます。他の未指定のアドレスとポートへのリクエストは
529    主サーバから送られます。</p>
530    
531
532  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
533<div class="section">
534<h2><a name="migrate" id="migrate">名前ベースのバーチャルホストから IP ベースの
535    バーチャルホストに移行する</a></h2>
536
537    <p>ホスト名が名前 <code>www.example.org</code> のバーチャルホスト
538    (<a href="#name">名前ベース</a>の例の 2 番目の設定) が専用の IP アドレスを
539    得たとします。名前ベースのバーチャルホストの古い IP アドレスを
540    キャッシュしているネームサーバやプロキシのために移行期間中は両方の
541    バーチャルホストを提供したいとします。</p>
542
543    <p>答は簡単です。単に新しい IP アドレス (<code>172.20.30.50</code>)
544    を <code>VirtualHost</code> ディレクティブに追加することで
545    できます。</p>
546  
547    <div class="example"><h3>サーバ設定</h3><p><code>
548    
549
550    Listen 80<br />
551    ServerName www.example.com<br />
552    DocumentRoot /www/example1<br />
553		<br />
554    NameVirtualHost 172.20.30.40<br />
555		<br />
556    &lt;VirtualHost 172.20.30.40 172.20.30.50&gt;<br />
557    <span class="indent">
558        DocumentRoot /www/example2<br />
559        ServerName www.example.org<br />
560        # ...<br />
561    </span>
562    &lt;/VirtualHost&gt;<br />
563		<br />
564    &lt;VirtualHost 172.20.30.40&gt;<br />
565    <span class="indent">
566        DocumentRoot /www/example3<br />
567        ServerName www.example.net<br />
568        ServerAlias *.example.net<br />
569        # ...<br />
570    </span>
571    &lt;/VirtualHost&gt;
572    </code></p></div>
573
574    <p>このバーチャルホストは新しいアドレス (IP ベースのバーチャルホストとして)
575    と古いアドレス(名前ベースのバーチャルホストとして) の両方から
576    アクセスできます。</p>
577
578    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
579<div class="section">
580<h2><a name="serverpath" id="serverpath"><code>ServerPath</code> ディレクティブを
581    使う</a></h2>
582
583    <p>名前ベースのバーチャルホストが二つあるサーバがあるとします。
584    正しいバーチャルホストを得るためにはクライアントは正しい
585    <code>Host:</code> ヘッダを送らなければなりません。
586    古い HTTP/1.0 はそのようなヘッダを送らないので、Apache はクライアントが
587    どのバーチャルホストを意図したのかさっぱりわかりません
588    (なので、主バーチャルホストでリクエストを扱います)。
589    可能な限りの下位互換性を得るため、名前ベースのバーチャルホストの
590    URL 接頭辞へのリンクの書かれたページを返す、
591    主バーチャルホストが作成されます。</p>
592
593    <div class="example"><h3>サーバの設定</h3><p><code>
594    
595
596    NameVirtualHost 172.20.30.40<br />
597		<br />
598    &lt;VirtualHost 172.20.30.40&gt;<br />
599    <span class="indent">
600        # primary vhost<br />
601        DocumentRoot /www/subdomain<br />
602        RewriteEngine On<br />
603        RewriteRule ^/.* /www/subdomain/index.html<br />
604        # ...<br />
605    </span>
606    &lt;/VirtualHost&gt;<br />
607		<br />
608    &lt;VirtualHost 172.20.30.40&gt;<br />
609    DocumentRoot /www/subdomain/sub1<br />
610    <span class="indent">
611        ServerName www.sub1.domain.tld<br />
612        ServerPath /sub1/<br />
613        RewriteEngine On<br />
614        RewriteRule ^(/sub1/.*) /www/subdomain$1<br />
615        # ...<br />
616    </span>
617    &lt;/VirtualHost&gt;<br />
618		<br />
619    &lt;VirtualHost 172.20.30.40&gt;<br />
620    <span class="indent">
621        DocumentRoot /www/subdomain/sub2<br />
622        ServerName www.sub2.domain.tld<br />
623        ServerPath /sub2/<br />
624        RewriteEngine On<br />
625        RewriteRule ^(/sub2/.*) /www/subdomain$1<br />
626        # ...<br />
627    </span>
628    &lt;/VirtualHost&gt;
629    </code></p></div>
630
631    <p><code class="directive"><a href="/mod/core.html#serverpath">ServerPath</a></code> ディレクティブの設定に
632    より、URL <code>http://www.sub1.domain.tld/sub1/</code> は
633    <em>常に</em> sub1-vhost により扱われます。URL
634    <code>http://www.sub1.domain.tld/</code> へのリクエストは
635    クライアントが正しい <code>Host:</code> ヘッダを送ったときにのみ
636    sub1-vhost から送られます。<code>Host:</code> ヘッダがなければ
637    クライアントは主ホストの情報ページを得ます。</p>
638
639    <p>一つ奇妙な動作をする点があることは覚えておいてください。
640    <code>http://www.sub2.domain.tld/sub1/</code> へのリクエストも
641    <code>Host:</code> ヘッダがなければ sub1-vhost により扱われます。</p>
642
643    <p>正しい <code>Host:</code> ヘッダを送ったクライアントはどちらの
644    URL、<em>つまり</em>接頭辞がある方も無い方も使えるように
645    <code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ディレクティブが
646    使われています。</p>
647  </div></div>
648<div class="bottomlang">
649<p><span>翻訳済み言語: </span><a href="/en/vhosts/examples.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
650<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
651<a href="/ja/vhosts/examples.html" title="Japanese">&nbsp;ja&nbsp;</a> |
652<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
653<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
654</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
655<script type="text/javascript"><!--//--><![CDATA[//><!--
656var comments_shortname = 'httpd';
657var comments_identifier = 'http://httpd.apache.org/docs/2.2/vhosts/examples.html';
658(function(w, d) {
659    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
660        d.write('<div id="comments_thread"><\/div>');
661        var s = d.createElement('script');
662        s.type = 'text/javascript';
663        s.async = true;
664        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
665        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
666    }
667    else { 
668        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
669    }
670})(window, document);
671//--><!]]></script></div><div id="footer">
672<p class="apache">Copyright 2013 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
673<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
674if (typeof(prettyPrint) !== 'undefined') {
675    prettyPrint();
676}
677//--><!]]></script>
678</body></html>