
Ich habe Apache 2.0, PHP 5.2.4 und diese Anweisung in der httpd.conf:
AddType application/x-httpd-php-source .php .php3 .php4 .php5 .php6
AddType
Die Direktive wird verwendet, um die angegebenen Dateinamenerweiterungen dem angegebenen Inhaltstyp zuzuordnen. Dies ist die einzige Bedeutung dieser Direktive. Aber warum schaltet diese Methode den PHP-Handler aus, der .php-Erweiterungen zugewiesen hat, und ich kann den Quellcode von Skripten in meinem Browser anzeigen?
Und ein anderer:
AddType application/x-httpd-php5 .php
Warum schaltet diese Methode den PHP-Handler ein? Dieser muss einfach einen Header Content-Type: application/x-httpd-
an meinen Browser senden und dies darf nur die Bedeutung der Direktive AddType
von mod_mime sein.
Ich bin verwirrt.
Antwort1
DerTyp hinzufügenDie Richtlinie sollte nur Auswirkungen auf dieKundenInterpretation dessen, was Sie senden. Eine häufig verwendete isttext/htmldie die meisten Clients ohne weiteres akzeptieren und für Ihren Zweck interpretieren. Verschiedene Browser wie IE, Firefox und Chrome können diese Header manchmal unterschiedlich interpretieren.
Ein entsprechender Befehl istAddHandlerwas sich darauf auswirkt, wie dieServerinterpretiert die Skripte.
Ihre Frage ist etwas schwer zu verstehen. Wollen Sie damit sagen, dass AddType application/x-httpd-php-source .php .php3 .php4 .php5 .php6
Sie bei der Verwendung den eigentlichen PHP-Code selbst und nicht das verarbeitete HTML sehen können, aber damit AddType application/x-httpd-php5 .php
funktioniert es?
Antwort2
Sie sollten diese Direktive .phps
oder einen beliebigen anderen Namen nur zu PHP-Quelldateien hinzufügen, die mit Syntaxhervorhebung angezeigt werden sollen, nicht zu denen, die interpretiert werden sollen. Wenn Sie möchten, dass die Direktive .php{3,4,5,6}
normal funktioniert, fügen Sie sie dem richtigen Handler hinzu x-httpd-php
. Es gibt keine Möglichkeit, beiden Handlern die gleiche Erweiterung zuzuweisen und es trotzdem funktionieren zu lassen.