URLRewriter会重写所有请求,即使是图像也是如此

时间:2011-11-17 20:53:54

标签: asp.net url-rewriting

我正在使用URLRewriter,但是存在问题,它会重写所有地址,即使对于图片网址也是如此,例如,它会显示http://localhost/images/logo.png的网页。

这是我的web.config

<?xml version="1.0"?>

<configuration>

    <configSections>
      <section name="rewriter"
               requirePermission="false"
               type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
    </configSections>

    <system.web>
        <compilation debug="true" targetFramework="4.0" />

      <httpModules>
        <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
      </httpModules>

    </system.web>

  <system.webServer>

    <modules runAllManagedModulesForAllRequests="true">
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" />
    </modules>

    <validation validateIntegratedModeConfiguration="false" />

  </system.webServer>

  <rewriter>
    <rewrite url="~/pages/(.+)" to="~/default.aspx?pn=$1" />
  </rewriter>

</configuration>

我希望它只重写.aspx文件。

1 个答案:

答案 0 :(得分:0)

rewrite元素中的url属性是.Net regular expression,此时你所拥有的表达式匹配〜/ pages /下的任何内容。如果您只想匹配.aspx文件,最简单的方法是将其更改为:

<rewrite url="~/pages/(.+\.aspx)" to="~/default.aspx?pn=$1" />