У меня есть проблема, которую я пытался решить с помощью перезаписи URL, но не могу заставить ее действовать так, как я хочу. У меня странный сценарий. Прошу прощения, что этот вопрос не очень хорошо отформатирован, так как мне нужно быстро это понять.
У меня есть два сервера в разных местах. Оба работают под управлением IIS.
Один сервер имеет веб-сайт по умолчанию, на котором размещено множество веб-приложений. Они посещаются с помощью
domain.com/Site1
domain.com/Site2
domain.com/Site3
Другой сервер имеет
new.domain.com/Site1
new. domain.com/Site3
Мне нужен запрос к domain.com/Site1
для автоматического перенаправления на new.domain.com/Site1
- однако у меня не может быть domain.com/Site2
перенаправляет на что угодно, это должно быть правилом для этого конкретного дочернего приложения. Кроме того, любые запросы, например domain.com/Site1/Really/Long/Path ....
следует перенаправить на new.domain. com / Site1 / Really / Long / Path ....
Я много чего пробовал, это моя последняя попытка. Похоже, он ничего не делает, поэтому очевидно, что я чего-то не понимаю:
<rewrite>
<rules>
<rule name="Datacenter Redirect" patternSyntax="Wildcard">
<match url="*domain.com*" />
<action type="Redirect" url="new.domain.com/{R:0}" />
</rule>
</rules>
</rewrite>
Кто-нибудь может указать мне правильное направление? Я в меру знаком с IIS, но не переписываю.
domain.com - это IIS 7.5
Мне не на чем это тестировать, но я считаю, что это должно быть что-то близкое к этому ...
<rewrite>
<rules>
<rule name="Datacenter Redirect" patternSyntax="Wildcard">
<match url="domain.com/([_0-9a-z-]+)" />
<action type="Redirect" url="new.domain.com/{R:1}" />
</rule>
</rules>
</rewrite>
Что R: 1 может быть R: 2, но я ' м не уверен.
Затем вам нужно установить условие, чтобы сделать это только для Site1, если вы не хотите, чтобы это перенаправление происходило с Site2, если я правильно читаю ваш вопрос.