ドメインに www. のないデフォルトの VirtualHost を使用する

ドメインに www. のないデフォルトの VirtualHost を使用する

私はホスト名が設定された Debian 8.1 64 ビットを使用しているので、ログインは です[email protected]。Apache2、PHP などをインストールし、VirtualHost も設定しました。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com

    ServerAdmin admin@localhost
    DocumentRoot /var/www/example.com/
    <Directory "/var/www/example.com/">
        Options FollowSymLinks
        AllowOverride All
    </Directory>

</VirtualHost>

DNS設定:

example.com     1800    A       111.111.111.111
example.com     1800    MX  1   example.com
*.example.com   1800    CNAME   example.com

に行くとhttp://example.com//var/www/html/インデックスが読み込まれ、 に行くとhttp://www.example.com/うまく動作します。 編集をいろいろ試しましたが、何も機能しません。 これはサーバーのホスト名に関連している可能性がありますか? 何か考えはありますか?

答え1

ServerName設定方法は次のとおりですServerAlias:

ServerName example.com
ServerAlias *.example.com

ServerNameただし、次のように設定することをお勧めしますServerAlias

ServerName www.example.com
ServerAlias www example.* www.example.*

所有する共通ドメインに複数のトップレベルドメインが設定されている場合、ワイルドカードを使用するのが好きです。ただし、バージョンしかない場合は、.com次のように設定できます。

ServerName www.example.com
ServerAlias www example.com www.example.com

その後、Apache を再起動すると、すべて正常になるはずです。

sudo service apache2 restart

しかし、これがホスト名の問題であると思われる場合は、次の操作を行ってサーバーのホスト名を確認または変更できます。まず、次のようにホスト名を取得します。

hostname

ホスト名を変更する場合は、次のコマンドを実行します。

sudo hostname example.com

また、次のようなsysctl設定を確認してくださいkernel.hostname

sysctl kernel.hostname

変更する必要がある場合は、次のようにします。

sudo sysctl kernel.hostname=example.com

それが終わったら、ホスト名に関連付けられた設定が調整されている/etc/hostsことを確認し、必要に応じてマシンを再起動します。マシンが再び起動したら、試してみて、何が起こるかを確認します。これで問題ないはずです。

関連情報