2011-02-21 180 views
1

我想在浏览器中隐藏页面名称。隐藏页面网址asp.net

例如;

www.mysite.com/page1.aspx 
www.mysite.com/page2.aspx 
www.mysite.com/page3.aspx 

我要出现在所有这样的网站:www.mysite.com

我怎样才能做到这在asp.net 3.5与IIS 6.0。

谢谢

+2

这是什么目的?我建议不要这样做,因为无论你试图达到什么结果都可能以更好的方式实现 – Curt

+0

'www.mysite.com/'不是一个有效的虚拟路径。错误? – Jack

回答

0

您可以使用Uri。创建一个新的Uri对象,然后使用Host方法。

2

使用ajax加载您的内容或使用一个大的<frameset>

但是,不这样做。它将打破用户制作书签的可能性,使Google难以抓取您的网站。

+0

同意。不惜一切代价避免。它在移动设备上也不能很好地播放。 – Brady

0

你怎么确定你应该使用哪些网页?

你可以使用友好的网址URL重写模块(IIS)这样的:

www.mysite.com/page/1

www.mysite.com/page/2

WWW .mysite.com /页/ 3

+0

谢谢。但我在寻找一个简单的解决方案。我只有这3页。我不想在地址栏中显示页面名称。 – Jack

3

见ScottGu的这个问题在这里解释:Tip/Trick: Url Rewriting with ASP.NET

+0

谢谢。但我在寻找一个简单的解决方案。我只有这3页。 – Jack

+0

可能我误解你想要什么。但是,例如,在本文中提到的第一种方法之后,为这个问题编写一个函数真的很困难吗? – apros

0

如果你感到绝望,并具有与其他选项麻烦你可以做到以下几点。我绝对不会推荐这种方法,因为它是丑陋的,但它可能会完成这项工作:

  1. 在www.mysite.com/page[1|2|3].aspx Page_Load方法,发出响应.Redirect(“www.mysite.com/”)当且仅当Request.UrlReferrer不是www.mysite.com/page[1|2|3].aspx

  2. On www.mysite.com/ [如果Request.UrlReferrer是www.mysite.com/page[1|2|3].aspx,则发出Server.Transfer(“page [1 | 2 | 3] .aspx”)。 Server.Transfer将拉动服务器端的页面并回应结果,而不是发出301重定向,因此用户仍然可以在他们的浏览器上看到www.mysite.com/。