У меня есть веб-сайт, на который я хочу попасть, используя http://mydomain.com
так же как http://www.mydomain.com
Недавно я настроил свои серверы hostname
к mydomain.com
Я установил apache2 по умолчанию из репозиториев ubuntu 12.04 и настроил следующий файл конфигурации в /etc/apache2/sites-enabled/mydomain.com
<VirtualHost *:80>
ServerName mydomain.de
ServerAlias www.mydomain.de
DocumentRoot /home/mydomain/public
</VirtualHost>
<Directory /home/mydomain/public>
AllowOverride All
</Directory>
Теперь, если я запрошу http://www.mydomain.com
все работает, но если я запрошу http://www.mydomain.com
Я получаю по умолчанию страницу приветствия apache "это работает".
Если я сделаю префикс своего файла конфигурации таким образом, чтобы он попал в список даже до 000-default
vhost, вот так это выглядит:
ls -lha /etc/apache2/sites-enabled/
total 8.0K
drwxr-xr-x 2 root root 4.0K Jul 6 18:46 .
drwxr-xr-x 7 root root 4.0K Oct 5 2012 ..
lrwxrwxrwx 1 root root 33 Jul 6 18:45 000-0mydomain -> /home/mydomain/apache2.conf
lrwxrwxrwx 1 root root 26 Jul 6 18:29 000-default -> ../sites-available/default
это действительно работает.
Однако я не знаю, хорошая ли это идея и почему это вообще происходит. Это также работает, когда имя хоста сервера не соответствует имени домена!
Я думаю, что apache каким-то образом не может различать запросы без заголовка хоста и запросы с заголовком хоста, который совпадает с именем хоста ...
Что я могу с этим поделать? Как я могу это сделать правильно?
Я думаю изменить имя, чтобы мой vhost ocmes eben до значения по умолчанию, который не назван 000-default
просто раздражать людей - не лучшая идея ...
Когда вы печатаете hostname -f
, это и ваш домен? Я думаю, что vhost по умолчанию отвечает на доменное имя машины. Я бы посоветовал установить для машины другое имя хоста, потому что имя, которое вы используете для его администрирования, должно отличаться от имени веб-сайта, который на нем работает. В противном случае вы не сможете делать такие вещи, как временный другой адрес веб-сайта и отображение сообщения об обслуживании.
Если вы не хотите этого делать, вы можете настроить фиктивное имя сервера в 000-default.