重写如何在web.config system.webserver中工作

时间:2013-10-30 18:12:02

标签: asp.net asp.net-mvc url-rewriting asp.net-mvc-routing

我有一个asp.net mvc 4应用程序,我在web.config中有这个规则

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Remove Virtual Directory">
      <match url=".*" />
      <action type="Rewrite" url="{R:0}" />
    </rule>
  </rules>
</rewrite>

我无法理解为什么以及如何运作。我使用它是因为godaddy在url中添加了一个虚拟路径,其中包含应用程序所在文件夹的名称。 即example.com/foldername/index变为example.com/index

那么它如何通过“。*”找到虚拟路径并将其删除。 {R:0}是什么? 谢谢。

1 个答案:

答案 0 :(得分:0)

好吧我似乎匹配网址这个正则表达式匹配每个网址,它不允许重定向包含虚拟路径的网址。由于mvc的路由找到了资源。

至于{R:0}。请求url是第一个参数,因此为0,正则表达式是不使用的secont参数。这将是{R:1}。