Подтвердить что ты не робот

Поддомены подстановочных знаков в IIS7. Можно ли сделать их такими, как в Apache?

Можно ли настроить IIS7 для достижения той же функциональности, что и Apache в отношении подстановочных доменов? Я заинтересован в маршрутизации пользователей в веб-приложении ASP.NET на основе пользователя субдомена, используемого в URL.

Что-то вроде описанного здесь:

http://steinsoft.net/index.php?site=programming/articles/apachewildcarddomain

Спасибо

4b9b3361

Ответ 1

Ответ: Нет, IIS7 (по-прежнему) не поддерживает подстановочные имена хостов (см. this). Если вы хотите обслуживать несколько доменов на одном веб-сайте, единственным обходным решением на данный момент, как и предлагается, является использование выделенного IP-адреса и выполнение его с помощью DNS, который поддерживает подстановочные знаки.

Обновление в 2013 году

Для полноты IIS8 еще не имеет этой функции.

Обновление 2016

Наконец, IIS 10 в Windows 2016 поддерживает поддомены подстановочных знаков.

Ответ 2

Поддерживает ли IIS подстановочный заголовок узла? Могу ли я захватить и перенаправить *.mydomain.com на один веб-сайт?

Ответ: Да/Нет. Да, потому что вы возможность перенаправления *.mydomain.com на один Веб-сайт. Нет, потому что магия в DNS, а не IIS.

Вот как вы это делаете:
В IIS MMC, настроить веб-сайт без хоста заголовок, затем назначьте IP-адрес сайт. (если у вас есть один IP-адрес в поле, то вы можете пропустить это). При этом веб-сайт будет привязан к конкретный IP-адрес и будет слушать все HTTP-запросы отправляются на IP-адрес, и вы выполняются:)

Следующий шаг - убедиться, что ваше имя разрешение работает для шаблона запрос и ответ с правильным IP-адресом адрес. Если вы используете Microsoft DNS службы, это не позволит вам создавать a '*' Запись (если вы уже создал доменную зону в DNS MMC), вам необходимо сделать следующее:

  • Перейдите к %windir%\system32\dns\
  • Найдите файл зоны. Э.Г.
    mydomain.com.dns, откройте его с помощью Блокнота
  • Добавить запись. Э.Г.
     * A IP.IP.IP.IP
  • Сохранить файл данных зоны
  • Обновить данные зоны в DNS MMC.

Обратите внимание, что, делая это, все * ответ на IP, который вы настроен ранее. Например. abc.mydomain.com, www.mydomain.com, K2k.mydomain.com и т.д.

Чтобы убедиться, что он работает, попробуйте выполнить ping утилита ping (insert anything here).mydomain.com и вы должны получить ответы от IP.IP.IP.IP

Затем попробуйте просмотреть, http://(вставить ничего здесь).mydomain.com/, вы должен получить ту же веб-страницу, что вы настроены.

Источник

Ответ 3

Вы не можете создать подстановочный знак (*) Запись в Microsoft DNS, но вы можете создать подстановочный знак CNAME. Если все, что вы пытаетесь сделать, - это перенаправить все поддомены на определенный IP-адрес, это сработает. Например, если у вас есть запись A для www.mydomain.com, вы можете добавить запись CNAME для *.mydomain.com и указать, что на www.mydomain.com. Имя хоста в заголовке запроса все равно будет субдоменом, поэтому ваше веб-приложение должно уметь его поймать и обрабатывать, если хотите.

Ответ 4

Вы можете использовать IIS, если вы используете установщик Web Platform (http://www.microsoft.com/web/downloads/platform.aspx) и установите модуль URL Rewrite. Если вы добавите запись "A", например "*.example.com", это позволит отправлять все поддомены на ваш сервер IIS. На сервере IIS вы просто добавляете правило перезаписи URL-адресов на веб-сайт по умолчанию, чтобы делать все, что пожелаете, например перенаправление на другой URL-адрес. Когда пользователь вводит, скажем, "xyz.example.com", вы можете перенаправить на "example.com" и указать все неизвестные поддомены в корневой домен. Шаги:

  • Установите установщик веб-платформы: http://www.microsoft.com/web/downloads/platform.aspx

    Запустите его, найдите "URL Rewrite" и установите его.

  • Перейдите на веб-сайт по умолчанию и откройте "URL Rewrite".

  • Нажмите "Добавить правило" с правой стороны.

  • Назовите правило и установите следующее:

    Запрошенный URL: соответствует шаблону

    Использование: регулярные выражения

    Выкройка: (. *)

    Логическая группировка: соответствие всем

  • Добавьте новое условие (нажмите кнопку "Добавить.." ) и установите:

    Условие Вход: {CACHE_URL}

    Проверьте, соответствует ли строка ввода: соответствует шаблону

    Шаблон (при необходимости изменить): (http | https)://(. *?) \.rootdomain \.tld

    Нажмите [OK].

  • Теперь прокрутите вниз до действия и установите:

    Тип действия: Перенаправление

    URL-адрес перенаправления (при необходимости изменить): {C: 1}://rootdomain.tld {R: 0}

"{C: #}" и "{R: #}" появляются из тестовых окон, когда вы нажимаете кнопки "Test pattern" рядом с записями шаблонов регулярных выражений. Вы можете сопоставить часть значения сервера и повторно использовать его позже.

Кроме того, вы можете проверить этот совет при передаче HTTP/HTTPS в URL-адресе ( "{C: 1}" на шаге 6 выше): http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action

Ответ 5

Обновление 2: ссылка не работает, обновляется до IIS 10, теперь она поддерживает подстановочные знаки.

ОБНОВЛЕНИЕ: Это работает некоторое время, через некоторое время я обрушился несколькими запросами. Я бы не рекомендовал этот метод.

Убедитесь, что ваши записи DNS настроены правильно (запись CNAME * → @), и она будет работать безупречно. Протестировано несколькими доменами.

Теперь ссылка сломана http://pzxc.com/apache-style-wildcard-hostname-rewrite-rules-in-iis