URL 重写 - 将默认页面添加到域

URL rewriting - Add default page to domain

我想将已定义的控制器和动作添加到基本 URL

localhost:6473  -> localhost:6473/Beta/Index

URL 在 Web.config 中重写,但由于某些原因它不起作用

<rewrite>
  <rules>
    <rule name="Beta_Local" stopProcessing="true">
      <match url="(localhost*)" ignoreCase="true" />
      <conditions>
        <add input="{HTTP_HOST}" pattern= "^localhost:[0-9]{4}$" negate="true"/>
      </conditions>
      <action type="Redirect" url="{R:0}/Beta/Index" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

匹配url不应该包含域名,而是路径。如果你想捕获 root / 你需要

<match url="^$" />

http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

此外,您似乎不需要 localhost 的附加条件。

可以遵循完整的规则

<rewrite>
  <rules>
    <rule name="Beta_Local" stopProcessing="true">
      <match url="^$" /> 
      <action type="Redirect" url="/Beta/Index" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

P.S.

如果您需要以 MVC 方式完成,您可以使用路由

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Beta", action = "Index", id = UrlParameter.Optional }
);