One way to make magic a lil more difficult / rare is to ditch Spellcraft and Knowledge Arcana, and instead introduce Conjuration, Abjuration, Evocation, Divination, etc as class skills for wizards and sorcerors. At each level, calculate the maximum number of ranks a character can have in each of the skills. For every point their actual ranks is below their maximum rank, shave off one level of magic that they can learn from that school.
So- Level 12 Wizard- Max ranks for skills = 15. In order to cast 6th level spells from Evocation, he requires at least 12 ranks in Evocation. To be able to have the option to cast all the spells he gets at that level which normally he could use, assuming 8 schools (not counting Universal), he'll need a good 96 skill points divided amongst all those schools. Only a Wizard with 22 Int could keep up with every school.
What this does, is instead of making magic totally rare, is forcing wizards to choose exactly what they wish to be good at and what they could care less about. Accessibility translates to presence, and without presence, magic is quite rare. Except for the Archmage types who insist on knowing everything... hat's off to them if they can actually keep up with this formula. As this method also can result in Wizards losing their powers if they don't keep up with their leveling through skill distribution, it also sets the stage for a campaign where magic is a fleeting power that evades the dim and escapes the strong. Spellbooks become books of memories and all that fun stuff. Additionally, those truly devoted to magic are somewhat addleminded, keeping to their books so intently that they know little of religion, politics, or their immediate environment as cross-class skills like spot atrophy.