For a, b, c, d ≥ 0 with ad − bc > 0, we consider the unilateral weighted shift S(a, b, c, d) with weights αn := √ an+b cn+d (n ≥ 0). Using Schur product techniques, we prove that S(a, b, c, d) is always subnormal; more generally, we establish that for every p ≥ 1, all p-subshifts of S(a, b, c, d) are subnormal. As a consequence, we show that all Bergman-like weighted shifts are subnormal.