Я хочу скрыть имя страницы в браузере.
Например;
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.
Спасибо
См. Объяснение ScottGu по этому вопросу здесь: Совет / хитрость: перезапись URL-адресов с ASP.NET
Запутывает фактический URL-адрес очень плохая практика как в удобстве использования, так и в отладке.
Если вам действительно, действительно нужно это сделать, вы можете использовать фреймы HTML с помощью:наличие родительской страницы набора фреймов по желаемому URL и ваших реальных страниц в полноразмерном фрейме полной высоты внутри набора фреймов.
http://www.w3.org/TR/WD-frames-970331
используйте ajax для загрузки вашего контента или используйте один большой <frameset>.
<frameset>
Но, не делай этого . Это лишит пользователей возможности делать закладки, затрудняет / делает невозможным сканирование Google вашего сайта.
Если вы в отчаянии и испытываете затруднения с другими вариантами, вы можете сделать следующее.Я определенно не рекомендовал бы такой подход, потому что он уродлив, но он, вероятно, сделает работу:
На www.mysite.com/page[1|2|3].aspx Page_Loadметод, введите Response.Redirect ("www.mysite.com/") тогда и только тогда, когда Request.UrlReferrer не является www.mysite.com/page[1|2|3].aspx
На сайте www.mysite.com/[default.aspx], выполните Server.Transfer («страница [1 | 2 | 3] .aspx»), если Request.UrlReferrer - www.mysite.com/page [1 | 2 | 3] .aspx.Server.Transfer перетянет страницу на стороне сервера и ответит результатом, а не перенаправит 301, так что пользователь все равно увидит www.mysite.com/ в своем браузере.
как определить, какую страницу следует использовать?
Вы можете использовать модуль перезаписи URL (iis) для таких URL:
www.mysite.com / page / 1
www.mysite.com / page / 2
www.mysite.com / page / 3
Вы можете использовать Uri . Создайте новый объект Uri и затем используйте метод Host.
Uri
Host