Warum wird PHP-Code in .html-Dateien nicht mehr ausgeführt?
Wenn PHP-Code bisher direkt in Dateien mit der Endung .html verwendet wurde, kann es nach technischen Anpassungen der Hosting-Umgebung vorkommen, dass dieser Code nicht mehr ausgeführt wird. Stattdessen wird die Datei wie eine normale statische HTML-Datei ausgeliefert.
Das betrifft zum Beispiel Dateien wie kontakt.html oder index.html, wenn darin PHP-Code enthalten ist. Normale HTML-Dateien ohne PHP-Code funktionieren weiterhin unverändert.
Der Hintergrund ist die Umstellung auf PHP-FPM sowie der Einsatz gehärteter Server- und CloudLinux-Umgebungen. PHP-Code gehört in moderne Hosting-Setups eindeutig in Dateien mit einer PHP-Endung, zum Beispiel .php oder .phtml.
Warum wird PHP-Code in .html-Dateien nicht mehr ausgeführt?
PHP-Code in .html-Dateien wird nicht mehr ausgeführt, weil .html-Dateien grundsätzlich für statische Inhalte vorgesehen sind. Sie werden vom Webserver direkt an den Browser ausgeliefert und normalerweise nicht durch PHP verarbeitet.
In der Vergangenheit war es auf einigen Systemen möglich, PHP-Code auch in Dateien mit der Endung .html auszuführen. Eine Datei wie kontakt.html konnte dann neben normalem HTML auch PHP-Code enthalten.
Beispiel:
<?php echo date('Y'); ?>
Durch die Umstellung auf PHP-FPM und eine gehärtete Serverumgebung wird PHP-Code nur noch in dafür vorgesehenen PHP-Dateien verarbeitet. Kurz gesagt: HTML ist für statische Inhalte gedacht. PHP-Code gehört in PHP-Dateien.
Verwenden Sie für PHP-Code daher künftig Dateien mit einer dieser Endungen:
.php
.phtml
Warum dürfen .html-Dateien keine serverseitigen Skripte ausführen?
Durch PHP-FPM wird PHP getrennt vom Webserver verarbeitet. Der Webserver reicht passende PHP-Dateien an PHP-FPM weiter, damit der PHP-Code dort ausgeführt werden kann.
Dabei wird klarer zwischen statischen Dateien und ausführbaren PHP-Dateien unterschieden. Eine Datei mit der Endung .html gilt als statische HTML-Datei. Eine Datei mit der Endung .php oder .phtml gilt als Datei, die serverseitigen PHP-Code enthalten kann.
Diese Trennung erhöht die Sicherheit und sorgt für eine stabilere und vor allem eine noch schnellere Hosting-Umgebung.
Die wichtigsten Vorteile sind:
Performance Gewinn
Fehlkonfigurationen werden reduziert
Fehler lassen sich einfacher analysieren
statische HTML-Dateien bleiben statisch
unerwartete Code-Ausführung wird verhindert
PHP-Code wird nur dort ausgeführt, wo es eindeutig vorgesehen ist
moderne PHP-FPM- und CloudLinux-Setups werden besser unterstützt
Warum hat PHP-Code in .html-Dateien früher funktioniert?
Früher konnte ein Webserver so eingerichtet sein, dass auch Dateien mit der Endung .html durch PHP verarbeitet wurden. Das war eine Sonderkonfiguration.
Dabei wurde dem Webserver zum Beispiel mitgeteilt, dass .html-Dateien ebenfalls wie PHP-Dateien behandelt werden sollen. Solche Konfigurationen waren historisch in manchen Umgebungen möglich, sind heute aber aus Sicherheits- und Wartungsgründen nicht mehr empfehlenswert.
In modernen PHP-FPM-Umgebungen ist es sinnvoller, nur echte PHP-Dateien an PHP weiterzureichen. Dadurch bleibt eindeutig nachvollziehbar, welche Dateien ausführbaren serverseitigen Code enthalten und welche Dateien reine HTML-Dateien sind.
Bin ich von der Änderung betroffen?
Sie sind nur betroffen, wenn sich PHP-Code innerhalb Ihrer .html-Dateien befindet.
Typische Beispiele für betroffenen PHP-Code sind:
<?php include 'header.php'; ?>
<?= date('Y'); ?>
<?php echo $variable; ?>
Normale HTML-Dateien ohne PHP-Code sind nicht betroffen. Wenn Ihre .html-Datei nur statisches HTML, CSS, JavaScript oder Bilder einbindet, müssen Sie in der Regel nichts ändern.
Was muss ich tun, wenn PHP-Code in einer .html-Datei enthalten ist?
Wenn Sie PHP-Code in einer .html-Datei verwenden, benennen Sie die Datei bitte in eine PHP-Datei um.
Beispiel: kontakt.html wird zu kontakt.php.
Alternativ kann je nach Aufbau der Webseite auch die Endung "kontakt.phtml" verwendet werden.
Anschließend sollten Sie prüfen, ob interne Links, Formulare, Weiterleitungen oder Navigationspunkte noch auf den alten Dateinamen zeigen.
Beispiel vorher:
<a href="/kontakt.html">Kontakt</a>
Muss dann angepassst werden in:
<a href="/kontakt.php">Kontakt</a>
Was muss ich beachten, wenn meine Startseite index.html heißt?
Wenn Ihre Startseite bisher index.html hieß und PHP-Code enthält, sollten Sie diese Datei in index.php umbenennen.
In den meisten Hosting-Umgebungen wird index.php automatisch als Startdatei erkannt. Das bedeutet, dass Besucher Ihre Webseite weiterhin über die normale Domain aufrufen können.
Wenn sowohl index.html als auch index.php vorhanden sind, kann je nach Serverkonfiguration eine der beiden Dateien bevorzugt ausgeliefert werden - oft die .html-Datei. Entfernen oder sichern Sie daher die alte index.html, wenn diese nicht mehr benötigt wird, damit es hier nicht zu einem Konflikt kommt.
Kann die alte .html-URL erhalten bleiben?
Ja, eine alte URL wie /kontakt.html kann grundsätzlich weiterhin erreichbar bleiben, auch wenn die eigentliche Datei künftig kontakt.php heißt.
Dafür kann eine Weiterleitung in der .htaccess-Datei eingerichtet werden.
Beispiel:
Redirect 301 /kontakt.html /kontakt.php
Diese Weiterleitung sorgt dafür, dass Besucher und Suchmaschinen automatisch von der alten .html-Adresse auf die neue .php-Adresse weitergeleitet werden.
Das ist besonders wichtig, wenn die alte URL bereits in Suchmaschinen gelistet ist oder von anderen Webseiten verlinkt wurde.
Kann die sichtbare .html-URL trotz PHP-Datei erhalten bleiben?
In bestimmten Projekten kann es gewünscht sein, dass die sichtbare URL weiterhin auf .html endet, obwohl intern eine PHP-Datei verwendet wird.
Das kann je nach Aufbau der Webseite mit Rewrite-Regeln in der .htaccess-Datei umgesetzt werden. Solche Regeln sollten jedoch individuell geprüft werden, da sie vom konkreten Projekt, der Verzeichnisstruktur und den vorhandenen Weiterleitungen abhängen.
Für die meisten Webseiten ist eine klare 301-Weiterleitung von .html auf .php die einfachere und sauberere Lösung.
Kann ich PHP in .html per .htaccess wieder aktivieren?
Dies wird in der gehärteten Umgebung von webgo Webhosting-Paketen nicht mehr zuverlässig unterstützt.
Ältere Anweisungen wie diese sollten entfernt werden, wenn sie Probleme verursachen:
AddType application/x-httpd-php .html
AddHandler application/x-httpd-php .html
Solche Regeln passen häufig nicht mehr zu modernen PHP-FPM-Konfigurationen. Sie können dazu führen, dass Dateien falsch verarbeitet, heruntergeladen oder mit einem Fehler ausgeliefert werden.
Wenn PHP-Code benötigt wird, verwenden Sie bitte eine Datei mit der Endung .php oder .phtml.
Warum ist .php oder .phtml besser für PHP-Code?
Dateiendungen wie .php oder .phtml zeigen eindeutig an, dass eine Datei serverseitigen PHP-Code enthalten kann.
Das hat mehrere Vorteile:
Der Webserver erkennt eindeutig, dass PHP verarbeitet werden soll
statische HTML-Dateien bleiben statisch
die Konfiguration ist sicherer und robuster
Fehler lassen sich leichter eingrenzen
das Verhalten ist besser mit modernen Hosting-Setups kompatibel
Entwickler, Support und Systeme erkennen schneller, welche Dateien PHP enthalten
Eine klare Dateiendung hilft also sowohl der Technik als auch der Wartbarkeit Ihrer Webseite.
Was passiert mit normalen .html-Dateien ohne PHP-Code?
Normale .html-Dateien ohne PHP-Code funktionieren weiterhin unverändert. Wenn Ihre Datei ausschließlich HTML, CSS, JavaScript, Bilder oder externe Inhalte enthält, müssen Sie nichts anpassen.
Betroffen sind nur .html-Dateien, in denen PHP-Code steht, zum Beispiel PHP Includes, PHP Variablen oder PHP Ausgaben.
Wir hoffen, Ihnen konnte dieser Artikel weiterhelfen! 😊
Wenn Sie weitere Fragen zur Kompatibilität Ihrer Website oder zur Umstellung auf eine aktuelle PHP-Version haben, berät Sie unser Support-Team gern per Mail, Live-Chat oder Telefon.
Mehr Infos und Kontaktdaten unter: www.webgo.de/support
➡️ Für Verbesserungen oder Vorschläge von FAQ Themen schicken Sie uns eine Mail an faq@webgo.de
War dieser Beitrag hilfreich?
Ihre Bewertung hilft uns, unsere Anleitungen weiter zu verbessern.