Как указал Томас Стьернегард Джеппезен, вы можете использовать History.js для изменения параметров URL, пока пользователь перемещается по ссылкам и приложениям Ajax.
С момента получения этого ответа прошел почти год, и History.js вырос и стал более стабильным и кросс-браузерным. Теперь его можно использовать для управления историческими состояниями как в HTML5-совместимых, так и во многих браузерах только для HTML4. В этой демонстрации Вы можете увидеть пример того, как он работает (а также попробовать его функциональные возможности и ограничения.
Если вам нужна помощь в том, как использовать и реализовать эту библиотеку, я предлагаю вам взглянуть на исходный код демонстрационной страницы: вы увидите, что это очень легко сделать.
Наконец, для всестороннего объяснения, что может быть проблемами с использованием хешей (и hashbangs), проверьте эту ссылку Бенджамина Луптона.