У меня есть ситуация, когда я хочу использовать URL-адрес URL-адреса IIS 8, чтобы указать запросы на обслуживание из одного веб-приложения в другое. Сервисы вызываются приложением iPhone и жестко закодированы в его коде, поэтому по старым причинам URL-адрес www.myownsite.com/iPhone/myService.asmx должен предоставить услугу. Тем не менее, главный веб-сайт www становится все более сложным веб-приложением, трудоемким для развертывания (на самом деле это сайт Telerik Sitefinity), поэтому для упрощения развертывания исправлений ошибок в службах я хотел бы переместить их на отдельный сайт - services.myownsite.com. Будущие приложения будут ссылаться на это напрямую, но мне все равно нужно обслуживать устаревшие, которым нужен адрес www.URL-адрес Rewrite не работает с абсолютными URL-адресами
Эти два сайта размещаются на одном сервере iis и совместно используют IP-адрес, но имеют разные заголовки хостов. Услуга работает нормально при вызове напрямую по адресу
services.myownsite.com/iPhone/myService.asmx
Мое желание состояло в том, чтобы использовать URL Rewrite, чтобы указать www. запросы к услугам. эквивалент.
Вот проблема: я могу заставить URL переписать на работу, но только тогда, когда переписанный URL-адрес является относительным URL-адресом. Я не могу переписать те содержащий HTTP: //
Это скорее раздражает, так как я следовал инструкциям, тесно в этом блоге MSDN, который предположил, что такой подход будет прекрасно http://blogs.msdn.com/b/carlosag/archive/2010/04/02/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx
Вот пример я имею в виду - я попробовал что-то более простое, чтобы понять, как это работает. ниже код успешно переписывает URL в другой относительный URL в том же месте, в этом случае другой сервис
<rule name="Authentication Service" stopProcessing="true">
<match url="iPhone/(.*)" />
<action type="Rewrite" url="/secure/services/anotherservice.asmx" logRewrittenUrl="true" />
</rule>
Однако, если я пытаюсь использовать абсолютный URL - первый шаг на пути к будучи anble изменить URL на другой сайт - он терпит неудачу. Пример ниже
<rule name="Authentication Service" stopProcessing="true">
<match url="iPhone/(.*)" />
<action type="Rewrite" url="http://www.myownsite.com/secure/services/anotherservice.asmx" logRewrittenUrl="true" />
</rule>
То, что я действительно хотел бы, чтобы иметь URL атрибут работать со значениями, как
http://services.myownsite.com/secure/services/anotherservice.asmx.
я могу спокойно использовать регулярные выражения обратные ссылки, чтобы создать переписывания URL-адресов, я просто отрывая мои волосы от того, почему я не могу использовать ничего, кроме относительного URL-адреса в переписывании.
Помогите пожалуйста! Благодаря
Лично я попытался сделать это более простым с 301 переадресацией в IIS. URL Rerwrite обычно предназначен для создания дружественных URL-адресов и сопоставления внешних с внутренними. Не перемещение сайта, что должно быть сделано с 301 переадресацией для обновления ссылок на поисковые системы. –
301 перенаправление не будет работать здесь, потому что приложение iPhone, вызывающее его, недостаточно интеллектуально распознает перенаправление и соответственно меняет свой вызов. –
Независимо от того, хорошо ли подход Andy R или нет, меня все еще интересует зная, как использовать модуль перезаписи IIS для создания правила на основе карты перезаписи, содержащей абсолютные URL-адреса в качестве целей. Я просто получаю HTTP 500. –