从URL中隐藏default.aspx

问题描述:

我想知道是否有解决方案使用IIS6为应用程序摆脱url中的default.aspx文本。因此,例如,如果用户点击:从URL中隐藏default.aspx

www.website.com/default.aspx

浏览器只显示:

www.website.com/

不管是什么。 这只是为了SEO。

我已经在我的应用程序中使用UrlRewriting.NET进行了一些重写,但因为我并不聪明为此创建规则。

任何帮助是非常赞赏。

谢谢。 Jose

+0

忽略我的回答,我没有看到IIS6.0的要求 – Ayyash 2009-07-02 22:25:02

如果您有什么要做URL重写,那么您需要做的就是确保您的链接指向正确的URL。

如果你没有修复你的链接,它可以由浏览器决定是否要显示它请求的实际链接。

如果你真的想做一个狡猾的工作,你可以使用一些JavaScript来使浏览器的地址栏显示任何你喜欢的,即使它是无效的。

我会这样做的方式是在公共类Global:System.Web.HttpApplication中使用Application_BeginRequest,并检查HttpContext.Current.Request.URL为default.aspx,然后使用HttpContext.Current.Response.Redirect那里如果你找到它。

缺点是重定向并不总是如此之好,如果您要将数据发布到default.aspx页面,这不会起作用。但是,您不能简单地诱使浏览器显示不同的url,但您可以告诉ASP.NET为任何请求提供您想要的任何页面。

+0

它不工作得很好,它可能会导致无限的重定向。 谢谢! – JRGuay 2009-07-03 14:52:55

如果default.aspx被设置为在IIS中提供的默认文档,并且您的所有内部网站链接都包含URL的而不是 default.aspx,那么我认为应该这样做。

尽管用户仍然可以输入default.aspx,但搜索引擎蜘蛛应该从链接href属性中选取友好的URL。

我认为ScottGu已经在ASP.NET中覆盖了重写主题:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

他涵盖的东西,如:

  • 使用UrlRewriter.net重写,ISAPI重写
  • ASP.NET技巧,回发(命中URL的友好版本)

随着你的问题,我认为你需要使用的组合,从来没有链接到'default.aspx'ie。只链接到'/'。然后使用Scott的表单回传浏览器文件来确保回发始终打开相同的友好版本的网址。

重定向'默认。aspx'转换为'/',然后通过'default.aspx'获得服务,听起来像是一场灾难。只需修复你的链接,以确保你永远不会明确地结束'default.aspx'。

+0

嗨布伦丹。 我之前曾与斯科特的文章合作建立SEO规则,但它不适用于隐藏默认页面名称。它只是不起作用。 无论如何,谢谢。 – JRGuay 2009-07-03 14:47:15

我认为改变搜索结果索引(假设它知道HTTP 301)最简单的方法是在default.aspx的Page_Load中编写一个小函数,使用301永久移动(或302移动临时)重定向浏览器, 。

void Page_Load(...) { 

    if(Request.Path.EndsWith("default.aspx", true/*case-insensitive*/, null)) { 
     Response.StatusCode = 301; 
     Response.StatusDescription = "Moved Permanently"; 
     Response.Headers.Add("Location", "/"); 
     HttpContext.Current.ApplicationInstance.CompleteRequest(); // end the request 
    } 

    // do normal stuff here 
} 
+0

谢谢杰夫。 我认为你的解决方案非常好,但我得到了无限重定向的错误。 谢谢。 – JRGuay 2009-07-03 14:46:11