UrlRewrite IIS, чтобы существующие URL-адреса изображений работали с ImageResizer

Мы пытаемся использовать Imageresizer с функцией кэширования диска, а также с sqldatareader. Он ожидает, что URL-адреса будут в форме:

http://somesite.com/image/{imageid}.{extension}

тогда как все ссылки на изображения на нашем сайте в настоящее время:

http://somesite.com/image.aspx?imageid={imageid}&format={ расширение}

Лучшее решение, которое я нашел до сих пор, чтобы преобразовать их, — это UrlRewrite, но мы как бы делаем противоположное тому, что оно намеревается (превращая хорошие URL-адреса в неприятные). Я изо всех сил пытался получить правильное правило перезаписи для этого и надеялся, что кто-то может помочь. Ниже приведено то, что у меня есть в настоящее время, и я знаю, что это может быть совершенно неправильно:

 <rewrite>
     <rules>
         <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
             <match url="^image.aspx?([^imageid=]+)$" ignoreCase="true" />
             <conditions>
                 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="false" />
                 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
             </conditions>
             <action type="Rewrite" url="image/{R:1}.jpg" />
         </rule>
     </rules>
  </rewrite>

person muchio7    schedule 29.08.2013    source источник


Ответы (1)


Удалось заставить базовый функционал работать со следующим правилом.

<rule name="Redirect Category Name and Sort By" stopProcessing="true">
    <match url="^image\.aspx$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
        <add input="{QUERY_STRING}" pattern="^imageid=([0-9]+)" />
    </conditions>
    <action type="Rewrite" url="image/{C:1}.jpg" appendQueryString="true" />
</rule>
person muchio7    schedule 01.09.2013