如何使用urlrewriting.net将图像请求重定向到另一个文件夹

时间:2010-01-24 05:27:07

标签: asp.net urlrewriting.net

我正在使用urlrewriting.net来重定向级联样式表图像请求。我一直在努力,没有运气这样做。这是我添加的重写:

<add name="reportImagesRedirect"
                    virtualUrl="^~/estadisticas/(.*).png"
                    rewriteUrlParameter="ExcludeFromClientQueryString"
                    destinationUrl="~/images/$1"
                    ignoreCase="true" />

我想知道它是否有问题。我正在尝试将对一个文件夹的所有http get请求链接到重定向到images文件夹。例如,当我提出这样的请求时

http://localhost:8080/estadisticas/spines.png

我希望网络服务器能够在

中查看图像

http://localhost:8080/images/spines.png

2 个答案:

答案 0 :(得分:1)

你需要翻转它。

<add name="reportImagesRedirect"
                destinationUrl="~/images/$1.png"
                rewriteUrlParameter="ExcludeFromClientQueryString"
                virtualUrl="^~/estadisticas/(.+).png$"
                ignoreCase="true" />

Here是我在使用UrlRewriting.Net写的无扩展网址时写的一篇文章。

编辑:我稍微更改了参数。如果要保留扩展名,则需要在虚拟目标和目标

的末尾都有.png

编辑:您可能还需要对system.webServer标记进行以下修改

<system.webServer>
     <modules runAllManagedModulesForAllRequests="true">
     </modules>
</system.webServer>

答案 1 :(得分:0)

您可能需要设置wildcard mapping。 IIS默认情况下不会将除ASP.NET文件(.aspx,.asmx,.axd,.ashx等)之外的任何请求转发给ASP.NET处理程序。由于您的重写器在ASP.NET处理程序中运行,因此对图像的请求永远不会到达它。添加通配符映射会强制IIS让ASP.NET(以及重写处理程序)处理所有请求,包括图像。