Фактически я работаю над приложением SaaS, в котором я хочу предоставить подписчикам свой собственный поддомен для доступа к их информации (в коде я буду извлекать первую часть поддомена для использования в качестве имени их учетной записи), аналогично тому, как Basecamp et all работай. Например, у подписчика может быть URL acme.myapp.com
. Поскольку подписчиков могут быть сотни, я не могу просто добавить разные заголовки хоста для каждого клиента.
Apache позволяет вам указать подстановочный знак (*) и перенаправит acme.myapp.com на myapp.com, где я могу выполнить свою логику для получения имени учетной записи пользователя на основе поддомена. Я не уверен, как это сделать автоматически с помощью IIS (давно мне не приходилось настраивать IIS для чего-либо, кроме одного веб-сайта).
Кроме того, есть ли какие-то особые положения, которые мне нужны для этого? Когда мое приложение будет готово и я буду искать для него хостинг, понадобится ли мне что-нибудь конкретное от хоста, что ограничит мой выбор? Я также рассматривал возможность использования Windows Azure, чтобы воспользоваться преимуществами облака - смогу ли я сделать это, если выберу Azure в качестве хостинговой платформы?
Как сказал Джо, вы бы сделали это больше с DNS, чем с IIS.
IIS не поддерживает домены с подстановочными знаками * .domain.com. Вместо этого вы должны создать сайт в IIS, у которого нет заголовков хоста, поэтому он будет отвечать на все запросы с этого IP-адреса, которые не были получены другими сайтами, у которых были заголовки хоста. Затем вы должны создать свою запись DNS с подстановочными знаками, чтобы указать на IP-адрес этого сайта, и все готово.
Если я правильно вас понял, вы можете использовать для этого DNS. Предполагая, что myapp.com является вашим доменом, тогда в зоне DNS myapp.com просто добавьте запись CNAME (acme), которая указывает на запись A для вашего веб-сайта (www.myapp.com). Это отправит их на ваш основной веб-сайт, где ваш код возьмет на себя управление и перенаправит их в соответствующее приложение.
Вы также можете использовать подстановочную запись DNS (*), которая будет улавливать все, например acme.myapp.com, joeschmoe.myapp.com и т. Д.