-2

我想从我的 asp.net 网站 URL 中隐藏子目录和页面信息。例如,我不想显示http://msdn.microsoft.com/en-us/library/aa479015.aspx ,而是希望始终在用户的浏览器地址栏中显示类似http://msdn.microsoft.com/的内容。

4

3 回答 3

1

这需要支持 History API 的现代浏览器

 history.pushState({}, false, "/");

如果你在文件加载时调用它,你应该达到预期的效果

更多信息:

操纵浏览器历史 | MDN

于 2012-11-10T15:59:44.477 回答
0

一种方法是将您当前的处理程序信息保存在 cookie 中,然后保存在全局 asax BeginRequest 中,并使用HttpContext.Current.RemapHandler基于该 cookie 将它们的请求重新映射到不同的处理程序。另一种方法是在您的页面上使用 iframe,这将是最简单的。

于 2012-11-10T16:08:13.363 回答
0

虽然我认为这不是很好的样式,但您可以将页面插入框架(或 iframe):

您的域的起始页,fe http://msdn.microsoft.com/

<frameset rows="100%">
    <frame src="/realstartpage.htm">
</frameset>

现在当用户导航到另一个页面时,地址栏不会改变,因为只是更新了框架的内容。请注意,指向您网站外部页面的链接应针对最外层框架:

<a href="http://stackoverflow.com" target="_top">Stackoverflow</a>

但是,当用户通过指向 http://msdn.microsoft.com/en-us/library/aa479015.aspx的直接链接进入时,您将需要通过 a转发到http://msdn.microsoft.com/脚本并通过处理服务器上的 URL 参数来创建框架集(或 iframe)fe。

于 2012-11-10T16:10:19.173 回答