Thomas Luethi: mod_rewrite + Content-Negotiation

Beitrag lesen

Hallo,

ich will mir eine Hompega machen, bin mir aber noch nicht ganz sicher, ob ich "normales" HTML benutzen oder das HTML mit PHP generieren will. Damit ich (im Falle einer "Umentscheidung") nicht alle Links ändern muss, dachte ich an Content-Negtiation, dass ich also auf /page verlinken würde, nicht auf /page.html oder /page.php.

Obwohl ich weiss, dass viele Puristen genau Dein Vorhaben toll finden
und sagen, dass die "Dateiendigung" aus der URL der "Ressource"
verbannt werden muesse, plaediere ich stark dafuer, die URLs
fuer (X)HTML-Ressourcen auf .html enden zu lassen.
Es hat Vorteile beim lokalen Bearbeiten und Betrachten,
und auch fuer die Benutzer, wenn sie eine oder mehrere
Deiner Seiten herunterladen (von Hand oder mit wget,
HTTrack u.s.w.) - dann funktionieren naemlich auch
alle relativen Links noch, solange die Dateien im
gleichen Verzeichnis sind.

Gerade auf dem Apachen ist es doch problemlos moeglich,
auch Dateien mit der Endigung .html durch den PHP-Parser
zu schicken.

Aber eben, es ist Geschmackssache, und Deine URLs ohne
"Dateiendigung" entsprechen auf jeden Fall den Entsprechungen
des W3C - und Du bist damit modern und cool! ;-)

RewriteRule     ^(.*).(html|php|gif|jpeg|png|txt)$ http://www.plenz.com/$1 [NS,NC,R=301,L]
Allerdings kreiert das eine Endlos-Schleife aus Redirects, erst von /page.html nach /page und von da aus wieder nach /page.html und so weiter...

Sollte es eigentlich nicht.
Erstens wegen dem L ("last"), zweitens, weil Browser gemaess der HTTP Spec.
Endlosschleifen erkennen und abbrechen sollten.

Was erwartest Du beim Abruf von /page.html in dem Platzhalter $1?

Gruesse,

Thomas

--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/