Also ich will eine datei "pw.dat", die von index.php aus gelesen und beschrieben werden kann, die man sich aber nicht im Browser anschauen kann. Wenn ich aber über chmod die Leserechte einschränke, dann meckert selbstverständlich auch meine index.php.
Variante 1:
Platziere die Datei pw.dat außerhalb des per Webserver einsehbaren Verzeichnisbaums:
/home/martin/
pw.dat
htdocs/
index.php
htdocs/ ist hier das Verzeichnis, das als Basis für Dein Webangebot dient, http://martins-server.de/index.php würde also auf die obige index.php zeigen.
Variante 2:
Benenne die Datei in .htphppassworte oder ähnliches um. Dateien, die mit .ht beginnen, sind beim Apache normalerweise ab Werk gesperrt, werden also grundsätzlich nie vom Webserver ausgeliefert.
Variante 3:
Füge einen entsprechenden <files>-Bereich in die jeweilige .htaccess ein, zum Beispiel:
<files "pw.dat">
deny from all
</files>
Siehe http://httpd.apache.org/docs/mod/core.html#files und http://httpd.apache.org/docs/mod/mod_access.html#deny.
Variante 2 funktioniert übrigens genauso, nur das es etwas in der Richtung <filesmatch "^.ht"> sein dürfte und der Bereich sich in der Hauptkonfiguration des Apache befindet.
Gruß,
soenk.e