FileMapProvider:Web服务器配置为不列出此目录的内容

时间:2014-11-11 13:17:31

标签: .net iis web-config

我正在使用FileMapProvider为网站提供动态重写。这适用于除了主页之外的所有内容,我收到以下错误:

  

HTTP错误403.14 - 禁止

     

Web服务器配置为不列出此目录的内容。

我明白为什么会这样。这是因为在请求http://localhost:52709/时,请求的物理路径是一个文件夹,但实际上我只想要主页。我怎样才能实现这个目标?

这是我的web.config

<rewrite>
  <rules>
    <rule name="FileMapProvider" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{FileMapProvider:{R:1}}" pattern="(.+)" />
      </conditions>
      <action type="Rewrite" url="{C:1}" />
    </rule>
  </rules>
  <providers>
    <provider name="FileMapProvider" type="FileMapProvider, Microsoft.Web.Iis.Rewrite.Providers, Version=7.1.761.0, Culture=neutral, PublicKeyToken=0545b0627da60a5f">
      <settings>
        <add key="FilePath" value="{DOCUMENT_ROOT}\App_Data\rewriterules.txt" />
        <add key="IgnoreCase" value="1" />
        <add key="Separator" value="," />
      </settings>
    </provider>
  </providers>
</rewrite>

以下是rewriterules.txt

中的具体规则
, content/client/site/layouts/home.aspx?menuid=123

1 个答案:

答案 0 :(得分:0)

我不确定使用FileMapProvider是否可以实现这一点,所以在web.config中,我只是执行了以下规则:

<rule name="Rewrite Only Root to Virtual Directory" stopProcessing="true">
  <match url="^/?$" />
  <conditions>
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  </conditions>
  <action type="Rewrite" url="/content/client/site/layouts/home.aspx" />
</rule>