2014-09-12 78 views
1

我想在有人导航到我的网站根目录时显示完整的URL。如果他们导航到www.mysite.com,默认路由会正确处理它并显示正确的页面。问题是浏览器中的URL显示www.mysite.com而不是www.mysite.com/unity/hygiene(它被设置为默认路径)。在Asp Mvc网站上显示默认路由的完整url

我尝试添加在Global.asax

void Application_BeginRequest(Object sender, EventArgs e) 
{ 
    var ctx = HttpContext.Current; 
    var originalPath = ctx.Request.RawUrl.ToLower(); 
    if (originalPath == "/") 
     ctx.RewritePath("/unity/hygiene/"); 
} 

这确实改写了路径开始请求,但不更新URL。

我在IIS(IIS 7.5,Server 2008R2)中安装了URL Rewrite,但我还没有成功。我试过重写地图:

<rewrite> 
    <rewriteMaps> 
     <rewriteMap name="HygieneDefault"> 
      <add key="http://www.example.com:8002/" value="http://www.example.com:8002/unity/hygiene/" /> 
     </rewriteMap> 
    </rewriteMaps> 
    <globalRules> 
    </globalRules> 
</rewrite> 

如何在浏览器中显示默认路由的完整URL?

回答

0

我能找到的唯一解决方案是在控制器中检查当前URL并重定向(如果它是根目录)。

var url = Request.RawUrl; 
if (url == @"/") 
{ 
    Response.Redirect("/Unity/Hygiene"); 
} 
return View(); 
+0

谢谢!适合我! – 2015-02-25 15:20:21