Use pushState routing instead of always using fragment/hash