Проблемы перезаписи URL в IIS 7.0 с поддоменами, которых нет в IIS 7.5 - PullRequest
0 голосов
/ 14 июля 2011

Я создаю это приложение asp.net, которому требуется пара поддоменов. все они будут использовать одну и ту же кодовую базу, но у меня есть отдельный .aspx для каждого субдомена в его собственной подпапке, как показано ниже:

admin.domain.com -> domain.com/admin
user.domain.com -> domain.com/user
...

все отлично работает на моем устройстве dev (win7, iis 7.5) с использованием следующих правил перезаписи:

<rule name="admin.domain.com" stopProcessing="true">
   <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^admin.domain.com$" />
        <add input="{PATH_INFO}" pattern="^/images/" negate="true" />
        <add input="{PATH_INFO}" pattern="^/handlers/" negate="true" />
        <add input="{PATH_INFO}" pattern="^/aspnet_client/" negate="true" />
        <add input="{PATH_INFO}" pattern="^/webservices/" negate="true" />
        <add input="{URL}" pattern="\.axd$" negate="true" />
      </conditions>
      <action type="Rewrite" url="\admin\{R:0}" />
</rule>

Когда я отправляю свой выпуск в производство, которое работает под управлением Win 2008 R1, на IIS 7.0 переписывается перерыв. Я вижу, что мой тег <form> в источнике страницы указывает на action="admin/", тогда как на 7.5 он указывает на root. Поэтому, когда я публикую свои формы, я получаю 404, так как в каждой перезаписи нет подпапки / admin.

Что я могу сделать, чтобы исправить это? Я хотел бы пропустить обновление до R2 только для того, чтобы это исправить. Могу ли я обновить модуль перезаписи URL самостоятельно? Могу ли я исправить это с помощью другого правила перезаписи?

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 15 июля 2011

Я нашел решение, по какой-то причине в iis 7.0 вы должны добавить следующее, где у вас есть определенная форма. в моем случае это была Page_Load в моей главной странице. надеюсь это поможет.

form1.Action = Request.RawUrl
...