@@Christoph Schnauß:
halte aber den Ansatz von Adrian, mit Hilfe von content_negotiation lediglich zwischen *.xhtml und *.html differenzieren zu wollen, komplett für falsch. Das sind in meinen Augen keine unterschiedlichen _Inhalte_, sondern unterschiedliche _Formen_. Und dafür braucht man kein content_negotiation.
Dir scheint immer noch nicht ganz klar zu sein, was Inhaltsvereinbarung (content negotiation) bedeutet. (Vielleicht kann dieser Artikel da etwas nachhelfen.)
Natürlich bedeutet es NICHT, das sich unterschiedliche _Inhalte_ hinter einem URI verbergen. Ein URI referenziert eine Ressource, also _einen_ bestimmten Inhalt.
Inhaltsvereinbarung sorgt dafür, dass dieser Inhalt an den Client in der diesem am besten passenden Repräsentation (_Form_) geschickt wird. Und das in verschiedenen Dimensionen: Sprache, Format (bspw. PDF oder eben HTML oder XHTML), ...
Live long and prosper,
Gunnar
Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.