代码之家  ›  专栏  ›  技术社区  ›  Raúl Roa

如何使用urlrewriting.net将图像请求重定向到其他文件夹

  •  2
  • Raúl Roa  · 技术社区  · 14 年前

    我正在使用urlrewriting.net重定向级联样式表图像请求。我一直在努力,但运气不好。以下是我添加的重写:

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

    我想知道是不是出了什么问题。我正在尝试将所有HTTP GET请求链接到一个文件夹,以便重定向到图像文件夹。例如,当我提出这样的请求时

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

    我希望Web服务器在

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Chase Florell    14 年前

    你得把它翻过来。

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

    Here 是我写的一篇关于使用urlrewriting.net进行无扩展URL的小文章。

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

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

    <system.webServer>
         <modules runAllManagedModulesForAllRequests="true">
         </modules>
    </system.webServer>
    
        2
  •  0
  •   Chris    14 年前

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