it-swarm.com.de

Die richtige Verwendung von index.html

Ich habe eine ganze Reihe von Problemen, zu denen ich gerne Ihre Meinung hören möchte. Ich hoffe, dass ich es schaffen werde, es gut genug zu erklären. Ich sollte auch beachten, dass ich Anfänger bin, die nur mit HTML- und CSS-Kenntnissen ausgestattet sind. Obwohl ich fast sicher bin, dass es eine einfache Lösung mit leistungsstarkem PHP gibt , hilft es mir nicht .

Nehmen wir an, ich habe mein persönliches Blog unter der Adresse example.com/blog.html und es gibt Links zu mehreren Unterblogs example.com/blog/math.html, example.com/blog/coding.html usw. Mein Stammordner enthält also blog.html und blog Ordner, der blog Ordner selbst enthält die Dateien math.html und coding.html.

Zunächst habe ich (von Google Webmasters Tools ) erfahren, dass es aus SEO- und ästhetischen Gründen gut ist, example.com.com und example.com/index.html durch Hinzufügen des Attributs _rel="canonical"_ zu vereinheitlichen Quelle des index.html. Mit ein paar anderen Tricks (wie dem Verknüpfen mit ../ und ./) habe ich den hässlichen index.html beseitigt, der in meinen Webadressen auftaucht.

Und jetzt frage ich mich, ob dieser Trick nicht nur für den Stammordner verwendet werden kann, sondern für jeden Ordner? Ich meine, ich würde meinen blog.html in den blog Ordner verschieben, ihn in index.html umbenennen und rel="canonical" hinzufügen, um example.com/blog/index.html mit example.com/blog/ zu vereinheitlichen .
Dieser Trick würde die Adresse meines Blogs von example.com/blog.html in example.com/blog/ ändern.

Nicht beendet! Ich habe auch Probleme mit der Indizierung meiner Ordner durch Google Robot. Wenn ich also site:example.com/ in die Google-Suche eingebe, wird unter anderem der Link zu meinem Ordner example.com/blog/ mit Rohdateien, Symbolen usw. angezeigt. Ich denke, es gibt auch andere Möglichkeiten, wie man das Problem beheben kann, aber IMHO würde die oben erwähnte Änderung auch den Trick machen - die index.html im Blog-Ordner würde den Benutzer vor dem Anzeigen bewahren Für den eigentlichen Rohinhalt dieses Ordners würde nur der richtige Link example.com/blog/ in der Google-Suche erscheinen und (ich hoffe das) _rel="canonical"_ würde den zweiten, unerwünschten Link example.com/blog/index.html nicht erscheinen lassen in den Suchergebnissen.

Meine Fragen sind also:

  1. Ist es empfehlenswert, die Datei index.html in jedem Unterordner zu haben, oder ist sie nur für den Stammordner vorgesehen?
  2. Gibt es irgendwelche Nachteile oder Probleme, die auftreten können, wenn die zweite Methode " index in jedem Ordner " verwendet wird?
  3. Welche der beiden oben beschriebenen Möglichkeiten zur Strukturierung der Website würden Sie bevorzugen ?
8
Jeyekomon

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

Das ist UNGÜLTIG: (www-Verzeichnis)

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

Dies wird in der Tat als eine Seite geliefert, die die Ordner und Dateien auflistet. (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 http://www.site.com/blog.html angeben. Aus diesem Grund zeigt http://www.google.com/ die Seite an, ohne dass Sie http://www.google.com/index.html angeben müssen.

Das ist GÜLTIG:

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

Dies dient Ihrer blog.html -Datei 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 Startseite oder Hauptseite eines Ordners dienen. (Meiner Erfahrung nach hat index.html Vorrang vor index.php. Wenn Sie also index.html und index.php in einem Ordner haben, wird die index.html der Öffentlichkeit angezeigt.) Natürlich können alle geändert werden, und Sie können sogar blog.html so einstellen, dass es als "Index" erkannt wird.

Adressierung Ihres Kommentars:

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

Dies geschieht, indem blog.html vollständig in /blog/ verschoben und in index.html umbenannt wird.

Ihre neue Struktur wäre:

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

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

Sie können jetzt auch die index.html -Datei in das Stammverzeichnis Ihrer Site http://www.site.com/(index.html) einfügen, um Links zu /blog/ und zu anderen gewünschten Elementen zu erhalten.

Speziell Beantwortung Ihrer Fragen in kurzen Statements:

  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 Benutzer sehen, welche Dateien sich in Ihren Verzeichnissen befinden. Sie können dies mit einer .htaccess -Datei verhindern, die Options -Indexes enthält.

  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 Möglichkeiten zur Strukturierung der Website bevorzugen Sie?

    Ich habe normalerweise eine index.html- oder index.php -Datei im Stammverzeichnis, Unterordner basierend auf der Kategorie (wie forum oder news oder login usw.) und noch einige mehr Art von Index in jedem von denen.

12
ionFish

Der Fachbegriff für index.html lautet Directory Index for Apache und Default Document for IIS. Die andere interessierende Apache-Direktive ist die Options Direktive. Wie in der Dokumentation angegeben, wenn Options Indexes eingestellt ist:

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

Wenn ich eine Website einrichte, die kein Inhaltsverwaltungssystem 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.html oder ./blog/ anstelle von ./blog/index.html). Der abschließende Schrägstrich ist wichtig, um das zu vermeiden, was üblicherweise 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 steigen.)

Meine Hauptmotivation für die obige Methodik ist zweierlei. 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 von 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 Indexes für die oben genannten Verzeichnisse. Sowohl auf Apache- als auch auf 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.

6
Ryan Prechel