У меня проблема с перезаписью URL-адреса интегрированного конвейера IIS7.Для моего конкретного сценария мне нужно переписать / перенаправить часть первоначального запроса следующим образом.
Пользователь вводит http://savecontoso.com/files/123456789/somefile.html
в адресную строку браузера.
Пользователь перенаправлен на http://savecontso.com/default.aspx?url=
(результаты url="default.aspx?url={R:1}"
)
В настоящее время это работает, как ожидается, только если я создаю первоначальный запрос как таковой, http://savecontoso.com/default.aspx/files/123456789/somefile.html
.
Я должен отметить, что на сервере нет ни каталога /files/
, ни /123456789/
, ни файла somefile.html
.Мне просто нужно, чтобы весь путь и имя файла были добавлены в строку запроса.
Это мой первый день работы с функциями перенаправления / перезаписи с использованием IIS вместо кода страницы позади, и я огляделся по всему learn.iis.net,Google и т.д. безрезультатно.Я понимаю, что переписывание происходит перед запросами страницы, но по какой-то причине мой конкретный код требует запроса страницы перед запуском перенаправления.
Я подозреваю, что это потому, что я не запускаю условия при первоначальном запросе?
<rewrite>
<rules>
<rule name="1" stopProcessing="true">
<match url="(.*)(/files/\d+/.*html$)" />
<action type="Redirect" redirectType="Permanent" url="default.aspx?url={R:1}" />
</rule>
</rules>
</rewrite>