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 }
);
我想将已定义的控制器和动作添加到基本 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 }
);