This species ranges from northeastern Spain; western, southern, eastern and northeastern France; and southern Switzerland, through most of Italy, to southwestern Slovenia and northern Croatia. It is present on the Mediterranean islands of Corsica (France), Sardinia, Sicily and most other Italian islands, Krk (Croatia), and Malta. The species may occur in Luxembourg, but this requires verification. The species is absent from Austria. It has also been translocated to the island of Gyaros (Greece) in the Aegean Sea where it was previously recognized as a distinct species Hierophis gyarosensis. It ranges from sea level up to 2,000m asl.