Heinz-Jürgen Schymura

PHP2HTM


Nachdem ich mindestens 2 Jahre meine Webseite, die sich mit Wandern beschäftigt und auch Bilder zeigt, mit meinem PHP Menüsystem 1 im Internet betrieben hatte, meinte ich, ich möchte andere, sprechende Adressen in der Adressenzeile des Browsers und auch in dessen Linkanzeigen haben.
Statt http://heinz-juergen-schymura.de/index.php?the=wan&u_a=eif&uu_a=042 wollte ich also etwa http://heinz-juergen-schymura.de/Wandern/Eifel/Tour 42.htm als Adresse haben.
Gut, das wollte ich, also suche ich ein wenig in den Foren im Internet, um mich etwas schlauer zu machen, wie man (ich) dies erreichen könnte ohne viel Arbeit.
Schnell wurde klar, dass es eventuell über die Datei .htaccess gehen könnte. Diese Datei wird meistens dazu genutzt, eigene Fehlerseiten einzubinden, die Indexausgabe eines Verzeichnisses zu unterbinden oder ein Verzeichnis mit Passwort zu schützen.
Aber man kann hier noch mehr machen. Man kann den Server zum Beispiel anweisen Linkadressen umzuschreiben. So sollte man aus der kryptischen Adresse http://heinz-juergen-schymura.de/index.php?the=wan&u_a=eif&uu_a=042 mit einigen Regeln die Adresse http://heinz-juergen-schymura.de/Wandern/Eifel/Tour 42 erstellen lassen können wurde mir in den Foren versichert.
Nachdem ich mich dann bedankt hatte machte ich mich an die Arbeit.
Auf meinem lokalen Rechner legte ich eine Kopie meiner Webseite zum Testen an. Mit xampp konnte ich ja da auch alle selbst erstellten Regeln testen, ohne sie erst auf den Server im Internet hoch zuladen.
Nachdem ich die Datei .htaccess entsprechend geändert hatte gab ich also zum Beispiel in der Adresszeile des Browsers http://heinz-juergen-schymura.de/Wandern/Eifel/Eifel ein und es wurde mir tatsächlich der Inhalt der Datei angezeigt, die ich "normalerweise" mit http://heinz-juergen-schymura.de/index.php?the=wan&u_a=eif hätte ansprechen müssen.
Es gab nur ein "kleines Problem". Da der Browser ja (seiner Meinung nach) die Datei aus dem Verzeichnis Wandern/Eifel/ erhalten hatte, versuchte er natürlich relative Links, die sich in dieser Seite befangen, so aufzulösen, dass er also etwa die zentrale CSS-Datei unter Wandern/Eifel/_private/homepage.css anforderte.
Das konnte natürlich nicht gut gehen, da ja alle relativen Links in den einzelnen Seiten immer als Wurzel das Verzeichnis haben, indem sich auch die Datei index.php befindet. Der Browser würde die zentrale CSS-Datei unter _private/homepage.css finden, aber wie sollte er das wissen?
Nachdem in mich wieder in den Foren umtat und dann dort mein Problem mit den relativen Links vorstellte war dann doch der einzige wirklich funktionierende Ratschlag von mehreren Schreibern in den Foren, die sonst eigentlich immer gute Antworten parat hatten, die relativen Links durch absolute Links zu ersetzen.
Klar, das würde funktionieren, aber das wollte ich absolut nicht.
Nach einigem Hin- und Herüberlegen war für mich klar, ich brauchte ein Programm, das aus einer laufenden Webseite mit meinem PHP Menüsystem 1 einen statische Webseite erzeugte, in dem die Links dann auch ruhig relativ sein konnten.
So erstellte ich letzten Endes dann das Programm PHP2HTM.
Um nun wirklich sprechende Adressen zu bekommen, musste ich innerhalb der Steuer-(Konfigurationsdateien) Dateien Änderungen vornehmen, also etwa eifel ersetzen durch Eifel. Dies, oder anderes mit einem Editor zu ändern war ja einfach. Aber das wirkliche Ändern der Dateinamen unter dem Betriebssystem hätte denn doch zu viel Arbeit bedeutet, so schrieb ich also noch das Programm DateiNamen (siehe Menüpunkte Beschreibungen DateiNamen und Hilfe DateiNamen), das diese Arbeit macht.
Man kann in dem Programm PHP2HTM die verschiedensten Einstellungen vornehmen, so dass man zum Beispiel ein oder mehrere Verzeichnisse ganz kopieren lassen kann, oder auch ganz ausschließen kann von der Bearbeitung, auch ist es möglich dennoch aktive Seiten in der dann erzeugten statischen Webseite mit den sprechenden Adressen zu haben.
Das Programm  PHP2HTM speichert die Programmeinstellungen für den nächsten Start. Es braucht also Schreibrechte in dem Verzeichnis, in dem es sich selbst befindet.