電子書籍の厳選無料作品が豊富!

apacheのバーチャルホストを次のように2つ設定しました。
<VirtualHost *:80>
ServerAdmin admin@hogehoge.co.jp
DocumentRoot /www/hogehoge
ServerName hogehoge.co.jp
</VirtualHost>

<VirtualHost *:80>
ServerAdmin admin@umauma.co.jp
DocumentRoot /www/umauma
ServerName hogehoge.co.jp
</VirtualHost>

上記でそれぞれ
http://hogehoge.co.jp/
http://umauma.co.jp/
にアクセスできるようになりました。

そこで、それぞれにサブディレクトリ
http://hogehoge.co.jp/web1/
http://umauma.co.jp/web2/
を持たせたいのですが次のようにaliasはどのように設定したらいいのでしょうか?

・hogehoge.co.jpに対する設定
(ttp://hogehoge.co.jp/web1/にアクセスできました)
Alias /web1 "/www/hogehoge/web1"
<Directory "/www/hogehoge/web1">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

・umauma.co.jpに対する設定?(これはダメでした)
Alias umauma/web2 "/www/umauma/web2"
<Directory "/www/umauma/web2">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

このケースはどのように設定するべきでしょうか。

A 回答 (4件)

どう設定してあって、表示されない時のApacheのログにどのようなログが記録されているかまるっきり分かりませんが、


例えば、

<VirtualHost *:80>
ServerAdmin admin@umauma.co.jp
DocumentRoot /www/html/umauma
ServerName umauma.co.jp

Alias /web3 "/www/html/web3"

</VirtualHost>

のような感じのAliasの設定で出来ませんか?
少なくとも、私の環境(Apache 2.2.3/FreeBSD)ではこのような設定で表示出来ています。
    • good
    • 0
この回答へのお礼

回答が遅くなり申し訳ありません。
<VirtualHost>の中でaliasの設定をしたところumauma.co.jpにサブディレクトリとして認識されました!

aliasの設定を<VirtualHost>内に設定してあげないと全てのヴァーチャルホストのサブディレクトリとなってしまうんですね。
これで私の誤った最初の設定でhogehoge.co.jp/web1もumauma.co.jp/web1も同内容が表示されることに納得がいきました。
うまく説明できない質問に丁寧に回答いただきありがとうございました。

お礼日時:2007/01/14 22:06

Leanさんの仰るとおり<VirtualHost>内でaliasの指定をすればそのヴァーチャルホストに対しての仮想ディレクトリが切れるはずです。



Alias umauma/web2 "/​www/umauma/web2"​
<Directory "/​www/umauma/web2">​
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
部分の「Alias umauma/web2 "/​www/umauma/web2"​」だけを<VirtualHost>に移動して確認してみてください。
※複数ある場合は複数行記述できます。

動作しない場合はLeanさんも書いてますが環境とログを!
    • good
    • 0
この回答へのお礼

回答が遅くなり申し訳ありません。

回答通り設定で正しく動作しました。
本当にありがとうございました。

お礼日時:2007/01/14 22:09

><VirtualHost *:80>


>ServerAdmin admin@umauma.co.jp
>DocumentRoot /www/umauma
>ServerName hogehoge.co.jp
></VirtualHost>
上記がumauma.co.jpのバーチャルホストの設定でしょうか?
もしそうなら上記の設定では、http://umauma.co.jp/にはアクセス出来ないと思いますが。

ところで、umauma.co.jpの場合(hogehoge.co.jpも同様)
>Alias umauma/web2 "/www/umauma/web2"
というように/www/umauma/web2ディレクトリをhttp://umauma.co.jp/web2/としてアクセス出来るようにしたいようですが、
>DocumentRoot /www/umauma
としているのだから/www/umauma/web2ディレクトリさえあれば、Aliasディレクティブでどうこうしなくともhttp://umauma.co.jp/web2/でアクセス出来ると思いますが、あえてAliasディレクティブを使用するのは何故でしょうか?

ちなみに、Aliasディレクティブはバーチャルホストの設定(<VirtualHost></VirtualHost>)内でも使用出来るからhttp://umauma.co.jp/web2/でアクセスさせたいディレクトリをumauma.co.jpのバーチャルホストの設定内でAliasディレクティブで
Alias /web2 ディレクトリ
というように設定すればアクセス出来るようになると思いますよ。

Alias ディレクティブ
http://httpd.apache.org/docs/2.0/mod/mod_alias.h …

<Directory> ディレクティブ
http://httpd.apache.org/docs/2.0/mod/core.html#d …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私の説明が少し足りませんでした。
各ページのソースは一箇所で管理したいので全てが
/www/html/hogehoge
/www/html/umauma
/www/html/web1
/www/html/web2
/www/html/web3
といったように同一ディレクトリにおいてあります。

そのページを
hogehogeはhttp://hogehoge.co.jp/
umaumaはhttp://umauma.co.jp/
web1はhttp://hogehoge.co.jp/web1
web2はhttp://hogehoge.co.jp/web2
web3はhttp://umauma.co.jp/web3
といった設定をしたかったのです。

質問の設定でhttp://umauma.co.jp/​にはアクセス出来ないかととのことですが上記のディレクトリ設定で試したところ
http://hogehoge.co.jp/
http://umauma.co.jp/
http://hogehoge.co.jp/web1
http://hogehoge.co.jp/web2
までは正しく動作しました。

http://umauma.co.jp/web3だけが表示できず悩んでいます。
ややこしいのですがもし、設定方法をご存知でしたら回答お願いいたします。

お礼日時:2007/01/13 19:27

自分なら



options +FollowSymLinks

と設定しシンボリックリンクを放り込んでENDかな。
$ ln -s /web1 /www/hogehoge

駆動OSがwindowsだったらシンボリック作れないからこれじゃ無理だけど。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
こんな方法もあるとは知りませんでした。
今回はhttpd.confの設定のみで対応したいと思っているので別の機会に試してみます。

お礼日時:2007/01/13 19:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!