Named BaseのVirtual Hostを利用し、複数のドメインにてApacheを稼動させているのですが、
例えば以下のような状態にて
ドメイン1 hoge.com
ドメイン2 hoge.net
hoge.com hoge.netへのアクセスは正常。
hoge.comをnslookup等し、IP直でアクセスしてきたとき
404エラーを出したり
aaa.hoge.com や aaa.hoge.net等登録していないVirtualHost名で
アクセスしてきたりした場合に404エラーを出すことはできないでしょうか?
(DNS側には*指定で登録してあるのでaaa.hoge.comでもこちらのIPが引かれアクセスしてくきます)
> Named BaseのVirtual Hostを利用し、複数のドメインにてApacheを稼動させているのですが、
>
> 例えば以下のような状態にて
>
> ドメイン1 hoge.com
> ドメイン2 hoge.net
> hoge.com hoge.netへのアクセスは正常。
>
> hoge.comをnslookup等し、IP直でアクセスしてきたとき
> 404エラーを出したり
> aaa.hoge.com や aaa.hoge.net等登録していないVirtualHost名で
> アクセスしてきたりした場合に404エラーを出すことはできないでしょうか?
>
> (DNS側には*指定で登録してあるのでaaa.hoge.comでもこちらのIPが引かれアクセスしてくきます)
Rewriteを使えばできます。「apache rewrite」でググレば Apaheのドキュメント(英語)やその和訳等があるので、いろいろ研究されてはどうですか?
OSやデストリがわかりませんが、上記ならrewriteモジュールの組み込み(DSOの場合)と下記でできるはずです。RewriteCond行の( )内にOKとするホスト名を「|」で区切って列記するだけです。テスト中はうまく動作していないと勘違いしやすいのでキャッシュに注意が必要です。RewriteLogLevel 1にすると書き換え動作が動いているか確認しやすいと思います。終わったら戻さないとすごいログがでます。
LoadModule rewrite_module modules/mod_rewrite.so #コメントアウト(行頭の#)を外す。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteCond %{SERVER_NAME} !^(hoge.com|hoge.net)
RewriteRule /.* /error/HTTP_NOT_FOUND.html.var
</IfModule>
> > Named BaseのVirtual Hostを利用し、複数のドメインにてApacheを稼動させているのですが、
> >
> > 例えば以下のような状態にて
> >
> > ドメイン1 hoge.com
> > ドメイン2 hoge.net
> > hoge.com hoge.netへのアクセスは正常。
> >
> > hoge.comをnslookup等し、IP直でアクセスしてきたとき
> > 404エラーを出したり
> > aaa.hoge.com や aaa.hoge.net等登録していないVirtualHost名で
> > アクセスしてきたりした場合に404エラーを出すことはできないでしょうか?
> >
> > (DNS側には*指定で登録してあるのでaaa.hoge.comでもこちらのIPが引かれアクセスしてくきます)
>
> Rewriteを使えばできます。「apache rewrite」でググレば Apaheのドキュメント(英語)やその和訳等があるので、いろいろ研究されてはどうですか?
> OSやデストリがわかりませんが、上記ならrewriteモジュールの組み込み(DSOの場合)と下記でできるはずです。RewriteCond行の( )内にOKとするホスト名を「|」で区切って列記するだけです。テスト中はうまく動作していないと勘違いしやすいのでキャッシュに注意が必要です。RewriteLogLevel 1にすると書き換え動作が動いているか確認しやすいと思います。終わったら戻さないとすごいログがでます。
>
>
> LoadModule rewrite_module modules/mod_rewrite.so #コメントアウト(行頭の#)を外す。
>
> <IfModule mod_rewrite.c>
> RewriteEngine On
> RewriteLog "logs/rewrite_log"
> RewriteLogLevel 0
>
> RewriteCond %{SERVER_NAME} !^(hoge.com|hoge.net)
> RewriteRule /.* /error/HTTP_NOT_FOUND.html.var
> </IfModule>
ありがとうございました。無事解決しました。