Forma 1:
Crea un archivo .htaccess en el directorio de los PHP que no quieres ejecutar directamente y pones esto dentro:
Código:
<Files *>
Order Deny,Allow
Deny from all
Allow from localhost
</Files>
Forma 2:
En tus PHP que son llamados desde el navegador inserta una constante cualquiera, y luego en los PHP que no deben ser llamados desde el navegador verifica que la constante exista. Creo que es el método que usaban en phpbb y otras aplicaciones... Es decir:
Código PHP:
<?php
/* Esto iría en los php "públicos" */
// Comprobamos primero que la constante no esté definida ya
if (!defined('NOMBRECUALQUIERA')) define('NOMBRECUALQUIERA', 1);
?>
Código PHP:
<?php
/* Esto iría en los php "privados" */
if (!defined('NOMBRECUALQUIERA')) die('Bye!');
?>
Personalmente uso las dos formas simultáneamente