从URL中隐藏default.aspx
我想知道是否有解决方案使用IIS6为应用程序摆脱url中的default.aspx文本。因此,例如,如果用户点击:从URL中隐藏default.aspx
www.website.com/default.aspx
浏览器只显示:
www.website.com/
不管是什么。 这只是为了SEO。
我已经在我的应用程序中使用UrlRewriting.NET进行了一些重写,但因为我并不聪明为此创建规则。
任何帮助是非常赞赏。
谢谢。 Jose
如果您有什么要做URL重写,那么您需要做的就是确保您的链接指向正确的URL。
如果你没有修复你的链接,它可以由浏览器决定是否要显示它请求的实际链接。
如果你真的想做一个狡猾的工作,你可以使用一些JavaScript来使浏览器的地址栏显示任何你喜欢的,即使它是无效的。
我会这样做的方式是在公共类Global:System.Web.HttpApplication中使用Application_BeginRequest,并检查HttpContext.Current.Request.URL为default.aspx,然后使用HttpContext.Current.Response.Redirect那里如果你找到它。
缺点是重定向并不总是如此之好,如果您要将数据发布到default.aspx页面,这不会起作用。但是,您不能简单地诱使浏览器显示不同的url,但您可以告诉ASP.NET为任何请求提供您想要的任何页面。
它不工作得很好,它可能会导致无限的重定向。 谢谢! – 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'。
嗨布伦丹。 我之前曾与斯科特的文章合作建立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
}
谢谢杰夫。 我认为你的解决方案非常好,但我得到了无限重定向的错误。 谢谢。 – JRGuay 2009-07-03 14:46:11
忽略我的回答,我没有看到IIS6.0的要求 – Ayyash 2009-07-02 22:25:02