【问题标题】:How does the rewrite works in web.config system.webserver重写如何在 web.config system.webserver 中工作
【发布时间】:2013-11-10 12:37:04
【问题描述】:

我有一个 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} 是什么? 谢谢。

【问题讨论】:

  • 此规则是否在不在服务器根目录中的web.config 中?
  • @cheesemacfly 它不在服务器的根目录中。它在一个文件夹中。 Web 应用程序在哪里。网络配置位于应用程序的根目录中。

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


【解决方案1】:

看来我匹配 url 这个正则表达式匹配每个 url,它不允许重定向包含虚拟路径的 url。由于mvc的路由找到了资源。

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

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2015-02-05
    • 1970-01-01
    • 2011-01-31
    • 2011-10-28
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多