Seiten-Umstellung von *html auf *php mit mod_rewrite
remuen
- webserver
Guten Morgen
Da ich die Menüstruktur auf meiner Website in Zukunft dynamisch mit PHP erstellen will, muss ich die ganze Website von bisher ausschliesslich HTML-Seiten auf PHP-Seiten umstellen.
Soviel ich bis jetzt herausgefunden habe, kann ich mit folgender Anweisung in der .htaccess alle Aufrufe von *.htm(l)-Files auf eine gleichnamige *.php-Seite umleiten:
RewriteEngine On
RewriteRule ^(.*).htm$ $.php
Ich hoffe, diese Anweisung stimmt so.
Wie verhalten sich nun Suchmaschinen bei dieser Art Umleitung? Verliere ich dadurch möglicherweise meine relativ gute Platzierung in Suchmaschinen (v.a. Google)? Was muss ich noch weiter beachten? Gibt es allenfalls noch einen empfehlenswerteren Weg für die Umstellung?
Danke im voraus für alle Inputs und Gruss
René
Hi,
Da ich die Menüstruktur auf meiner Website in Zukunft dynamisch mit PHP erstellen will, muss ich die ganze Website von bisher ausschliesslich HTML-Seiten auf PHP-Seiten umstellen.
was genau möchtest Du ändern: die URLs (sinnfrei, kontraproduktiv) oder die Dateinamen (konfigurierbar)?
RewriteRule ^(.*).htm$ $.php
Ich hoffe, diese Anweisung stimmt so.
Nein, der Inhalt von Klammer n steht in $n; also der der ersten Klammer in $1. "$" ist das Symbol für "Stringende". Das erfährst Du allerdings auch in der Dokumentation zu mod_rewrite.
Wie verhalten sich nun Suchmaschinen bei dieser Art Umleitung?
URL ist URL, Ressource ist Ressource. Was serverintern passiert bekommt _niemand_ mit. Es existiert von außen kein Weg, eine URL mit einer Datei in Verbindung zu bringen.
Was muss ich noch weiter beachten?
Für Ressourcen, die text/html sind, machen nur die URL-Endungen "/", ".html" und ggf. ".htm" Sinn.
Gibt es allenfalls noch einen empfehlenswerteren Weg für die Umstellung?
Konfiguriere den Server so, dass Du an den Dateien und URLs nichts zu ändern hast: Lasse Deine "*.htm" auf PHP prüfen.
Cheatah
Hallo
was genau möchtest Du ändern: die URLs (sinnfrei, kontraproduktiv) oder die Dateinamen (konfigurierbar)?
Aus index.html wird index.php, aus welcome.htm -> welcome.php, da in die heutigen reinen HTML-Files nun PHP-Code kommt:
<?php
include_once ("create_menue.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
...
<body>
<table border="0" width="100%">
<tr>
<td class="tabtopleft">
<?php create_menue($PHP_SELF);?>
...
Nein, der Inhalt von Klammer n steht in $n; also der der ersten Klammer in $1. "$" ist das Symbol für "Stringende". Das erfährst Du allerdings auch in der Dokumentation zu mod_rewrite.
Funktionierts so:
RewriteRule ^(.*).html$ $1.php
Für Ressourcen, die text/html sind, machen nur die URL-Endungen "/", ".html" und ggf. ".htm" Sinn.
Da ich die Menüs wie oben gezeigt dynamisch einfügen will, muss ich alle Files ändern, auch wenn der eigentliche Content (vorerst noch) statisches HTML bleibt. Später soll der sich ändernde Inhalt (Termine, News etc) auch dynamisch eingefügt werden.
Konfiguriere den Server so, dass Du an den Dateien und URLs nichts zu ändern hast: Lasse Deine "*.htm" auf PHP prüfen.
Während mod_rewrite funktioniert, geht's mit *.htm-Files nicht und ich kann den Server leider auch nicht umkonfigurieren (kein Zugriff auf die Mime-Typen).
Gruss René
Hi,
was genau möchtest Du ändern: die URLs (sinnfrei, kontraproduktiv) oder die Dateinamen (konfigurierbar)?
Aus index.html wird index.php,
Dateiname oder URL, Dateiname oder URL?
da in die heutigen reinen HTML-Files nun PHP-Code kommt:
Wie gesagt kannst Du Deinen Server so konfigurieren, dass hierzu eine Endung wie ".php" nicht notwendig ist.
Funktionierts so:
Warum fragst Du? Hast Du es probiert?
Für Ressourcen, die text/html sind, machen nur die URL-Endungen "/", ".html" und ggf. ".htm" Sinn.
Da ich die Menüs wie oben gezeigt dynamisch einfügen will, muss ich alle Files ändern,
Nein, musst Du nicht. Bis auf den Inhalt, versteht sich.
Während mod_rewrite funktioniert, geht's mit *.htm-Files nicht und ich kann den Server leider auch nicht umkonfigurieren (kein Zugriff auf die Mime-Typen).
Ich verstehe nicht, was Du damit meinst. Du hast _definitiv_ Zugriff auf die Serverkonfiguration, weil Du exakt diese mittels mod_rewrite änderst.
Cheatah
Hi again
Und ich hab mal geglaubt, ne Website zu erstellen und zu pflegen sei so nebenbei machbar ... ;-) In der Zwischenzeit hab ich mir jedoch einiges an HTML- und CSS-Kenntnissen aneignen müssen und bin nun dabei, mich auch noch "so nebenbei" in PHP einzuarbeiten. Aber all das genügt nicht anscheinend selbst für einen Freizeit-Mitternachts-Amateur-Webmaster wie ich es bin noch nicht, denn nun muss ich mir wohl oder übel auch noch ein paar Nächte mit dem Apache-Server um die Ohren resp. Augen schlagen :-( Wer bezahlt mir denn eigentlich die vielen Streichhölzer, damit die Augen länger offen bleiben? ;-)
Nun gut, es scheint, dass ich ein paar Verständnisprobleme habe. Ich versuch's mal so auszudrücken wie ich's kann:
Dateiname oder URL, Dateiname oder URL?
Unter URL verstehe ich http://www.nak-badragaz.ch/index.html. Daraus wird nun halt nun vermutlich oder auch nur vielleicht möglicherweise http://www.nak-badragaz.ch/index.php, weil jetzt *htm(l)-Files mit PHP-Code drin nicht geparst werden.
Warum fragst Du? Hast Du es probiert?
Noch nicht, da komm ich allerfrühestens diese Nacht dazu ...
Wie gesagt kannst Du Deinen Server so konfigurieren, dass hierzu eine Endung wie ".php" nicht notwendig ist.
Du hast _definitiv_ Zugriff auf die Serverkonfiguration, weil Du exakt diese mittels mod_rewrite änderst.
OK, nur weiss ich nicht wie! Ich weiss, ich weiss, nächtelang englische Apache-Handbücher studieren. Ein wenig mehr Hilfe hätte ich deshalb dankend angenommen. ;-). Aber ich werd wohl auch diese Hürde noch irgendwie schaffen.
Nur was passiert, wenn ich teilweise weiter reine HTML-Files verwende, und zwar im Mitgliederbereich in einem Unterverzeichnis namens /members, dessen vollständige Betreuung ich abgegeben konnte? Werden die dann fortan auch durch den PHP-Parser geschickt, wenn ich es vielleicht und möglicherweise doch irgendwann schaffen sollte, die Serverkonfiguration so zu ändern, so dass die Website immer noch "läuft"?
Gruss René
Was ich noch sagen wollte: Vielleicht hilft mir Cheatah oder sonst jemand doch noch weiter, so dass ich ein paar Nächte mehr schlafen kann ;-)
René
Hi remuen,
Nur was passiert, wenn ich teilweise weiter reine HTML-Files verwende, und zwar im Mitgliederbereich in einem Unterverzeichnis namens /members, dessen vollständige Betreuung ich abgegeben konnte? Werden die dann fortan auch durch den PHP-Parser geschickt
die Apache-Konfiguration basiert auf einem äußerst komfortablen System von Gültigkeitsbereichen, auf welche sich jede Deiner Konfigurations-Direktiven bezieht.
Innerhalb Deines Verzeichnisbaums, also wenn Du ausschließlich .htaccess verwendest, besteht der Gültigkeitsbereich einer solchen Datei aus dem kompletten Verzeichnisbaum, in dessen Wurzelverzeichnis diese Datei liegt - und dies bedeutet automatisch, daß Du in jedes Unterverzeichnis Deiner Wahl ebenfalls wieder .htaccess-Dateien legen und damit das Verhalten in _diesem_ Verzeichnisbaum wieder anders definieren kannst.
In der zentralen Apache-Konfiguration geht übrigens _wesentlich_ mehr ...
Viele Grüße
Michael
Guten Morgen Michael
... und dies bedeutet automatisch, daß Du in jedes Unterverzeichnis Deiner Wahl ebenfalls wieder .htaccess-Dateien legen und damit das Verhalten in _diesem_ Verzeichnisbaum wieder anders definieren kannst.
Wow, Selfhtml ist wieder online ...
Herzlichen Dank für Deine Info. Hab die vergangenen Tage genutzt, um mich etwas klüger zu machen und genau das auch rausgefunden. Aber super, dass Du mir doch noch konkrete Hilfe anbietest. Hab schon geglaubt, dass hier im Forum nur denen geholfen wird, die zu bequem sind, selbst was über einfache Linkformatierungen mit CSS im Selfhtml nachzuschauen ;-))
Einen wunderschönen Tag (wieder mit Selfhtml)!
René