• ベストアンサー

apacheのバーチャルホスト設定について

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> このケースはどのように設定するべきでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

どう設定してあって、表示されない時の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)ではこのような設定で表示出来ています。

umatase2006
質問者

お礼

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

その他の回答 (3)

  • 20000km
  • ベストアンサー率50% (1/2)
回答No.4

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さんも書いてますが環境とログを!

umatase2006
質問者

お礼

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

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

><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.html#alias <Directory> ディレクティブ http://httpd.apache.org/docs/2.0/mod/core.html#directory

umatase2006
質問者

お礼

回答ありがとうございます。 私の説明が少し足りませんでした。 各ページのソースは一箇所で管理したいので全てが /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だけが表示できず悩んでいます。 ややこしいのですがもし、設定方法をご存知でしたら回答お願いいたします。

noname#39970
noname#39970
回答No.1

自分なら options +FollowSymLinks と設定しシンボリックリンクを放り込んでENDかな。 $ ln -s /web1 /www/hogehoge 駆動OSがwindowsだったらシンボリック作れないからこれじゃ無理だけど。

umatase2006
質問者

お礼

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

関連するQ&A