У меня возникла проблема с перезаписью URL-адреса интегрированного конвейера IIS7. Для моего конкретного сценария мне нужно переписать/перенаправить часть исходного запроса следующим образом.
Пользователь вводит
https://savecontoso.com/files/123456789/somefile.html
в адресную строку браузера.Пользователь перенаправлен на
https://savecontso.com/default.aspx?url=
(результатыurl="default.aspx?url={R:1}"
)
В настоящее время это работает, как и ожидалось, только если я создаю первоначальный запрос как таковой, https://savecontoso.com/default.aspx/files/123456789/somefile.html
.
Я должен отметить, что на сервере нет ни фактического каталога /files/
, ни /123456789/
, ни файла с именем somefile.html
. Мне просто нужно, чтобы весь путь и имя файла были добавлены к строке запроса.
Это мой первый день работы с функциями перенаправления/перезаписи с использованием IIS вместо кода страницы. Я понимаю, что перезапись происходит перед запросом страницы, но по какой-то причине мой конкретный код требует запроса страницы перед запуском перенаправления.
Я подозреваю, что это потому, что я не запускаю условия при первоначальном запросе?
<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>