Standardmäßigen VirtualHost ohne www. in der Domäne verwenden

Standardmäßigen VirtualHost ohne www. in der Domäne verwenden

Ich verwende Debian 8.1 64-Bit mit einem festgelegten Hostnamen, daher lautet mein Login [email protected]. Ich habe Apache2, PHP usw. installiert und auch einen VirtualHost eingerichtet:

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

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

Wenn ich gehe http://example.com/, wird /var/www/html/der Index geladen, und wenn ich gehe, http://www.example.com/funktioniert es einwandfrei. Ich habe so viele Änderungen versucht, aber nichts hat funktioniert. Könnte dies mit dem Hostnamen meines Servers zusammenhängen? Irgendeine Idee?

Antwort1

So haben Sie ServerNamees ServerAliaseingerichtet:

ServerName example.com
ServerAlias *.example.com

ServerNameIch würde aber vorschlagen, und ServerAliasfolgendermaßen einzustellen :

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

Ich verwende gerne einen Platzhalter, wenn ich mehrere Top-Level-Domains für eine gemeinsame Domain festgelegt habe, die mir gehört. Wenn Sie jedoch nur die .comVersion haben, können Sie sie einfach wie folgt festlegen:

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

Starten Sie dann Apache neu und alles sollte gut sein:

sudo service apache2 restart

Wenn Sie jedoch glauben, dass es sich um ein Hostnamenproblem handelt, können Sie den Hostnamen des Servers wie folgt bestätigen oder ändern. Rufen Sie zunächst den Hostnamen wie folgt ab:

hostname

Und wenn Sie diesen Hostnamen ändern möchten, führen Sie einfach diesen Befehl aus:

sudo hostname example.com

Überprüfen Sie außerdem die sysctlEinstellungen wie kernel.hostnamefolgt:

sysctl kernel.hostname

Und wenn das geändert werden muss, gehen Sie folgendermaßen vor:

sudo sysctl kernel.hostname=example.com

Stellen Sie anschließend sicher, dass alle mit Ihrem Hostnamen verbundenen Einstellungen /etc/hostsggf. angepasst werden, und starten Sie den Computer dann neu. Wenn er wieder hochfährt, probieren Sie ihn aus und sehen Sie, was passiert. Jetzt sollte alles in Ordnung sein.

verwandte Informationen