第 2 章 Apache の設定

2.4

マッピングルールの追加

Apache はリクエストに対し、"http://サーバー名"の部分を DocumentRoot の値に置き換えたパスにマッピングするため、公開するコンテンツは DocumentRoot で指定したディレクトリから下の階層に配置する必要があります。DocumentRoot 以外のディレクトリに配置したコンテンツを公開したり、あるディレクトリに対し別名を与えるには以下の方法を利用することができます。

●
●

2.4.1

Alias ディレクティブ
シンボリックリンク

Alias ディレクティブ

Alias ディレクティブは、マッピングルールの追加を行うことができる。

http://www.example.com/abc.html/var/www/html/abc.html
DocumentRoot"/var/www/html"

http://www.example.com/other/abc.html
ブラウザ/home/html/abc.html
Alias/otherWeb サーバー
www.example.com"/home/html"

図 2‑5 : Alias ディレクティブ

Alias
書式

Alias

URL-path

real-path

仮想パスと物理パスのマッピングルールを追加する。URL-path は、仮想パス（URL の"http://サーバー名"以降）、real-path にはマッピング先の物理パスを記述します。
例えば、
Alias

/other"/home/html"という指定がある場合、
http://www.example.com/other/index.htmlという URL に対応するパスは、/var/www/html/other/index.html ではなく、/home/html/index.htmlとなります。

30

2.4 マッピングルールの追加

DocumentRoot "/var/www/html"

仮想パス

物理パス

//var/www/html/
doc//var/www/html/doc/

Alias/other"/home/html"/home/html/

other//home/html/abc.html

abc.html

図 2‑ 6 : DocumentRoot ディレクティブと Alias ディレクティブによるマッピング

Alias ディレクティブを新規に追加する場合、公開するディレクトリに対するアクセス制限を行う
Directory ディレクティブも併せて設定します。なお、Directory ディレクティブ内に記述する内容については第 3 章で説明します。

【/etc/httpd/conf/httpd.conf】
Alias /icons/ "/var/www/icons/"<Directory "/var/www/icons">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all</Directory>
Alias /manual "/var/www/manual"<Directory "/var/www/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>31

第 2 章 Apache の設定

2.4.2

シンボリックリンク

シンボリックリンクを利用することにより、DocumentRoot 以外のディレクトリを公開することが可能です。
例えば、http://www.example.com/slink という URL で /home/html 以下を公開するためには以下のようにシンボリックリンクを配置します。

# cd/var/www/html# ln-s/home/html

slink

http://www.example.com/slink/index.html

ブラウザ/var/www/html/slink/index.html
シンボリックリンク

Web サーバー
www.example.com/home/html/index.html

図 2‑ 7 : シンボリックリンク
この例では
http://www.example.com/slink/index.htmlという URL は、/var/www/html/slink/index.htmlにマッピングされますが、/var/www/html/slink は/home/html へのシンボリックリンクであるために、このファイルの実体は、/home/html/index.htmlです。

32

2.4 マッピングルールの追加

なお、シンボリックリンクによる方法では、Apache のマッピングルールを変更していないため、/home/html デ ィレ ク ト リ 以 下 の コ ン テ ン ツ に 関 す る 設 定 を 行 う と き 、Directory デ ィレ ク テ ィブは 、/var/www/html/slink に対して設定します。
<Directory "/var/www/html/slink">
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>

リ ン ク フ ァ イ ル に 対 し て、
Directory ディレクティブを設定する。

※ シンボリックリンクによるファイルの公開を行うためには、リンクファイルを配置するディレクトリのDirectory ディレクティブ内の Options ディレクティブで「FollowSymLinks」（3 章）を設定する必要があります。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all</Directory>33

第 2 章 Apache の設定【実習】マッピングルールの追加

1.

以下のマッピングルールに従うように httpd.conf に Alias ディレクティブを指定します。
httpd.conf の編集後は、変更を反映させるために Apache を再起動してください。

仮想パス

物理パス

/misc/var/www/misc/document/home/doc【/etc/httpd/conf/httpd.conf（以下の内容を追加する）】
Alias /misc "/var/www/misc"<Directory "/var/www/misc">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all</Directory>
Alias /document "/home/doc"<Directory "/home/doc">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all</Directory>【Apache の再起動】# /etc/rc.d/init.d/httpd restart34

2.4 マッピングルールの追加

2.

1．の設定を行った場合において、以下の URL に対応するファイルの物理パスを記入します。

(1) http://stationX.example.com/misc/top.html(2) http://stationX.example.com/document/(3) http://stationX.example.com/document/section1/man.html

3.

/tmp/data ディレクトリの top.html, index.html, man.html をそれぞれ 2．で解答したディレクトリにコピーします。

(1) http://stationX.example.com/misc/top.html# mkdir /var/www/misc# cp /tmp/data/top.html /var/www/misc/(2) http://stationX.example.com/document/# mkdir /home/doc# cp /tmp/data/index.html /home/doc/(3) http://stationX.example.com/document/section1/man.html# mkdir /home/doc/section1# cp /tmp/data/man.html /home/doc/section1/

4.

ブラウザから 2．で示した各 URL にアクセスし、自分がコピーしたファイルが表示されることを確認します。

35