2012-02-07 6 views
1

私はこれについての解決策を探そうとしましたが、私の答えを得るために質問をフレームしてください。Apacheを(例)http://192.168.1.1で拒否して、http://www.example.comのような仮想ホストのみを受け入れるように設定する方法

私のサーバーに適切なURL(http://www.example.comのようなもの)を許可しながら、私のサーバーをIP URL(http://192.168.1.1 - 任意のパブリックIPアドレス)でプロービングするのをブロックする必要があります。私が感じる

は、4つの方法があります:。

  1. は、「IPのURLをトラップすることをhttpd.confファイル内の仮想ホストエントリを作成します

  2. は、IPのURLをそれも書き換えるためのmod_rewriteのエントリを作成します。 「トラップ」に。

  3. IPのURLを検出し、それらの接続要求をドロップすることができ、iptablesのエントリを作成します。

  4. 何もできないので何もしないでください。

これを処理する最も良い方法は、3つのうちどれを選択するか(または推奨する方法)ですか。どのように私はそれを行うwoudl?

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

答えて

1

非常に単純です。非常に最初のバーチャルホストとして次のように設定します/パス/に/ルート/サイトの内部

NameVirtualHost *:80 

<VirtualHost *:80> 
<Directory "/path/to/root/site"> 
    AllowOverride All 
    Options None 
    Options Indexes FollowSymLinks Includes ExecCGI 
    Order deny,allow 
    Deny from none 
    Allow from all 
    php_admin_value open_basedir /path/to/root/site 
</Directory> 
    ServerAdmin [email protected] 
    DocumentRoot "/path/to/root/site" 
    ServerName NX-DOMAIN 
</VirtualHost> 

、単に「404が見つかりません」と言って、単純なの.htmlファイルまたは何かを作るかさえでポップ。 htaccessリダイレクトまたは何か。

あなたの本当のサイトの場合

、第二、これらを追加する第三、第四、等...仮想ホスト:

<VirtualHost *:80> 
<Directory "/path/to/real/site1/"> 
    AllowOverride All 
    Options Indexes FollowSymLinks Includes ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 
    ServerAdmin [email protected] 
    DocumentRoot "/path/to/real/site1" 
    ServerName www.domain.com 
    ServerAlias domain.com 
    php_admin_value open_basedir /path/to/real/site1 
</VirtualHost> 

そのように、誰かが指している場合、あなたは(ホストしていないドメインへのリクエスト自分のドメインに自分のドメインや誰かが生のIPを訪問)は、カスタムエラーページにダンプされます。

これが役に立ちます。

関連する問題