Я работаю над приложением ASP.NET MVC Multi Tenancy.
Прямо сейчас мне удалось создать динамические подпапки, например, кто-то регистрируется с именем пользователя «bob» и получает следующий веб-сайт:
domain.com/bob
Моя следующая цель - предоставить поддомены: bob.domain.com вместо подпапок.
Я обнаружил, что создавать динамические поддомены с помощью ASP.NET и DNS WMI очень сложно. Есть ли способ сообщить серверу, что он должен перенаправить / перезаписать с bob.domain.com на domain.com/bob?
Вы можете создать запись с подстановочным знаком для * .domain.com, чтобы вам не приходилось создавать запись DNS для каждой новой учетной записи.
Вы также можете добавить привязку IIS с подстановочными знаками, чтобы все для определенного IP-адреса было привязано к этому сайту. Что вам не нужно добавлять тонны заголовков хостов в реальном времени.
Перезапись URL - это один из вариантов выполнения того, что вы просили. Вы можете отслеживать {HTTP_HOST} с шаблоном ^ (^.) +. Domain.com $. Это получит все.domain.com с обратной ссылкой C: 1.
Или другой вариант - просто проверить Request.ServerVariables ["HTTP_HOST"] напрямую из MVC. У вас есть полный доступ к доменному имени из кода, поэтому у вас есть большая гибкость.