Christian Eyrich: RewriteRule zur Ersetzung der Fileextension

Beitrag lesen

Hallo,

bisher hatten meine Dokumente die Extension .html, jetzt habe ich sie auf .php umgestellt. D.h.
http://meinedomain.de/diedatei.html heißt jetzt
http://meinedomain.de/diedatei.php
Aufrufe der Seiten mit .html (z.B. aus einer Suchmaschine) sollen aber keine 404 bringen, sondern die jeweilige .php aufrufen.

Momentan habe ich das so gelöst:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^.*/tests/.*$ [NC]
RewriteRule ^(.+)html$ $1php [L]

Die .html Fileextensions aller Dateien, bis auf die im Unterverzeichnis tests, werden durch .php ersetzt.
Nur sieht der User/Browser weiterhin http://meinedomain.de/diedatei.html in der URL-Zeile und Webspider werden wohl auch nicht den neuen Namen mitbekommen.
D.h. der Server findet intern die diedatei.php und liefert sie aus, benachrichtigt den Client aber nicht darüber.

Deshalb dachte ich mir, die Rule durch das zu ersetzen:
RewriteRule ^.*%{HTTP_HOST}(.+)html$ $1php [R,L]

Was jetzt passiert ist mir unerklärlich. Es steht weitherhin http://meinedomain.de/diedatei.html in der URL-Zeile und der Browser zeigt nur den HTML-Teil der PHP-Datei. D.h. der Server interpretiert keinen beinhalteten PHP-Code und teilt auch dem Client nichts über den neuen Namen mit, obwohl es doch eine externe Umleitung ist.

Welche Rule ist eurer Meinung nach denn richtig?

Grüße,
Christian