0

私は 2 つのドメイン名を所有しています。

  • domain.com
  • domain.net

…そして、いくつかのことを達成するために vhost コードを最適にセットアップする方法を判断できません。

  1. 訪問者がこれら 2 つのドメイン名のいずれかを入力すると、domain.net
  2. 訪問者がこれら 2 つのドメイン名のいずれかを先頭に www を付けて入力した場合でもdomain.net( www なしで)に移動します。
  3. ファイル パスを所定の位置に保持するため、次のようにします。
    • domain.com/file.phpに行きますdomain.net/file.php
    • www.domain.com/deeper/path/に行きますdomain.net/deeper/path/
    • www.domain.netに行きますdomain.net
    • …等々

この Q/A エントリで、私が必要なものだと信じていることを見ましたが、100% 確実ではありません。これがまさに私が必要とすることを誰かが確認(または修正)できますか:

<VirtualHost *:80>
    ServerName  domain.net
    ServerAlias www.domain.net domain.com www.domain.com
    (the rest of the settings here)
</VirtualHost>

…そんなに簡単ですか?

4

1 に答える 1

3

そのままで、仮想ホストはエイリアスを受け入れ、正しいファイルで応答しますが、リクエストをリダイレクトしません。正規のサブドメインが必要な場合は、いくつかの書き換えルールを追加することをお勧めします:

<VirtualHost *:80>
    ServerName  domain.net
    ServerAlias www.domain.net domain.com www.domain.com

    RewriteEngine On
    RewriteCond %{HTTP_HOST}    !^domain\.net [NC]
    RewriteCond %{HTTP_HOST}    !^$
    RewriteRule ^/(.*)  http://domain.net/$1 [L,R=301]

    (the rest of the settings here)
</VirtualHost>

詳細については、 http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#canonicalhostを確認してください。

于 2012-04-18T08:44:21.503 に答える