Die richtige Verwendung von index.html

9

Ich habe ziemlich viele Probleme, zu denen ich gerne Ihre Meinung hören würde, also hoffe ich, dass ich es schaffen werde, sie gut genug zu erklären. Ich sollte auch beachten, dass ich Anfänger nur mit den Kenntnissen von HTML und CSS ausgestattet bin. Obwohl ich fast sicher bin, dass es eine einfache Lösung mit leistungsstarkem PHP gibt, hilft es mir nicht .

Lassen Sie uns sagen , dass ich meine persönlichen Blog auf der Adresse haben , example.com/blog.htmlund es gibt Links zu mehreren Unter Blogs example.com/blog/math.html, example.com/blog/coding.htmletc. Also mein Stammordner enthält blog.htmlund blogOrdner, die blogOrdner selbst enthält Dateien math.htmlund coding.html.

Zunächst einmal habe ich gelernt (von Google Webmaster - Tools ) , die für SEO und ästhetische Zwecke ist es gut zu vereinigen example.com.comund example.com/index.htmldurch Zugabe von _rel="canonical"_Attribut in die Quelle der index.html. Mit ein paar anderen Tricks (wie dem Verknüpfen mit ../und ./) habe ich das Hässliche index.htmlin meinen Webadressen beseitigt.

Und jetzt frage ich mich, ob dieser Trick nicht nur für den Stammordner, sondern für jeden Ordner verwendet werden kann? Ich meine, ich würde meine bewegen blog.htmlin den blogOrdner, benennen Sie sie in die index.htmlund fügen Sie rel="canonical"zu vereinigen example.com/blog/index.htmlmit example.com/blog/.
Dieser Trick würde die Adresse meines Blogs von example.com/blog.htmlin ändern example.com/blog/.

Nicht beendet! Ich habe auch Probleme mit der Indizierung meiner Ordner durch den Google-Roboter. Wenn ich also site:example.com/in die Google-Suche eingebe, wird example.com/blog/unter den anderen Ergebnissen der Link zu meinem Ordner mit Rohdateien, Symbolen usw. angezeigt. Ich denke, es gibt auch andere Möglichkeiten, dies zu beheben, aber meiner Meinung nach würde die oben erwähnte Änderung auch den Trick tun - die index.html im Blog-Ordner würde den Benutzer davon abhalten, den tatsächlichen Rohinhalt dieses Ordners anzuzeigen, es würde nur angezeigt Der richtige Link example.com/blog/in der Google-Suche und (ich hoffe das) _rel="canonical"_würden dazu führen, dass der zweite, unerwünschte Link example.com/blog/index.htmlnicht in den Suchergebnissen erscheint.

Meine Fragen sind also:

  1. Ist es eine gute Praxis, die index.htmlDatei in jedem Unterordner zu haben, oder soll sie sich nur im Stammordner befinden?
  2. Gibt es Nachteile oder Probleme, die bei der Verwendung der zweiten Methode " Index in jedem Ordner " auftreten können?
  3. Welche der beiden oben beschriebenen Arten der Strukturierung der Website würden Sie bevorzugen?
Jeyekomon
quelle
Sehen Suchmaschinen zur Verdeutlichung site.com/blog und site.com/blog/index.html als zwei unterschiedliche Dateien an? Wenn Links mit beiden URLs verwendet werden, besteht die Möglichkeit, dass Sie die Linksaft- / Seitenautorität auf zwei Speicherorte aufteilen?
Soweit ich weiß, sehen Suchmaschinen (zumindest Google) sie als zwei unterschiedliche Dateien. Weil sie tatsächlich unterschiedlich sein können - die beiden Links können sich nur in einem einzigen Schrägstrich unterscheiden. (Lesen Sie hier mehr .) Und ja, wenn Sie zwei verschiedene Links zu einer Seite verwenden, wird der gesamte Rang der Seite zwischen diesen beiden Links aufgeteilt und Ihre Seite verliert effektiv die Hälfte ihres Ranges. Deshalb schlage ich die erwähnte Link-Kanonisierung vor, um diese Lecks zu verhindern.
Jeyekomon

Antworten:

13

Der Grund, warum wir index.htmloder home.htmloder Derivate davon verwenden, ist, dass die Webserver-Software selbst tatsächlich danach sucht und es bedient. Zum Beispiel:

Dies ist UNGÜLTIG: (www-Verzeichnis)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Dies wird in der Tat als Seite mit einer Liste der Ordner und Dateien bereitgestellt. (Nicht was du willst). Sie können diese Struktur ausprobieren, aber auch eine index.html-Datei neben blog.html erstellen. Beachten Sie, dass blog.html nur dann bereitgestellt wird, wenn Sie dies angeben. http://www.site.com/blog.html) Aus diesem Grund http://www.google.com/wird die Seite angezeigt, ohne dass Sie dies angeben müssenhttp://www.google.com/index.html

Dies ist GÜLTIG:

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Dies dient Ihrer blog.htmlDatei als Homepage. (Nicht alle Ordner / Dateien in diesem Verzeichnis auflisten)

Die Webserver-Software verfügt (in der Konfiguration) über eine spezielle Liste von Dateinamen, die als Homepage oder Hauptseite eines Ordners dienen. (Nach meiner Erfahrung index.htmlhat Vorrang vor index.php, wenn Sie also haben index.htmlund index.phpin einem Ordner, die index.html ist , was die Öffentlichkeit sehen) Natürlich , die verändert werden können, und Sie können sogar festlegen , blog.htmlals anerkannt zu werden "Index".

