我有一个ASP.NET Web应用程序,我在IIS中使用URL重写器。我想让URL简单而有意义,所以我在IIS中为每个页面创建了一个规则,如下所示:
我有很多页面,我担心我可能会使用错误,尽管上面的工作正常。我认为可能有一种方法可以以一般方式使用更少数量的规则。
我的第二个问题是关于主页。目前它是这样的:
但是,我希望它只是“MySite”而无需添加“/ Home”部分。有可能这样做吗?
提前致谢,
PS:“MySite”是我在主机文件中创建的localhost的替代品,但是当我在生产中部署应用程序时,它将是DNS名称。
答案 0 :(得分:0)
在我的想法中,在代码中定义routes表更加容易和灵活。您可以在Application_Start
Global.asax
中定义路线。还包括名称空间System.Web.Routing
。
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteTable.Routes.MapPageRoute("StoreRoute",
"BookStore/{Name}",
"~/Webpages/BookStore/ViewBookDemo.aspx");
}
因此,您的web.config
将更清晰,更容易设置其他配置。
首先在默认页面上的web.config中设置默认文档,如下所示:
<configuration>
<system.webServer>
<defaultDocument enabled="true">
<files>
<add value="home.html" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
现在,每个href为'/'
的链接都会在默认文档上重写您的路线,而不会在显示的网址中显示home.html
。
此致