Hallo Thomas,
delicioustube wrote:In den Grundeinstellungen der httpd.conf möchte ich alles so einstellen, dass generell .php Dateien von meinem Server verarbeitet werden, aber der Zugriff von außen geschützt ist.
d.h. in php kann ich mit "require ("testdatei.php");" diese Datei benutzen und normal ausführen, aber jemand der:
http://www.meinserver/testdatei.php eingibt soll eine Fehlermeldung bekommen.
Da PHPs require Konstrukt direkt auf Dateiebene passiert, ist dies möglich und dafür gibt es sogar gleich mehrere Möglichkeiten.
Du könntest all die Dateien, die nicht direkt aufgerufen werden können sollen, OBERHALB des DocumentRoot platzieren, d.h. im Falle von XAMPP oberhalb oder auf derselben Ebene wie das htdocs Verzeichnis, oder besser direkt VHosts einsetzen und dort einen DocumentRoot definieren der ein, zwei Ebenen unterhalb von htdocs liegt.
Diese kannst du dann relativ oder absolut adressieren.
Nächste Möglichkeit wäre über Apache RewriteRules einfach alle Anfragen eines bestimmten Musters (zum Beispiel alle *.php Dateien) auf eine andere Datei umleiten. So ein Konstrukt wird gerne für Frontcontroller verwendet. Diese eine Datei muss dann natürlich all die Logik enthalten, mit den verschiedenen Requests umgehen zu können, wenn du dort differenzieren möchtest.
So ein Reqrite definiert man geschickterweise aber nicht in der httpd.conf sondern in einer .htaccess, denn zum Einen handelt es sich um eine sehr nah an das Projekt bezogene Konfiguration, und zum Anderen kannst du dann die Einstellung ändern oder ergänzen, ohne den Apache jedesmal neustarten zu müssen.
Dritte Möglichkeit direkt mit Frontcontroller wäre, im Frontcontroller eine Konstante zu definieren und in allen anderen .php Dateien auf diese Konstante zu prüfen. Wenn Sie nicht vorhanden ist dementsprechend einen Fehler ausgeben oder noch besser auf eine Fehlerseite umleiten. DIeses Konstrukt verwendet zum Beispiel das beliebte Framework
codeigniterDas sind alles sinnvolle Konstrukte, aber nicht jedes ist für jeden Anwendungsfall sinnvoll. Alle *.php Requests auf eine Fehlerseite umzuleiten halte ich dagegen für ziemlich sinnfrei, denn dadurch nimmst du dir selbst die Möglichkeit *.php Dateien per HTML zu verlinken und musst Alle Requests per Rewrite umbiegen.
delicioustube wrote:Außerdem will ich ein neues Dateiformat php zuordnen das ich .core nenne.
.core - Dateien sollen wie .php Dateien behandelt werden, aber dem generellen Zugriff von außen nicht eingeschränkt sein. (index.core als Verzeichnislisting)
Dafür musst du dem Apache einfach nur sagen, dass er alle .core Dateien durch den PHP Interpreter jagen soll.
Dies wird bei XAMPP in der Datei \xampp\apache\conf\extra\httpd-xampp.conf definiert. Zeile 20 und 43 müsstest du dort dementsprechend mit core ergänzen.