Functional determinants for general Sturm–Liouville problems