Is the light on all of the time or just when certain circuits are switched on (like the headlights)?
Normally this will be down to poor wiring to the alternator itself, check the single low tension wire from the back of the alternator which runs back to the crossmember at the back of the engine bay. This gets cooked by the exhaust and pulled around so it tends to break up internally. This one wire decides what the charge light shows in the cabin.
If it just when the lights (or some other circuit) are on then it is going to be either earthing elsewhere or some poor quality connections somewhere soaking up a chunk of the charging potential.