Adressierung Ihres Kommentars:

"Dieser Trick würde die Adresse meines Blogs von www.xxx.com/blog.html in www.xxx.com/blog/ ändern."

Dies würde geschehen, indem Sie es blog.htmlvollständig in /blog/index.html verschieben und umbenennen.

Ihre neue Struktur wäre:

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Dies sollte korrekt dazu dienen http://www.site.com/blog/, den Inhalt Ihrer blog.html anzuzeigen, in den wir umbenannt haben, index.htmldamit die Software ihn als Index Ihres Verzeichnisses festlegen kann/blog/

Sie können jetzt auch index.htmlim Stammverzeichnis Ihrer Website http://www.site.com/(index.html)Links /blog/ablegen , um Links zu und was auch immer Sie möchten.

Spezielle Beantwortung Ihrer Fragen in kurzen Aussagen:

  1. Ist es eine gute Praxis, die Datei index.html in jedem Unterordner zu haben, oder soll sie sich nur im Stammordner befinden?

    Ja, da dadurch verhindert wird, dass Personen sehen, welche Dateien sich in Ihren Verzeichnissen befinden. Sie können dies mit einer .htaccessDatei verhindern, die enthältOptions -Indexes

  2. Gibt es Nachteile oder Probleme, die bei der Verwendung der zweiten Methode "Index in jedem Ordner" auftreten können?

    Keine, an die ich denken kann.

  3. Welche der beiden oben beschriebenen Arten der Strukturierung der Website würden Sie bevorzugen?

    Normalerweise habe ich eine index.htmloder index.php-Datei im Stammverzeichnis, Unterordner basierend auf der Kategorie (wie forumoder newsoder oder loginusw.) und dann eine Art Index in jeder dieser.

ionFish
quelle
Vielen Dank für diese umfassende Antwort! Dieser öffentliche Zugriff auf meine Ordner und die Tatsache, dass sie von Google indiziert werden, macht mich ziemlich wütend. Wenn ich jetzt weiß, dass es kein Problem mit dem Trick "Index in jedem Ordner" gibt, werde ich meine Website auf diese Weise ändern. Ich hoffe nur, dass der rel = "kanonische" Trick funktioniert und all diese Indizes nicht in der Google-Suche erscheinen ...: D
Jeyekomon
6

Der Fachbegriff für index.html lautet Verzeichnisindex für Apache und Standarddokument für IIS. Die andere interessante Apache-Direktive ist die Options- Direktive. Wie in der Dokumentation angegeben, Options Indexeswird Folgendes festgelegt:

Wenn eine URL angefordert wird, die einem Verzeichnis zugeordnet ist, und in diesem Verzeichnis kein DirectoryIndex (z. B. index.html) vorhanden ist, gibt mod_autoindex eine formatierte Liste des Verzeichnisses zurück.

Wenn ich eine Website einrichte, die kein Content-Management-System verwendet, ist es meine bevorzugte Einrichtung, eine Inhaltsseite pro Verzeichnis zu haben. Diese Seite ist der Verzeichnisindex (Standarddokument) für das Verzeichnis. Alle Links auf der Site verweisen nur auf das Verzeichnis und enden mit einem abschließenden Schrägstrich (z. B. http://example.com/blog/anstelle von http://example.com/blog/index.htmloder ./blog/anstelle von ./blog/index.html). Der abschließende Schrägstrich ist wichtig, um zu vermeiden, was allgemein als Höflichkeitsumleitung bezeichnet wird . (Wenn der abschließende Schrägstrich weggelassen wird, wird immer noch alles korrekt aufgelöst, aber die Anzahl der HTTP-Anforderungen und damit die Bandbreite erhöhen sich.)

Meine Hauptmotivation für die oben genannte Methodik ist zweifach. Erstens erleichtert es das Umschalten der auf der Website verwendeten Technologie. Zum Beispiel kann ich eine Seite von index.html in index.php ändern, ohne Links oder Suchmaschinenlisten zu beschädigen. Zweitens ist die Dateierweiterung einer Inhaltsseite "Rauschen"; Das Entfernen der Dateierweiterung aus der URL führt zu kürzeren und hoffentlich besser lesbaren URLs.

Wie für andere Dateitypen:

  • Alle CSS-Dateien befinden sich in einem CSS-Verzeichnis im Stammverzeichnis der Website.
  • Alle Bilddateien befinden sich in einem Bildverzeichnis oder einem Unterverzeichnis davon im Stammverzeichnis der Website.
  • Alle JavaScript-Dateien befinden sich in einem Skriptverzeichnis im Stammverzeichnis der Website.
  • Alle Flash- und anderen Filmdateien befinden sich in einem Videoverzeichnis oder einem Unterverzeichnis davon im Stammverzeichnis der Website.

Auf einem Apache-Server deaktiviere ich Options Indexesfür die oben genannten Verzeichnisse. Auf Apache- und IIS-Servern gebe ich keinen Verzeichnisindex (Standarddokument) für die oben genannten Verzeichnisse an. Daher führt eine Anforderung für eines der Verzeichnisse zu einem HTTP 403-Fehler.

Ryan Prechel
quelle
Aufgrund der Beschränkung auf zwei Linklimits konnte ich keine Links zu Verzeichnisindex und Standarddokument in meine Antwort aufnehmen.
Ryan Prechel