В HTML5 вы можете изменить URL:
window.history.pushState("object or string", "Title", "/new-url");
проверить http://spoiledmilk.com/blog/html5-changing-the-browser-url-without-refreshing-page/
документы: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState().c2.a0method
ОБНОВЛЕНИЕ
Обзор того, какой браузер поддерживает новый API истории HTML5:
http://caniuse.com/#search=pushState (caniuse.com стоит добавить в закладки!)
уже естьфреймворки, которые выполняют тяжелую работу за вас и даже изящно прибегают к общему решению хеш-тегов:
History.js
History.js изящно поддерживает API истории / состояния HTML5 (pushState, replaceState, onPopState) во всех браузерах.Включая постоянную поддержку данных, заголовков, replaceState.Поддерживает jQuery, MooTools и Prototype.Для браузеров HTML5 это означает, что вы можете изменить URL-адрес напрямую, без необходимости больше использовать хэши.Для браузеров HTML4 он вернется к использованию старой функциональности onhashchange.
Backbone.js
Структура магистральных поставокприложениям, насыщенным JavaScript, предоставляя модели с привязкой значения ключа и пользовательскими событиями, коллекции с богатым API перечислимых функций, представления с декларативной обработкой событий и подключая все это к существующему приложению через интерфейс RESTful JSON.... поддержка pushState существует исключительно в Backbone.В старых браузерах, не поддерживающих pushState, будут по-прежнему использоваться фрагменты URL-адресов на основе хэша, а если браузер с поддержкой pushState посещает хэш-URL-адрес, он будет прозрачно обновлен до истинного URL-адреса.
Mootools (через плагин)
MooTools - это компактная модульная объектно-ориентированная среда JavaScript, предназначенная для среднего и продвинутого разработчика JavaScript.[...] Управление историей через popstate или hashchange.Заменяет URL страницы без перезагрузки и возвращается к Hashchange в старых браузерах.
dojo toolkit
Dojo экономит ваше время и масштабирует процесс разработки, используя веб-стандарты в качестве своей платформы.Это набор инструментов, к которому обращаются опытные разработчики для создания высококачественных настольных и мобильных веб-приложений.[...] dojox.app управляет историей навигации с помощью стандарта HTML5 pushState и передает его в управление историей с поддержкой браузера.
... просто назвать несколько.
(!!) BE AWARE
Один важный побочный эффект при использовании pushState
(цитата из документации Backbone ):
Обратите внимание, что для использования реальных URL-адресов требуется, чтобы ваш веб-сервер мог корректно отображать эти страницы , поэтому требуются также внутренние изменения.Например, если у вас есть маршрут / Documents / 100, ваш веб-сервер должен быть в состоянии обслуживать эту страницу, если браузер посещает этот URL напрямую.Для полной возможности поиска в поисковой системе лучше всего, чтобы сервер сгенерировал полный HTML-код для страницы ... но если это веб-приложение, просто отредактируйте тот же контент, что и для корневого URL-адреса, и заполните остальное с помощью Backbone.Представления и JavaScript работают отлично.