1

我不知道如何通过 url 重写来解决这个问题:

遵循此模式的网址

应用程序/(。*)

应该重定向到 app/index.cshtml

但是 app 文件夹包含资源,例如子文件夹、js 文件和 html 文件。这些应该被忽略,不应该进行重定向。

这是我的做法:

 <rewrite>
  <rules>
    <rule name="Rule 1" stopProcessing="true">
      <match url="app/(.*/.js)" />
      <action type="None" />
    </rule>
    <rule name="Rule 2">
      <match url="app/(.*)" />
      <action type="Rewrite" url="app/index.cshtml" />
    </rule>

  </rules>
</rewrite>

我现在只尝试排除 js 文件,但是当我浏览到 app/someurl 时,由于无法加载其中一个 js 文件而出现错误。我认为这是因为第一条规则不起作用。

你能帮我吗 ?

4

1 回答 1

2

这就是我最终做的事情:

<rule name="Rule1">
      <match url="(.*)" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{URL}" negate="true" pattern="\.axd$" />
        <add input="{URL}" negate="true" pattern="\.jpg$" />
        <add input="{URL}" negate="true" pattern="\.gif$" />
        <add input="{URL}" negate="true" pattern="\.png$" />
        <add input="{URL}" negate="true" pattern="\.css$" />
        <add input="{URL}" negate="true" pattern="\.ico$" />
        <add input="{URL}" negate="true" pattern="\.cur$" />
        <add input="{URL}" negate="true" pattern="\.js$" />
        <add input="{URL}" negate="true" pattern="\.xml$" />
        <add input="{URL}" negate="true" pattern="\.svg$" />
        <add input="{URL}" negate="true" pattern="\.ttf$" />
        <add input="{URL}" negate="true" pattern="\.eot$" />
        <add input="{URL}" negate="true" pattern="\.woff$" />
        <add input="{URL}" negate="true" pattern="\.html$" />
      </conditions>
      <action type="Rewrite" url="app/index.cshtml" />
    </rule>
于 2013-06-20T11:32:05.977 回答