Использование VirtualHost по умолчанию без www. на домене

Использование VirtualHost по умолчанию без www. на домене

Я использую 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

Но я бы предложил установить ServerNameand 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если их нужно скорректировать, а затем перезагрузите машину. Когда она снова загрузится, попробуйте и посмотрите, что произойдет. Теперь должно быть нормально.

Связанный контент