Hallo Andrea,
wie kkapsner richtig sagte, mod_rewrite wäre hier wirklich sehr geeignet. Vielleicht schaust du nochmal nach, ob dein Server wirklich kein mod_rewrite unterstützt - das Modul ist mittlerweile sehr verbreitet und gehört zur Grundausrüstung der meisten Apacheinstallationen.
Du kannst das relativ schnell überprüfen, erstelle einfach eine Datei mit folgendem Inhalt und rufe sie über deinen Browser auf:
Code:
<?php
print_r(apache_get_modules());
?>
(
http://de3.php.net/manual/de/function.apache-get-modules.php)
Steht in der Ausgabe etwas von "mod_rewrite" stelle gleich eine Flasche Champagner kalt - das Zeug ist umwerfend: Damit kannst du deine Seite so konfigurieren, dass alle direkten Aufrufe an .inc-Dateien automatisch an deine .php weitergeleitet werden - ohne dass du irgendetwas in diesen Dateien vermerken musst.
Solltest du aber tatsächlich über kein mod_rewrite verfügen, so bleiben dir die hier bereits beschriebenen Methoden als Alternativen. Gängige Praxis in verbreiteter Software (z.B. phpBB-Forum) ist es, zu Beginn deiner home.php eine Konstante zu definieren und in jeder inc-Datei abzufragen, ob diese Konstante definiert wurde. Ist sie nicht definiert, kannst den Fehlaufruf abfangen und weiterleiten/den Benutzer informieren.
home.php (erste Zeilen):
PHP:
<?php
define('VALID_ACCESS', 1);
// ...
home.inc/abc.inc/somewhere.inc/...inc (erste Zeilen):
PHP:
<?php
if (!defined('VALID_ACCESS')) die('Fehlerhafter Aufruf.');
// ...
Noch besser natürlich, wenn du die Prüfung auslagerst - so kannst du den Namen der Konstanten bzw. des Verfahren bei negativer Prüfung ohne grossen Aufwand ändern:
checkAccess.php:
PHP:
<?php
if (!defined('VALID_ACCESS')) die('Fehlerhafter Aufruf.');
home.inc/abc.inc/somewhere.inc/...inc (erste Zeilen):
PHP:
<?php
require('checkAccess.php');
// ...
Grüsse
Dominique