Top過去ログ目次掲示板

作成日:2005年09月19日 作成:おやじ
掲示板で過去に質問された内容です。

No.5185 Apacheについて。


No.5185 投稿時間:2005年09月19日(Mon) 13:03 投稿者名:くま URL:
タイトル:Apacheについて。

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が引かれアクセスしてくきます)


No.5186 投稿時間:2005年09月19日(Mon) 15:38 投稿者名:おやじ URL:
タイトル:rewriteでできます。

> 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>


No.5202 投稿時間:2005年09月23日(Fri) 01:51 投稿者名:くま URL:
タイトル:Re: rewriteでできます。

> > 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>


ありがとうございました。無事解決しました。



掲示板▲頁先頭