Используя URL Переписывают, который упомянул Sam Cogen, который автоматически установлен в любой скидке учетная запись asp.net (и который может быть установлен на любом сервере IIS7), я создал переписать правило решить мою проблему.
Примечание: Штат со скидкой, в asp.net было сказано, что переписать правило является единственным способом выполнить это на одной из их учетных записей помимо программного сценария. Скидка, которую asp.net обеспечивает программному (я говорю, что взлом) сценарий, который направит субдомены к подкаталогам, но мне были нужны больше гибкости и производительности, чем такое решение, обеспечит.
Если IIS 7 переписывает модуль, не установлен, необходимо будет найти модуль (вероятно, в веб-сайте IIS Microsoft) и затем установить его.
После того как переписать модуль установлен в IIS, подключении к нему с помощью менеджера по IIS.
Удостоверьтесь, что у Вас есть корневой уровень веб-сайта, выбранного при создании правила (а не подкаталог, где приложение), это очень важно, потому что это привело меня к критической ошибке, которая потратила впустую некоторое время. Переписать правила могут быть применены на разных уровнях в иерархии каталогов, вызвав правило иметь различные эффекты в зависимости от того, где в иерархии каталогов правило расположено (я полагаю, что это вносит изменение в локальный web.config, когда правило создается, но я не не торопился для подтверждения этого). Это также означает, что Вы не видите набор правил в других каталогах при изменении правил в другом каталоге.
Выбор корневого каталога для переписывания важен, потому что Вы хотите перенаправить все URL субдомена к URL подкаталога (кроме, уже направленных к подкаталогу).
Выбирание корневого каталога сайта, дважды щелкает по URL, переписывают, для ввода области перезаписи. Затем нажмите Add Rule и создайте Пустое Правило.
Для соответствия
Использование шаблона: ^(?!serverone/)(.*)
и набор
Требуемый URL: к 'Соответствиям шаблон', и
Использование для регулярных выражений.
Это направит любой URL через это правило, игнорируя тех, которые уже направляются к корректному субдомену, но мы хотим ограничить переписывание в маршрутизации материала, который не имеет субдомена в URL, поэтому затем мы добавим условие.
Только требуется одно условие, с помощью {HTTP_HOST}
для входа и шаблона для него: s1.site.com
Наконец для Действия, Вам нужен 'Тип Действия' 'Rewrite', который добавляет значение строки запроса.
Переписать URL должен быть: serverone/{R:0}
.
Я не уверен, как дисконтная панель управления aps.net работает, но если бы Вы делали это непосредственно в IIS, то необходимо создать отдельный сайт для каждого приложения, не обязательно каждого субдомена, если существует больше чем один субдомен на приложение, то настроен это с привязкой для каждого URL субдоменов. Корень каждого сайта затем был бы Вашей папкой приложений. Вы не можете только использовать подпапку основного сайта, поскольку Вы не можете добавить привязку к папке.
С другой стороны, можно использовать URL, Переписывают для Перезаписи запроса на site.com/serverone на s1.site.com