Webseiten ohne .html oder .php extension?

michael1971

Neues Mitglied
Immer wieder sehe ich Webseiten, wo man auf einen Link klickt und dann kommt man auf eine neuen Seite ohne .html oder .php.
Sondern nur ein Produktname oder Code.
Wie geht das bitte?

Hier zwei Beispiele:

Sollte nicht jede Seite auf die man springt, immer einen festen Typ haben?
Also beispielsweise .php oder .html

So also:

Kann jemand kurz und verständlich erklären, was es mit diesen ominösen Seiten aufsich hat? Wie man das programmiert?
 

lord_haffi

Mitglied
Ich vermute mal, du meinst URL-Routing. Abgesehen von der Domain wird der ganze Rest der Route vom Server interpretiert. Die Route kann also im Prinzip fast beliebig aussehen.
Vor allem bei größeren Projekten sehen URLs mit dem "Standard-Routing" sehr schnell sehr hässlich aus. Vor allem, wenn noch Parameter dazukommen. Außerdem ist es nicht gerade "Suchmaschinen-freundlich".
Wenn du mal nach URL Routing googlest wirst du schnell einige Beispiele finden, wie sowas programmiert werden kann. Die allermeisten Frameworks unterstützen das von Haus aus.
 
Zuletzt bearbeitet:

aligator

Neues Mitglied
außerdem besteht ein großer Teil des webs auch nicht mehr nur aus PHP und html sonder auch aus Javascript Singlepage anwendungen bei denen die ganze Url nur "gefaked" reingeschrieben wird und komplett von clientseitigem code verwaltet wird.

Beispielsweise mit React + React-Router.

Edit: korrektur: nicht die ganze url sondern alles nach der Domain kann beliebig umgeschrieben werden.
 
Zuletzt bearbeitet:

dominik

Mitglied
Die Seiten haben auch einen festen Typen (mal abgesehen von den clientseitig generierten Webseiten, die @aligator genannt hat).

Welche Datei geladen wird, ist immer Sache des Webservers. Der nimmt deine HTTP-Anfrage entgegen, sieht sich die gewünschte URL an und lädt dann die entsprechende Datei. Im einfachsten Fall ist das eine Route wie /blog/kaffee-machen.html, bei der dann der Webserver schlichtweg die Datei /blog/kaffee-machen.html zurückgibt.

Man kann dem Server aber auch mitteilen, dass er für eine URL wie /blog/kaffee-machen eine entsprechende HTML-Datei suchen soll - also dass kaffee-machen intern durch kaffee-machen.html ersetzt werden soll. Diesen Prozess nennt man Rewriting.

Je nach Webserver werden die Regeln für das Rewriting etwas unterschiedlich definiert. Bei Apache sieht es beispielsweise so aus:

Apache-Konfiguration: URL-Rewriting:
RewriteEngine on
RewriteRule ^/blog/(.*)$ /blog/$1.html
In dieser Regel wird ein Regulärer Ausdruck verwendet, der den Treffer für das Suchmuster (.*) an der Stelle $1 einfügt. Der Server sucht dann nicht nach /blog/kaffee-machen, sondern nach /blog/kaffee-machen.html.
 
Oben Unten