replace window location instead of reassigning, avoid creating unnecessary history states