Как простой вариант на jQuery. Допустим, основной контент сайта находится в неком тэге с id="content".
$(document).on('click', 'a[href][target!="_blank"]', function() {
if(~this.href.indexOf('#')) {
$('#content').load(this.href + ' #content');
window.history.pushState(null, null, this.href);
return false;
}
});