Все равно напишу хоть ответ засчитан из за того что часто путают понятие "поддомен" Правильнее говорить в данном случаи "Хост". Вот если вы захотели msk.www.mydomain.com и spb.www.mydomain.com - тогда можно говорить о поддоменах.
По существу вопроса.
Хотим msk.mydomain.com и spb.mydomain.com
Сначала в DNS прописываем:
msk CNAME mydomain.com
spb CNAME mydomain.com
1. Тяжелый случай.
Делаем для сайтов разные корневые директории /path-to-root/msk и /path-to-root/spb. Получаем 2-а не зависимых сайта, что не удобно в управлении, но можно попробовать сделать с общей базой данных.
2. Технологичнее.
Ссылка (в nginx данный механизм встроен)
С помощью mod_rewrite мы превращаем (ответ от
akelsey):
msk.mydomain.com -> mydomain.com/msk/
spb.mydomain.com -> mydomain.com/spb/
Сайт будет находиться в одной корневой директории. Некоторые CMS могут начать "сходить с ума", но управление будет общим.
3. Еще более или менее технологичнее.
Фронт и Бек Сервера. Делаем по 1 пункту. Фронт отвечает за хосты msk и spb, а бек за управление контентом.
Если да, то это же нужно будет продвигать, как два
С точки зрения SEО это будут разные сайты.