Dies liegt an einem Missverständnis darüber, was eine URL eigentlich ist, was wahrscheinlich durch die Tage der statischen .HTML-Dateien und PHP-Skripte geholfen wird.
Traditionell ist alles, was hinter der TLD liegt, ein Zeiger auf eine bestimmte Datei. Angenommen, ein Blogpost befindet sich unter example.com/blog/2009/oct/18/what-have-we-come-to
. Ohne die Verwendung von ausgefallenen Techniken würde dies bedeuten, dass es einen Ordner mit dem Namen blog gibt, und zwar einen 2009
Ordner, und zwar einen Ordner für jeden Monat und in diesen Ordnern einen anderen Ordner für jeden Tag des Monats. Natürlich wird dies sehr schnell sehr kompliziert.
Aus diesem Grund haben Webserver (wie Apache) und Programmiersprachen (wie PHP) das Umschreiben von URLs erfunden . Das bedeutet, dass die genannte URL in etwas überschaubarer umgewandelt wird, z example.com/blog/articles.php?id=423
. B.. Hier verwendet ein articles.php
Skript die bereitgestellte Beitrags-ID, um den zutreffenden Beitrag nachzuschlagen. Anschließend wird der Beitrag angezeigt, aber der Benutzer würde die URL trotzdem als anzeigen example.com/blog/2009/oct/18/what-have-we-come-to
.
Bei einem anderen Ansatz wird dies alles völlig verworfen. Alles nach der TLD (in diesem Fall /questions/56772/website-url-hiding-hiding-file
) ist lediglich ein Hinweis auf den Inhalt und nicht notwendigerweise eine Datei. Einige Websites, beispielsweise Super User, basieren auf einem MVC-Ansatz (Model-View-Controller). Normalerweise umfasst dies eine Liste von URLs für eine Website und ordnet diese den entsprechenden Funktionen und dem entsprechenden Code zu, um diese Seite anzuzeigen. Zum Beispiel könnte Super User so aussehen 1 :
'superuser.com/' > displayFrontPage() 'superuser.com/questions/' > displayQuestionsList(sorted=default) 'superuser.com/questions/<QuestionID>/<QuestionID>' > displayQuestion(question= QuestionID)
Dies wird meistens in einer Datei abgelegt. Ich könnte ein allgemeines Layout sein:
superuser/ controller.aspx (which contains the list of URLs and points to a view in views.aspx) views.aspx (which contains all the code for the superuser, such as displayFrontPage() and displayQuestion(question= QuestionID)) models.aspx (which contains information about the table in the database.)
1 Bitte denken Sie daran, dass ich keine Ahnung habe, wie der Controller für ASP MVC funktioniert (ich bin eher ein Django-Typ), so dass dies wahrscheinlich nicht so genau ist. Es ist nur ein Beispiel