HTML mit PHP parsen
Auf einigen Servern ist das parsen von HTML durch PHP abgeschaltet und lässt sich auch nicht per .htaccess aktivieren - entweder wurde der Handler anders benannt, oder der Betreiber hat andere Vorkehrungen getroffen.
Falls jedoch mod_rewrite aktiv ist, hat man mehrere Möglichkeiten, die Dateien trotzdem von PHP interpretieren zu lassen.
1. Man hat selbst Einfluss auf die Dateinamen. Mit einer einzigen Zeile in der .htaccess
RewriteRule ^(.*).html$ $1.phpwird bei jeglichem Aufruf einer html-Datei (meinedomain.de/index.html) intern die entsprechende php-Datei gewählt und nach dem Parsen an den Browser ausgeliefert. Dazu muss man natürlich die html-Dateien umbenennen, so dass sie auf .php enden.
2. Man hat keinen direkten Einfluss auf die Dateinamen (z.B. dadurch, dass der Blog auf dem eigenen Server veröffentlicht wird). Durch die Zeile
RewriteRule ^(.*)\.html$ parsemyhtml\.php\?parse=$1wird jeglicher Aufruf an eine .html-Datei auf die Datei parsemyhtml.php umgelenkt. Dabei wird dieser .php-Datei der Pfad zu der zu parsenden .html-Datei als Parameter übergeben (ohne Endung). Im einfachsten Fall würde die Datei folgendes beinhalten:
<?phpHierdurch wird der Inhalt der jeweiligen .html-Datei innerhalb einer .php-Datei eingefügt und somit auch vom PHP-Parser verarbeitet. Statt per Header auf 404 zu verweisen, könnte man auch auf die Startseite oder eine eigene 404-Statusseite weiterleiten ( header('Location: http://www.example.com/');
$parse = $_GET["parse"];
$openhtml = $parse . ".html";
if (file_exists($openhtml)) {
include($openhtml);
} else {
header("HTTP/1.0 404 Not Found");
}
?>
) oder jeden beliebigen Inhalt präsentieren (z.B. das google 404-Widget, mit dem die Seite ungefähr so aussehen kann). Natürlich sollte man darauf achten, dass durch den Parameter nicht beliebige Dateien abgerufen werden können, die dem direkten Zugriff durch den Browser normalerweise nicht ausgesetzt sind.




