PHP Code in HTML-Seiten ausführen, so geht’s: Möchte man auch HTML Seiten über den PHP Interpreter ausgeben lassen (zum Beispiel, weil sich in den HTML-Dateien auch ab und zu kleine PHP Code-Schnipsel befinden), lässt sich das ganz einfach über die “.htaccess” Datei einstellen.
Je nachdem, ob PHP als FPM Modul oder als FastCGI läuft, muss man dazu unterschiedliche Zeilen in die .htaccess Datei im Hauptordner eintragen – anschließend werden auch die HTML Dateien vom Apache-Server zuerst an den PHP-Interpreter geschickt, bevor sie an den Browser des Besuchers ausgeliefert werden. Statt HTML lassen sich so aber natürlich auch andere Dateiendungen über PHP ausgeben.
.htaccess: HTML per PHP ausliefern
Diese Zeilen müssen in der .htaccess Datei ergänzt werden (je nachdem, als welches Modul PHP ausgeführt wird – im Zweifel beides ausprobieren!):
# Apache FPM
AddType application/x-httpd-php .html .htm
# Als FastCGI
AddHandler application/x-httpd-php .html .htm
.htaccess: HTML per PHP ausliefern – 2. Möglichkeit
Hilft das nicht, kann man explizit PHP5 als Interpreter angeben, der die HTML Dateien parsen und ausgeben soll:
# Apache FPM
AddType application/x-httpd-php5 .html .htm
# Als CGI
AddHandler application/x-httpd-php5 .html .htm
.htaccess: HTML per PHP ausliefern – 3. Möglichkeit
Eine weitere Möglichkeit, um die HTML Dateien über den PHP Interpreter auslesen und dann ausliefern zu lassen ist dieser Code für die .htaccess Datei:
# PHP als Apache-Modul
<ifmodule mod_php5.c>
AddHandler php5-script .php .html .htm
AddType text/html .php .html .htm
</ifmodule>
# PHP als FastCGI
<ifmodule mod_fcgid.c>
<files ~ (\.html)>
SetHandler fcgid-script
FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .html
Options +ExecCGI
allow from all
</files>
</ifmodule>
# PHP als CGI
<Files ~ (\.html)>
SetHandler None
AddHandler php-script .html
Options +ExecCGI
allow from all
</Files>