繁体   English   中英

从URL隐藏default.aspx

[英]Hiding default.aspx from the URL

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

www.website.com/default.aspx

浏览器仅显示:

www.website.com/

无论。 它仅用于SEO。

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

任何帮助都非常感谢。

谢谢。 约瑟

我认为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”。 仅链接到“ /”。 然后,使用Scott的Form回发浏览器文件来确保回发总是命中该URL的相同友好版本。

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

我认为更改搜索结果索引的最简单方法(假设它知道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
}

如果您需要重写URL,则只需确保链接指向正确的URL。

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

如果您确实想做个狡猾的工作,则可以使用一些JavaScript使浏览器的地址栏显示任意内容,即使该浏览器无效。

如果将default.aspx设置为在IIS中提供服务的默认文档,并且您的所有内部站点链接都包含没有 default.aspx的URL,那么我认为应该可以解决问题。

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

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

缺点是重定向并不总是那么好,并且如果将数据发布到该default.aspx页面,则无法正常工作。 但是,尽管您可以告诉ASP.NET为任何请求提供所需的任何页面,但您不能简单地诱使浏览器显示不同的URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM