Frameworks wie z.B. .net routen über eine Mustererkennung was zum Ziel hat, aus einer unendlichen Anzahl möglicher Routen eine endliche Anzahl zu machen die sich im Code wiederfindet. Eine saubere Trennung ist das jedoch nicht.
Die Idee in ASP.NET MVC war "Convention before Configuration", d.h. MS hat es als Feature verstanden, dass die URL direkt auf Controller mappt, nicht als besondere Mühe. Man muss das aber nicht tun. Ich kann auch ein Muster wie "dings.html" „erkennen“ und dem hart den Controller "Foo" mit der Methode "Bar" zuordnen. Und ich kann die Routing-Table im Programm codieren, oder eine Funktion schreiben, die sie aus einer Datei einliest. Dynamisch ändern kann ich sie allerdings nicht, so weit ich weiß, dafür muss ich das Web neu starten.
Und schließlich Content-Negotiation:
/index.html
liefert verschiedene Inhalte. Also ein URL, verschiedene Inhalte. Das kann man über die Klassenbindung regeln dass der URL bleibt aber wenn die Klassenbindung im URL kodiert ist, hast Du eben verschiedene URLs.
Der einzige Content, den deine index.html mir gerade aushandelt, ist ein HTTP 404 - wasn da kaputt?
In .net würde ich so vorgehen, dass ich der index.html in der Routingtable einen Main Controller (oder sonstwas) zuordne, darin die relevanten Kriterien für variablen Content überprüfe und dann den gewünschten View erzeuge. Welche konfigurativen Möglichkeiten MVC an dieser Stelle noch bietet, darin bin ich nicht ganz so firm. Aber wenn's drum geht, je nach Berechtigung Content anzubieten, ist man konfigurativ vermutlich eh am Ende.
Rolf
Dosen sind silbern