2009-07-21 4 views
5

Я создаю сайт, на котором предприятия смогут зарегистрироваться там, где есть учетная запись, которая должна быть расположена по адресу http://businessname.example.com с изменением «businessname».создание поддоменов при регистрации

Я хочу сделать это на сервере Windows (IIS 7), но не знаю, как это сделать.

+1

Больше подходит для ServerFault, может быть? – Joey

+1

не так уверен ... путь «сервер» (конфигурация iis + скриптинг) намного более проблематичен, чем «стек» (переписывание URL). поэтому, если URL-адрес переписывается, он должен оставаться здесь. – b0x0rz

ответ

3

Прежде всего, вы должны настроить DNS-сервер для разрешения * .example.com на IP-адрес вашего сервера.

Тогда у вас есть два варианта:

  • Каждый раз, когда новый аккаунт создан, вы добавляете его хозяину к конфигурации IIS, поэтому он привязан к директории. Я не уверен, как это сделать программно.
  • Каждый раз, когда запрос отправляется на сервер, вы проверяете хост и перенаправляете клиента на сайт, соответствующий хосту. Он может быть либо явным перенаправлением (клиент приходит на http://businessname.domain.com/ и перенаправляется на http://sites.example.com/businessname/), либо неявным (клиент приходит на http://businessname.example.com/ и внутренне - приложение, расположенное в каталоге, посвященном бизнес-названию, и обрабатывает запрос.
5

через http://forums.asp.net/t/874598.aspx

Если ваш провайдер DNS (т. Е ISP) есть опция "подстановочные" вы можете установить * .mydomain.com -> MyIP

Следующий шаг. Вариант №1 Сделать сценарий, который создает 1 сайт для каждого поддомена в IIS Вариант # 2 Сделать скрипт url_rewrite, который перезаписывает URL-адреса для исправления папки на лету.

вариант 2, вероятно, то, что вы ищете (и настоятельно рекомендуется и предпочтете вариант 1).

подробнее о перезаписи URL на iis7: http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

URL-адрес Rewrite модуль Microsoft для IIS 7.0 предоставляет гибкие правила на основе переписывают двигатель>, который может быть использован для выполнения широкого спектра манипуляций URL задач, в том числе, но не ограничивается:

  • Включение удобного для пользователя и поискового URL с динамическими веб-приложениями;
  • Переписывание URL на основе HTTP-заголовков и переменных сервера;
  • Обработка содержимого веб-сайта;
  • Управление доступом к содержимому веб-сайта на основе URL-сегментов или метаданных запроса.

URL-адрес перезаписи варианта позволяет легко иметь сотни тысяч компаний, их имена могут быть считаны из базы данных и URL Rewrite будет обрабатывать переадресацию. после этого вы можете забыть об этом (по большей части), поскольку он будет продолжать работать и для всех компаний, подписавшихся в будущем.

0

Это включает в себя:

  • Wildcard DNS Mapping
  • Использование API IIS для добавления хостов в домен, например, businessname.domain.com
  • Programatic олицетворения (как код необходим более высокий priveledge использовать API IIS, чем просто NETWORK SERVICE

После того, как вы программно добавить имя хоста отображение подстановочные позволяет ему решать.

опция URL Rewrite будет чище, но с физической области, вы могли бы предложить FTP доступ и другие вещи, как это будет полный домен.

Эндрю

3

G В лучшем случае лучший подход к этому (если это возможно) заключается в том, чтобы не использовать заголовки хостов или отдельные сайты IIS для каждой регистрации. Просто укажите IP-адрес для этого приложения, которое отвечает на все запросы на порт 80 (или любой другой порт, который вы используете), и пусть ваше приложение обнаруживает заголовок узла по запросу. Таким образом, если у вас 1000 подписчиков, вы не получите 1000 «вещей», которые необходимо правильно настроить на уровне ОС/служб.

В качестве альтернативы, если вы просто хотите код, не зная, на каком языке вы смотрите, но смотрите ниже C# ...

http://forums.iis.net/t/1151463.aspx

Смежные вопросы