Je suis d'avis que l'autentification php et apache n'a pas grand chose a voir finalement. les sessions php permettent de restreindre les acces au sein de nos scripts tandis que le .htaccess (apache) restreint l'acces carrement au sein des dossiers du site, au niveau de la structure meme.
L'intérêt des sessions php se trouve dans le nom, ca permet de gérer des sessions, on peut donc construire un système d'authentification basé dessus, c'est la sa force. Néanmoins cette authentification n'existera qu'au sein de nos scripts php, hors, de base, personne n'est oblige d'aller de scripts en scripts sur notre site, si quelqu'un ouvre un dossier en tapant son adresse directement php n'y changera rien car pour avoir des sessions php il faut être dans un script php.
C'est la que .htaccess, fichier de configuration apache devient intéressant car il permet de protéger non plus des pages/scripts mais des dossiers/fichiers. Il pourra donc restreindre toute tentative d'accès direct.