*.php.inc vs. *.inc / Apache
Clemens
- webserver
0 Sönke Tesch0 Clemens
Hallo!
Weiß zufällig jemand, wie man dem Apache beibringt, dass er *.php.inc-Dateien _nicht_ interpretieren soll?
Ich hatte auf einem älteren Apache-Server Dateien hinterlegt, die per @fopen bzw. include() von einem anderen Server (!!) eingelesen werden (das Sicherheitsproblem ist mir bewußt). Mit der alten Apache-Konfiguration ging das. Nun hat mein Kollege den Apache upgedatet, was zu Problemen führt. *.inc-Dateien werden weiterhin nicht interpretiert und so wie sie sind ausgeliefert, *.php.inc-Dateien werden aber interpretiert, was ich nicht möchte.
Ich denke es liegt an
AddType application/x-httpd-php .php
oder einer neueren Sicherheitseinstellung, wer weiß mehr?
Clemens
Weiß zufällig jemand, wie man dem Apache beibringt, dass er *.php.inc-Dateien _nicht_ interpretieren soll?
Ich denke es liegt an
AddType application/x-httpd-php .php
Exakt. Der Apache wertet alle Dateiendungen aus, da mit den Endungen neben MIME-Typen auch Sprachen, Zeichensätze und Handler bestimmt werden können. Die Endung .html.de zeigt zum Beispiel eine HTML-Datei in Deutsch an.
Da in Deinem Fall .inc kein spezieller MIME-Typ zugewiesen ist, gilt logischerweise der von .php, was wiederum dazu führt, daß die Datei vom PHP-Interpreter erkannt und ausgeführt wird.
Ihr könnt das Problem umgehen, indem Ihr .inc einen Typ (sinnvollerweise text/plain) zuweist. Normalerweise ist die Reihenfolge der Endungen egal, geben jedoch zwei Endungen gleiche Daten an, gilt die Endung, die am weitesten rechts steht. Hier würde also links .php mit application/x-httpd-php stehen, rechts .inc mit text/plain -> rechts hat Priorität, der Typ der Datei wird zu text/plain, der PHP-Interpreter fasst die Datei nicht an.
Weitere Informationen findet Ihr in der Apache-Anleitung, Kapitel mod_mime.
Gruß,
soenk.e
Exakt. Der Apache wertet alle Dateiendungen aus, da mit den Endungen neben MIME-Typen auch Sprachen, Zeichensätze und Handler bestimmt werden können. Die Endung .html.de zeigt zum Beispiel eine HTML-Datei in Deutsch an.
Da in Deinem Fall .inc kein spezieller MIME-Typ zugewiesen ist, gilt logischerweise der von .php, was wiederum dazu führt, daß die Datei vom PHP-Interpreter erkannt und ausgeführt wird.Ihr könnt das Problem umgehen, indem Ihr .inc einen Typ (sinnvollerweise text/plain) zuweist. Normalerweise ist die Reihenfolge der Endungen egal, geben jedoch zwei Endungen gleiche Daten an, gilt die Endung, die am weitesten rechts steht. Hier würde also links .php mit application/x-httpd-php stehen, rechts .inc mit text/plain -> rechts hat Priorität, der Typ der Datei wird zu text/plain, der PHP-Interpreter fasst die Datei nicht an.
Weitere Informationen findet Ihr in der Apache-Anleitung, Kapitel mod_mime.
Hi Sönke!
Danke für den Hinweis! Mit einer .htaccess und dem Eintrag AddType text/html .inc funktioniert das ganze jetzt, alternativ dazu auch in der httpd.conf.
Clemens