URL映射 - 在第一页加载后将Default.aspx更改为虚拟页面

时间:2014-12-26 15:28:41

标签: c# asp.net visual-studio-2013 url-mapping

我想要虚拟页面而不是Default.aspx,如:
www.mydomain.com/Default.aspx - > www.mydomain.com/Virual-Page
在浏览器中打开我的URL后。

我怎样才能改变web.config来实现这个目标?

web.config中的以下代码无效....

<urlMappings enabled="true">
  <add url="~/Virtual-Page" mappedUrl="~/Default.aspx"/>
</urlMappings>

1 个答案:

答案 0 :(得分:1)

您需要此套餐:ASP.NET Friendly URL's如何实施可以在Hanselman's Blog

找到

将此添加到您的global.asax文件

void Application_Start(object sender, EventArgs e)
{
        RouteConfig.RegisterRoutes(RouteTable.Routes);
}

在Global.asax文件的顶部添加引用,如下所示:

using System.Web.Routing;

这会自动重写您的网址。

如果要保留default.aspx,请使用URL Mapping:

<urlMappings enabled="true">
    <add url="~/Virtual-Page" mappedUrl="~/default.aspx" />
</urlMappings>

使用URL Rewrite

添加重写规则以重定向您的基本网址
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Rewrite to Virtual-Page">
        <match url="(.*)" />
        <action type="Redirect" url="~/Virtual-Page" redirectType="Permanent" />
      </rule>
    </rules>
    </rewrite>
  </system.webServer>

如果您无法使用URL重写,请在global.asax开始请求中添加response.redirect:

void Application_BeginRequest(object sender, EventArgs e)
    if (!HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://localhost/Virtual-Page"))
    {
                HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.ToString().ToLower().Replace("http://localhost/", "http://localhost/Virtual-Page"));
    }