投稿日:2005年03月13日 作成鷹の巣

No.18536 バーチャルホストを設定していないホストへのアクセス時にもページが表示されてしまう。



バーチャルホストを設定していないホストへのアクセス時にもページが表示されてしまう。

No.18536 投稿時間:2005年03月13日(Sun) 22:30 投稿者名:レモン URL:

バーチャルホストにexample.comとwww.example.comを設定してそれぞれ違うページを表示するようにしています。
<VirtualHost *>
ServerAdmin aaa@example.com
DocumentRoot /home/aaa/
ServerName example.com
</VirtualHost>
<VirtualHost *>
ServerAdmin www@example.com
DocumentRoot /home/www/
ServerName www.example.com
</VirtualHost>
です。
しかし、www2.example.comなどのバーチャルホストを設定していないホストへの
アクセスがあったときもexample.comのページが表示されてしまいます。

example.comやwww.example.com以外のアクセスには特定ページ(ホストが存在しないなど)を
表示するようにするにはどうしたらいいでしょうか?

Red Hat 9
Apache version 2
です。
よろしくお願いします。


DNSサーバーの、Aレコードは。

No.18538 投稿時間:2005年03月13日(Sun) 22:56 投稿者名:武蔵 URL:

> バーチャルホストにexample.comとwww.example.comを設定してそれぞれ違うページを表示するようにしています。
> <VirtualHost *>
> ServerAdmin aaa@example.com
> DocumentRoot /home/aaa/
> ServerName example.com
> </VirtualHost>
> <VirtualHost *>
> ServerAdmin www@example.com
> DocumentRoot /home/www/
> ServerName www.example.com
> </VirtualHost>
> です。
> しかし、www2.example.comなどのバーチャルホストを設定していないホストへの
> アクセスがあったときもexample.comのページが表示されてしまいます。
>
> example.comやwww.example.com以外のアクセスには特定ページ(ホストが存在しないなど)を
> 表示するようにするにはどうしたらいいでしょうか?
>
> Red Hat 9
> Apache version 2
> です。
> よろしくお願いします。

NameVirtualHost 192.168.0.12
<VirtualHost 192.168.0.12:80>
ServerAdmin aaa@example.com
DocumentRoot "/home/aaa"
ServerName example.com
</VirtualHost>
<VirtualHost 192.168.0.12:80>
ServerAdmin www@example.com
DocumentRoot "/home/www"
ServerName www.example.com
</VirtualHost>


>>> example.comやwww.example.com以外のアクセス
>>> には特定ページ(ホストが存在しないなど)を
>>> 表示するようにするにはどうしたらいいでしょうか?
ここが、少し分かりません( サーバーとして色々あるので )
ホストヘッダーが
ww.example.com や wwww.example.com 等にアクセス
が来た時、にエラーページを出すと言う事でしょうか??
そうであれば、DNSサーバーの、Aレコードが現在は恐らく
* A IP.IP.IP.IP
となっているはずなので、ここを
A IP.IP.IP.IP
www A IP.IP.IP.IP
と、すれば良いです!
また、ただ単に、存在しないファイルへのアクセスの時や
CGIエラー等で、自身が指定したページを表示するのであれば
Apache2 のコンパイル時
$ ./configure --enable-negotiation=shared \
--enable-include=shared \
--enable-shared
$ make
# make install

自動的に、DSO にmod_include.so or mod_negotiation.so が
読み込まれるので
#
# Dynamic Shared Object (DSO) Support
# LoadModule foo_module modules/mod_foo.so
#
LoadModule include_module modules/mod_include.so
LoadModule negotiation_module modules/mod_negotiation.so
・・・
・・・
・・・
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<Directory "/home/user/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority ja en cn tw
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 500 /error/error.htm
ErrorDocument 501 /error/error.htm
</IfModule>
</IfModule>
で指定すれば良いです。


バーチャルホストの最初に不特定多数用の設定を書く。

No.18541 投稿時間:2005年03月14日(Mon) 08:55 投稿者名:stranger URL:

> > バーチャルホストにexample.comとwww.example.comを設定してそれぞれ違うページを表示するようにしています。
バーチャルホストの最初に不特定多数用の設定を書けばよいのではないですか


出来ました!

No.18623 投稿時間:2005年03月24日(Thu) 18:25 投稿者名:レモン URL:

武蔵さん、strangerさんありがとうございました。
武蔵さんの方法はちょっと難しかったです。
今回はstrangerさんの方法
> バーチャルホストの最初に不特定多数用の設定を書けばよいのではないですか
を試してみました。

ありがとうございました。


目次掲示板過去ログ目次▲頁先頭