2

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

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

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

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

我希望网络服务器查看图像

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

4

2 回答 2

1

你需要翻转它。

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

是我写的一篇关于将 UrlRewriting.Net 用于无扩展 URL 的小文章。

编辑:我稍微改变了参数。如果要保留扩展名,则需要在虚拟和目标的末尾都有 .png

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

<system.webServer>
     <modules runAllManagedModulesForAllRequests="true">
     </modules>
</system.webServer>
于 2010-01-24T05:29:14.943 回答
0

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

于 2010-01-24T05:36:10.897 回答