Я использую Apache, и у меня есть DNS-запись CNAME для
sub2.sub1.domain1.com, который указывает на sub1.domain1.com
И у меня есть запись DNS для
sub1.domain1.com, указывающий на IP.
Затем в моем файле httpd.conf у меня есть:
<VirtualHost *:80>
ServerName www.domain1.com
DocumentRoot /domain1/www
</VirtualHost>
<VirtualHost *:80>
ServerName sub1.domain.com
DocumentRoot /domain1/sub1/www
</VirtualHost>
Тем не менее, мне кажется, что мне чего-то не хватает, например, когда вы посещаете sub2.sub1.domain1.com, он показывает вам страницу для domain1.com. Когда вы посещаете sub1.domain1.com, он показывает правильную страницу для sub1.
Хотя у вас есть запись CNAME, указывающая sub2.sub1.domain1.com на правильный сервер, сервер apache может обслуживать несколько веб-сайтов.
Когда приходит http-запрос, apache проверяет URL-адрес на Название сервера чтобы определить, какой веб-сайт обслуживать. Если есть какие-либо дополнительные имена, указывающие на тот же веб-сайт, вы помещаете их в ServerAlias.
В вашем httpd.conf вам нужно добавить ServerAlias для sub2.sub1.domain1.com
<VirtualHost *:80>
ServerName sub1.domain.com
ServerAlias sub2.sub1.domain1.com
DocumentRoot /domain1/sub1/www
</VirtualHost>
Кроме того, первый VirtualHost объявление в httpd.conf используется как дефолт. Когда приходит http-запрос и не соответствует ни одному Название сервера и ServerAlias, то дефолт сайт обслуживается.