hi,
Tach!
Ich habe in einem Verzeichnis meine php Scripte die aus dem Hauptverzeichnis per include aufgerufen werden, was kann ich machen das man die Dateien nicht alleine aufrufen kann, wenn man den Pfad hat, sondern nur das Hauptscript aus dem Hauptverzeichnis?
Die beste Methode ist, diese Dateien gar nicht erst ins DocumentRoot sondern in ein per Web nicht erreichbares Verzeichnis zu legen.
Für Massenhoster nicht zu gebrauchen leider!
Eine weniger gute, weil ständig zu beachtende Methode ist, am Anfang der zu inkludierenden Datei auf eine Konstante zu prüfen, die im Hauptprogramm erstellt wurde. Wenn sie nicht da ist, muss abgebrochen werden.
if (!CONSTANTE){die("nix da")}
Gut das ist echt nervig jedes mal das machen zu müssen. Zudem weiß man so, dass es die Datei wirklich gibt. Eleganter wäre noch eine Weiterleitung per header ... aber genauso nervig, da jedes mal neu zu schreiben.
Noch eine nicht ganz gute ist, die schon von dir verdächtigte .htaccess zu nehmen. Da nimmst du ein
Order allow,deny
Deny from all
wenn es alle Dateien treffen soll, ansonsten schränkst du das mit <FilesMatch> oder ähnlichem ein.
Funktioniert fast überall und ist wohl das, was die meisten wählen sollten.
Gruß Niklas
Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.