Как настроить перезапись URL-адресов на IIS7, чтобы несколько поддоменов перенаправляли на нужный веб-сайт? - PullRequest
1 голос
/ 22 марта 2011

Я задал предыдущий вопрос о том, как сделать так, чтобы несколько поддоменов указывали на один и тот же сайт; Ответ, который я принял, заключался в использовании URL Rewrite.

Cool. Но я не могу понять, как работает URL Rewrite, и считаю себя относительно умным парнем. | -) Много вопросов ...

  • Каждый клиент (а их будут сотни, если не тысячи) получает свой собственный поддомен, например, customer1.mydomain.com, cooldude.mydomain.com и т. Д. Регулярное выражение будет (.+)\.mydomain\.com, и все эти URL должны быть перенаправлены на веб-сайт IIS, который я назвал customers.mydomain.com. Все примеры, которые я нашел в URL Rewrite, касаются ссылок на документы, например, mydomain.com/thing.aspx?id=123 меняется на mydomain.com/thing/123, что меня не особо интересует. Вот подсказка: как вы можете видеть на картинке ниже, столбец «Вход» всегда говорит «URL-путь после '/'» - но это не так. Кажется, нет никакого способа изменить это.

URL Rewrite pic

  • Я предполагаю, что правило перезаписи должно быть размещено на веб-сайте по умолчанию, но я хочу, чтобы правило перенаправляло на веб-сайт customers.mydomain.com. Как принудительно выполнить перенаправление на определенный веб-сайт таким образом, чтобы я по-прежнему мог видеть имя субдомена (которое определяет клиентский сайт, на который я вхожу)?

Ответы [ 2 ]

3 голосов
/ 08 мая 2012

Я думаю, что вы хотите сделать, чтобы заставить это работать, добавить условие ввода в ваше правило перезаписи.Вы можете прочитать об этом в разделе «Ссылка на карту перезаписи из правила перезаписи» по адресу http://learn.iis.net/page.aspx/469/using-rewrite-maps-in-url-rewrite-module/.

Вот пример, который, я думаю, будет работать для вас:

<rule name="My Rule">
    <match url="(.+)?" negate="false" />
    <action type="Redirect" url="http://{C:1}.mydomain.com/{R:0}" />
    <conditions>
    <add input="{HTTP_HOST}" pattern="(.+)\.mydomain\.com" />
    </conditions>
</rule>
0 голосов
/ 22 апреля 2011

Я добавил ответ на ваш оригинальный вопрос, который, в свою очередь, отвечает и на этот. Я думаю, что для того, что вы пытаетесь сделать, чтение заголовка узла проще, чем перенаправление.

Как создать поддомен для IIS7 программно?

...