With either MapMyRide or ridewithgps, both of them have an option to lock to roads. You don't need a subscription to map, and you don't need a paid subscription to save or download (although there are still issues with the .gpx files from MMR, and they've taken the "classic," working site down ).