从URL隐藏default.aspx

时间:2009-06-18 04:07:16

标签: c# asp.net seo url-rewriting

我想知道是否有一个解决方案使用IIS6让应用程序摆脱url中的default.aspx文本。例如,如果用户点击:

www.website.com/default.aspx

浏览器只显示:

www.website.com /

无论如何。 这只是为了SEO。

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

任何帮助都非常感谢。

感谢。 何

5 个答案:

答案 0 :(得分:3)

我认为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技巧,回发(点击友好版本的网址)

有了你的问题,我认为你需要使用一个组合,永远不要链接到'default.aspx'即。仅链接到'/'。然后使用Scott的Form Postback浏览器文件确保回发始终触及相同友好版本的url。

将'default.aspx'重定向到'/',然后由'default.aspx'提供服务听起来像是给我带来灾难的秘诀。只需修复您的链接,确保您永远不会明确地使用'default.aspx'。

答案 1 :(得分:2)

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

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
}

答案 2 :(得分:1)

如果您需要进行网址重写,那么您需要做的就是确保您的链接指向正确的网址。

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

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