Woher weiß der Browser, dass index.html die Startseite ist?

Mondgesang

Lieutenant
Registriert
Dez. 2023
Beiträge
795
Für gewöhnlich baue ich meine Websites von Hand in einem Webspace. Dort hatte ich es bislang so gehandhabt, dass ich meine Startseite, also die index.html oder index.php im / Rootverzeichnis liegen hatte und alle anderen Seiten im Ordner pag.

Jetzt habe ich mal einfach aus Neugier, alle Seiten (Impressum, Artikel, Kontakt, etc etc pp) mit ins Rootverzeichnis gelegt. Wenn ich meine Website einfach als URL im Browser eingebe, komme ich dennoch immer zuverlässig auf die Home-Seite. Woher weiß der Browser, dass er genau die ansteuern muss? Oder liegt das irgendwo in den DNS-Domänen-Nameserver Geschichten, dass der Browser genau dadrauf gerichtet wird?
 
  • Gefällt mir
Reaktionen: BeBur
Steht normalerweise in der Konfigurationsdatei des Webservers, also in nginx z.B.

Code:
    root /var/www/html/website/;
    index index.html index.php;

In dem Fallbeispiel prüft nginx dann in dem angegebenen Verzeichnis nach index.html oder index.php und verarbeitet diese.
 
  • Gefällt mir
Reaktionen: konkretor, qiller und nutrix
Und wenn ich die index.html in home.html umbenenne, weil ichs schöner finde, wenn oben im Browser die URL nicht mit index sondern mit home endet (www.beispiel.com/home.html) klappt das dann auch? Oder muss Index immer Index genannt bleiben?

@dahkenny ah da warst du schneller als ich. Das heißt ich kann meine Home Datei umbenennen, muss aber auch jedoch in der Config angeben, dass er genau auf diese Datei dann zielen soll. ja?
 
Wie bereits erklärt handelt der Webserver das. Ist das dort so konfiguriert funktioniert das. Ansonsten nicht.
 
Du trägst einfach die home.html mit ein in die config und schon geht das.
 
  • Gefällt mir
Reaktionen: konkretor, CyborgBeta, qiller und 2 andere
Mondgesang schrieb:
@dahkenny ah da warst du schneller als ich. Das heißt ich kann meine Home Datei umbenennen, muss aber auch jedoch in der Config angeben, dass er genau auf diese Datei dann zielen soll. ja?

Korrekt, würde dann in dem Beispiel so aussehen.

Code:
root /var/www/html/website/;
index home.html;
 
  • Gefällt mir
Reaktionen: HisN, qiller und BFF
@dahkenny Dann würde im der Adresszeile noch immer www.name.tld stehen.
Man kann natürlich noch eine "Weiterleitung" festlegen, dass man beim Aufruf direkt auf /home.html weitergeleitet wird.
Natürlich wird mit deinem Ansatz statt einer index.html die home.html berücksichtigt.

Aber "Index" ist eigentlich immer / und eigentlich nicht /index.xyz

Als Beispiel: https://www.computerbase.de/index.php wird immer automatisch in https://www.computerbase.de "übersetzt".
 
  • Gefällt mir
Reaktionen: dahkenny
Sehr gute Frage!

Mondgesang schrieb:
Oder liegt das irgendwo in den DNS-Domänen-Nameserver Geschichten, dass der Browser genau dadrauf gerichtet wird?
Nein, die zuständig von DNS endet bei der Domäne, das ist 'nur' dafür da, dass du den richtigen Webserver im Internet unter den Zigmillionen anderen findest.

Ist schon etwasher mitlerweile, lasse mich gerne korrigieren: Wie die anderen schon schrieben macht das der Webserver. Der bekommt die Anfrage "Hi, ich bin IP so und so und hätte gerne <www.example.com/irgendwas>" der Webserver geht dann hin und schaut "okay, die subdomäne <www> kenne ich, das interpretiere ich als top level um (also .example.com), und dieses </irgendwas> kenne ich auch, da soll ich die <impressum.html> ausliefern. Checke mal noch die Rechte.. ja geht klar, darf jeder anschauen. Hab ich die im Cache oder muss ich die von irgendwoher laden? Hab ich noch im Cache, also raus damit"

Ob es da standards gibt oder das konfiguriert werden muss (ggf. unsichtbar für dich als Kunde oder Nutzers eines Webframeworks) hängt also vom Webserver ab, tendenziell muss der Webserver aber entsprechend konfiguriert sein.
 
Wo ändere ich diese Einstellung denn bei IONOS? Suche mich gerade wie wild durch alle Funktionen, aber so eine Config finde ich nicht. Ich würde auch zwecks der Aufgeräumtheit auch die homepage, also die index.php gerne in den Ordner mit den Seiten /pag legen. Auch das müsste ja eigentlich kein Problem sein, solange ich der Config nur sage, wo sie zu suchen hat.
 
floq0r schrieb:
Das handled der Webserver.
Das ist korrekt. "index.html" steht (bei gängigen Webservern) weder im Request- noch im Response-Header. Dennoch kann man "index.html" oder "index.php" einfach raten, wenn man möchte.

Mondgesang schrieb:
Wo ändere ich diese Einstellung denn bei IONOS?
Dass das Teil index.<...> heißt, ist gängige Konvention und hat nix mit ionos zu tun. Irgendwer hat das halt mal auf "index" festgelegt.
 
Mondgesang schrieb:
Wo ändere ich diese Einstellung denn bei IONOS? Suche mich gerade wie wild durch alle Funktionen, aber so eine Config finde ich nicht.
Die Option heißt DirectoryIndex. Du musst sie in eine Datei namens .htaccess schreiben - gilt dann für das Verzeichnis, in dem sie sich befindet, und alle Unterverzeichnisse. Was in .htaccess erlaubt ist, ist allerdings auch konfigurierbar. Es könnte daher sein, dass Ionos da zu restriktiv ist.
Mondgesang schrieb:
Ich würde auch zwecks der Aufgeräumtheit auch die homepage, also die index.php gerne in den Ordner mit den Seiten /pag legen. Auch das müsste ja eigentlich kein Problem sein, solange ich der Config nur sage, wo sie zu suchen hat.
Verstehe nicht genau, was Du meinst, aber allgemein braucht man für fortgeschrittenes Mapping von URL-Pfaden aufs Dateisystem RewriteRules. Es gibt auch noch weitere Direktiven wie z.B. Alias.

Bei PHP ist folgendes üblich:
Code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
D.h., wenn der URL-Pfad keine existierende Datei und kein existierendes Verzeichis ist, wird stattdessen index.php mit dem Pfad als Parameter aufgerufen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Mondgesang und CyborgBeta
Zurück
Oben