Согласно протоколу http 1.1, клиент всегда указывает имя при запросе get. Там целый хидер есть на этот случай. Так вот, http-сервер смотрит в запрос и сопоставляет его с тем конфигом, который у него есть, отдавая содержимое по мере совпадения. Не совпало? Так и скажет - такие тут не живут.
Так же, в nginx, например, есть параметр default, который будет отдавать на любое имя, у которого нет конфига, дефолтный конфиг с дефолтным содержимым. Не совпало? Ок, вот вам дефолт.
Помимо этого, есть DNS, где есть разные записи. Я бы с этого начал.