• 締切済み

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

Apacheでvirtualhostの設定をしているのですがうまくいきません。 ホスト:ドキュメントルート v1.hoge.com:/var/www/v1/ v2.hoge.com:/var/www/v2/ v3.hoge.com:/var/www/v3/ です。 設定は <VirtualHost *:80> Servername v1.hoge.com:80 DocumentRoot "/var/www/v1" <Directory "/var/www/v1/"> Options Includes FollowSymLinks ExecCGI </Directory> </VirtualHost> <VirtualHost *:80> Servername v2.hoge.com:80 DocumentRoot "/var/www/v2" <Directory "/var/www/v2/"> Options Includes ExecCGI </Directory> </VirtualHost> <VirtualHost *:80> Servername v3.hoge.com:80 DocumentRoot "/var/www/v3" <Directory "/var/www/v3/"> Options Includes FollowSymLinks </Directory> </VirtualHost> で、三つともv*の部分とOptionsがちがうだけになっています。 http://v1.hoge.com/では普通にアクセスできるのですが、http://v2.hoge.com/http://v3.hoge.com/でアクセスしようとするとなぜか/var/www/v1/foo/index.cgiが表示されます。ただしURLは変わらすhttp://v2.hoge.comのままです。ただしhttp://v2.hoge.com/index.htmlと入力するときちんと表示されます。DirectoryIndexでindex.htmlを指定しても無駄でした。 /v1には/v1/index.htmlと/v1/foo/index.cgi、/v2には/v2/index.html、/v3には/v3/index.htmlだけが入っています。 /etc/hostsとか/etc/hosts.confとか/etc/nsswitch,confなども試しました。DNSは登録してからすでに一か月ほど経過していますのでとっくに浸透していると思いますが、v1を設定した時期とv2,v3を設定した時期は半年ぐらい空いてます。 同様の構成を別のサーバーでも試しましたが、症状は同じでした。まあ両方自分で同じように建てたので同じように間違っているだけかもしれませんが。。。 気持ち悪いのは次の四点です。 1.ドキュメントルートが別のホストになる 2.別のホストのドキュメントルートどころかその下にあるCGIが実行される 3.DirectoryIndexが効かない 4.アクセスがやけに遅い(v1とかは普通の速度) エラーログには何もなし、アクセスログにはhttp://v2.hoge.comにアクセスした記録しかないです。 httpd.confではNameVirtualHost *:80と記述し、DocumentRootはコメントアウトしています。 CentOS 6.5 Apache 2.2.15 です これくらいの情報で十分でしょうか?足りなければお叱りください。 よろしくお願いします。

みんなの回答

回答No.1

どこが原因か、直接はわかりませんでしたが、 こちらでは、 ServerName に:80はつけてません。 あと、子ネストもなしで、 <Directory~~は別セクションに書いてます。 <VirtualHost *:80> ServerAdmin hoge@hoge DocumentRoot /home/ユーザーネーム/public_html/ドメイン ServerName ドメイン ErrorLog /var/log/httpd/ドメイン/error_log CustomLog /var/log/httpd/ドメイン/access_log common HostNameLookups double UseCanonicalName off </VirtualHost> こんな感じにしてます。 あと、ドメインを指定しなかったとき、先頭を見る特性があるので、 一番最初のVirtualHostのみ、警告ページ(ドメイン書いてよ!)用の ページにしてます。 毎日、IPダイレクトで意味不明リクエストするBOTがいますんで、 これと、普通のドメイン付http/1.1を分けるため、エラーログなども分離してますね。

shipyuuki
質問者

補足

なるほどです ところでindex.cgiを削除してみたのですが、いまだにindex.cgiが表示されます。そんなファイルはもうどこにも存在しないのに…。キャッシュの可能性も考えましたが、そのCGIに値を入れるとちゃんと実行されるのです。何を表示していて何を実行しているのでしょう…気持ち悪いです。

関連するQ&A