Moin!
MultiViews funktioniert genauso - auch dort kann man eine Ressource explitzit anfordern durch Angabe der passenden Endungen - oder sich eine aussuchen lassen, wenn man keine Daten angibt.
Wenn tatsächlich eine URL auf mehrere Dateien zeigt, die der Server je nach Request aussucht, hat das natürlich seinen Sinn. Allerdings gibt es in diesem Fall nur eine Ressource und ich würde MultiViews nicht wirklich für »Negotiation« einsetzen, weil in jedem Fall diese und nur diese Ressource gesendet wird.
Mit anderen Worten: Es gibt überhaupt keinen Grund, auf die Dateiendung zu verzichten.
Du hast den Grund für deine Aktion noch nicht genannt. Was also willst du erreichen?
Es würden also mehrere URLs für unter allen Umständen ein- und dieselbe Ressource existieren, und das gefällt mir nicht, da ich die Adressierung eindeutig halten will.
Diesen Zustand hast du so oder so. Mit Redirects von endungshaltigen URLs auf endungslose URLs machst du einen ganzen Satz zusätzlicher URLs gültig - auch wenn die nur einen permanenten Redirect auslösen. Die korrekte Antwort für eine nichtexistente URL wäre 404. Dann hast du Eindeutigkeit, nämlich ausschließlich ".html".
Mal so grundsätzlich gesagt: Wenn du endungslose URLs für HTML-Seiten verwendest - was machst du bei Bildern dann? Gemäß der Gleichbehandlung müßtest du die dann auch ohne Endung ausliefern.
Das hatte ich vor und hätte es auch umgesetzt, wenn ich MultiViews zur Verfügung hätte. Aber jetzt wäre ich bereits froh, wenn für den Anfang die Inhaltsdokumente .html- und .php-Dateien ohne Endung aufgerufen werden können, ganz einfach weil deren URLs häufiger »benutzt« werden. Ich habe keine Grafiken, deren Adressen großartig einzeln benutzt werden (Adresszeile, Links, Bookmarks, Suchmaschinen, Merkbarkeit...).
Dann hast du das falsche Werkzeug für die Aufgabe eingesetzt. Multiviews wären dafür sowieso nicht wirklich zuständig.
Du willst also eine vernünftige URL-Struktur mit der Möglichkeit, kurze, direkte URLs nutzen zu können?
Lass die Endung ".html" an allen URLs dran. Ändere die Endung ".php" in ".html" um (in den URLs, nicht in den Dateinamen - umbiegen mit mod_rewrite). Schon hast du Einheitlichkeit: HTML-Seiten enden auf .html, JPEG-Bilder auf .jpg, etc...
Und wenn du kurze, prägnante URLs haben willst, kannst du ja immer noch Kurzlinks definieren, die auf die längere Location redirecten. Oder als einzeln definierter Alias denselben Inhalt direkt ausliefern.
Ich glaube aber nicht, dass das Weglassen von Dateiendungen irgendwie mehr Klarheit oder Einsparung in der Tipparbeit bringt. Denn wenn du keine Endung verwendest, benutzt du ein ungewöhnliches URL-Schema.
Einerseits sind Benutzer durchaus gewohnt, am Ende auch mal ".html" zu tippen. Andererseits werden deine Unterseiten mutmaßlich sowieso nicht durch "tippen" der URL aufgerufen, sondern überwiegend durch Verfolgen von Links (auf deinen eigenen oder den Seiten anderer, z.B. in Suchmaschinen), Aufrufen von Bookmarks bzw. Nutzen der automatischen URL-Ergänzung des Browsers. Ohne Endung schaffst du die Verwirrung zwischen Verzeichnissen (die ja eigentlich auf "/" enden sollten, aber auch ohne funktionieren können) und Seitennamen. Außerdem ließen sich solche Seiten nicht einfach so abspeichern und lokal nutzen, weil die Endung fehlt.
- Sven Rautenberg
Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!