えむけいさん、
そうです、これは確信犯です。
そんな冷たいMUSTがあるのかと思って Apache の動作を調べたら、確かに400を返したのでありゃと思いました。
1.0 のブラウザもほとんど Host: を出しますし、その他の動作をtelnetでHost:なしで確認するときいちいち断られても面倒だということでそのままにしてありました。
HTTP/1.1 に反していることはおっしゃる通りなので、そっと直しておきます。
>Host: ヘッダがないか、ホスト名が完全に一致しないと最初のバーチャルホストとみなしてしまいます。
HTTP/1.0ならそれでもかまいませんが、HTTP/1.1ではそれは禁止されていませんでしたか? 今度は間違いのないように【謎】引用すると
| A client MUST include a Host header field in all HTTP/1.1 request
| messages . If the requested URI does not include an Internet host
| name for the service being requested, then the Host header field MUST
| be given with an empty value. An HTTP/1.1 proxy MUST ensure that any
| request message it forwards does contain an appropriate Host header
| field that identifies the service being requested by the proxy. All
| Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request)
| status code to any HTTP/1.1 request message which lacks a Host header
| field.
とMUSTのオンパレードです。
堀川さん、
LAN環境でDNSなどを使っているとするとホスト名のところがFQDNでないといけないはずです。たとえば、aaa.sub.domain.co.jp など。
AN HTTPD のログのオプションでトレースログをオンにして、ブラウザからのリクエストで Host: ヘッダに続くホスト名がどうなっているかを確認してみてください。
Host: ヘッダがないか、ホスト名が完全に一致しないと最初のバーチャルホストとみなしてしまいます。
はじめまして。
とても有り難く使用させて頂いております。
ちょっと質問なんですが、理解不足でバーチャルホストの設定がうまく出来ません。
以下のように設定しています。
<バーチャルホストのタブ>
v aaa *.*.*.* 80 E:\HttpServer\wwwroot\
v bbb *.*.*.* 80 E:\HttpServer\wwwroot\
<一般のタブ>
(ホストaaa) /~aaa --> ドキュメントルート\ aaa
(ホストbbb) /~bbb --> ドキュメントルート\ bbb
それ以外は、どちらのホストも同じ設定です。
状況としては、aaaは正常ですが、bbbが認識されません。
根本的に何か間違ってるのでしょうか?