如何在浏览器地址栏中隐藏完整的URL

时间:2012-11-10 15:54:29

标签: asp.net

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

3 个答案:

答案 0 :(得分:1)

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

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

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

更多信息:

Manipulating the browser history | MDN

答案 1 :(得分:0)

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

答案 2 :(得分:0)

虽然我不认为这是好的风格,但您可以将页面插入到框架(或iframe)中:

域名的起始页面,例如。 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的直接链接进入时,您需要通过脚本转发到http://msdn.microsoft.com/并创建框架集(或iframe)f.e.通过处理服务器上的URL参数。