Предлагаю вашему вниманию решение, которое на мой взгляд может помочь в решении данного вопроса без углубления в кучу теории.
Пример подмены url страницы по клику на ссылку:
Пример html кода с ссылкой
<a href="/test" onclick="dynamic_change_url('/test');return false;">site.com/test</a>
JavaScript функция, в которой происходит подмена URL страницы.
function dynamic_change_url(link){ window.history.pushState("", "", link); window.history.replaceState("", "", link); }
Если нужно заменить информацию на странице, то можно в функцию dynamic_change_url дописать ajax запрос.
Данное решение использовалось в реальном проекте. Удачи в реализации.