La bonne façon d'utiliser index.html

9

J'ai beaucoup de questions sur lesquelles j'aimerais entendre votre opinion, alors j'espère que je parviendrai à l'expliquer assez bien. Je dois également noter que je suis débutant et que je ne suis équipé que de la connaissance de HTML et CSS, même si je suis presque sûr qu'il existe une solution simple utilisant PHP puissant, cela ne m'aidera pas .

Disons que j'ai mon blog personnel sur l'adresse example.com/blog.htmlet qu'il y a des liens vers plusieurs sous-blogs example.com/blog/math.html, example.com/blog/coding.htmletc. Donc mon dossier racine contient blog.htmlet blogdossier, le blogdossier lui-même contient des fichiers math.htmlet coding.html.

Tout d'abord, j'ai appris (à partir des outils Google Webmasters ) que pour le référencement et à des fins esthétiques, il est bon d'unifier example.com.comet example.com/index.htmlen ajoutant un _rel="canonical"_attribut à la source du index.html. En utilisant quelques autres astuces (comme les liens vers ../et ./), je me suis débarrassé de la laideur index.htmlapparaissant dans mes adresses Web.

Et maintenant, je me demande si cette astuce peut être utilisée non seulement pour le dossier racine mais pour n'importe quel dossier? Je veux dire, je voudrais déplacer mon blog.htmldans le blogdossier, le renommer index.htmlet l'ajouter rel="canonical"pour unifier example.com/blog/index.htmlavec example.com/blog/.
Cette astuce changerait l'adresse de mon blog example.com/blog.htmlen example.com/blog/.

Pas terminé! Je rencontre également des problèmes avec le robot google qui indexe mes dossiers. Ainsi, lorsque je tape site:example.com/dans la recherche Google, le lien vers mon dossier example.com/blog/avec des fichiers bruts, des icônes, etc. apparaît parmi les autres résultats. Je suppose qu'il existe également d'autres moyens de le résoudre, mais à mon humble avis, le changement mentionné ci-dessus ferait aussi l'affaire - le index.html dans le dossier du blog empêcherait l'utilisateur de voir le contenu brut réel de ce dossier, il n'apparaîtrait que le bon lien example.com/blog/dans la recherche Google et (j'espère que) _rel="canonical"_ferait en sorte que le deuxième lien indésirable example.com/blog/index.htmln'apparaisse pas dans les résultats de la recherche.

Mes questions sont donc:

  1. Est-ce une bonne pratique d'avoir le index.htmlfichier dans chaque sous-dossier ou est-il destiné à être uniquement dans le dossier racine?
  2. Y a-t-il des inconvénients ou des problèmes qui peuvent survenir lors de l'utilisation de la deuxième méthode " indexer dans chaque dossier "?
  3. Laquelle des deux façons de structurer le site Web décrites ci-dessus préféreriez- vous ?
Jeyekomon
la source
Pour ma clarification, les moteurs de recherche voient-ils site.com/blog et site.com/blog/index.html comme étant 2 fichiers distincts? Si des liens avec les deux URL sont utilisés, y a-t-il une chance que vous divisiez l'autorité de jus / page de lien entre 2 emplacements?
Pour autant que je sache, les moteurs de recherche (au moins Google) les considèrent comme deux fichiers distincts. Parce qu'ils peuvent en fait être distincts - les deux liens ne peuvent différer que dans une seule barre oblique. (Pour en savoir plus, cliquez ici .) Et oui, si vous utilisez deux liens différents vers une même page, tout le classement de la page est divisé entre ces deux liens et votre page perd effectivement la moitié de son classement. C'est pourquoi je suggère la canonisation de lien mentionnée pour éviter ces fuites.
Jeyekomon

Réponses:

13

La raison pour laquelle nous utilisons index.htmlou home.htmlou des dérivés de ceux-ci, c'est parce que le logiciel de serveur Web lui- même le recherche et le sert. Par exemple:

C'est INVALIDE: (www-annuaire)

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

Cela sera en fait servi comme une page répertoriant les dossiers et les fichiers. (Pas ce que tu veux). Vous pouvez essayer cette structure, mais également créer un fichier index.html à côté de blog.html. Remarquez comment il ne sera pas diffusé blog.html sauf si vous le spécifiez http://www.site.com/blog.html) C'est pourquoi http://www.google.com/affiche la page sans que vous ayez à le spécifierhttp://www.google.com/index.html

C'est VALIDE:

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

Cela servira votre blog.htmlfichier comme la page d'accueil. (Ne pas répertorier tous les dossiers / fichiers de ce répertoire)

Le logiciel de serveur Web possède (dans la configuration) une liste spécialisée de noms de fichiers qui seront servis de page d'accueil ou de page principale d'un dossier. (D'après mon expérience, index.htmla priorité sur index.php, donc si vous avez index.htmlet index.phpdans un dossier, l'index.html est ce que le public verra) Bien sûr, tout cela peut être changé, et vous pouvez même définir blog.htmlpour être reconnu comme un "indice".

Répondre à votre commentaire:

"Cette astuce changerait l'adresse de mon blog de www.xxx.com/blog.html en www.xxx.com/blog/."

Cela se ferait en se déplaçant blog.htmlentièrement dans /blog/et en le renommant en index.html.

Votre nouvelle structure serait:

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

Cela devrait correctement servir http://www.site.com/blog/à afficher le contenu de votre blog.html que nous avons renommé pour index.htmlque le logiciel puisse le définir comme l'index de votre répertoire/blog/

Vous êtes également libre maintenant de mettre et de index.htmldéposer à la racine de votre site http://www.site.com/(index.html)pour avoir des liens vers /blog/et tout ce que vous souhaitez.

Répondre spécifiquement à vos questions dans de courtes déclarations:

  1. Est-ce une bonne pratique d'avoir le fichier index.html dans chaque sous-dossier ou est-il destiné à être uniquement dans le dossier racine?

    Oui, car cela empêche les gens de voir quels fichiers se trouvent dans vos répertoires. Vous pouvez éviter cela avec un .htaccessfichier contenantOptions -Indexes

  2. Y a-t-il des inconvénients ou des problèmes qui peuvent survenir lors de l'utilisation de la deuxième méthode "indexer dans chaque dossier"?

    Aucun que je puisse penser.

  3. Laquelle des deux façons de structurer le site Web décrites ci-dessus préféreriez-vous?

    J'ai généralement un index.htmlou un index.phpfichier à la racine, des sous-dossiers basés sur la catégorie (comme forumou newsou loginetc.), puis une sorte d'index à l'intérieur de chacun d'eux.

ionFish
la source
Merci pour cette réponse complète! Cet accès public à mes dossiers et le fait qu'ils soient indexés par google me mettent en colère, alors maintenant que je sais qu'il n'y a pas de problème avec l'astuce "indexer dans chaque dossier", je vais changer mon site Web de cette façon. J'espère juste que l'astuce rel = "canonical" fonctionnera et que tous ces index n'apparaîtront pas dans la recherche Google ...: D
Jeyekomon
6

Le terme technique pour index.html est Index de répertoire pour Apache et Document par défaut pour IIS. L'autre directive Apache d'intérêt est la directive Options . Comme indiqué dans la documentation, quand Options Indexesest défini:

Si une URL mappée vers un répertoire est demandée et qu'il n'y a pas DirectoryIndex (par exemple, index.html) dans ce répertoire, alors mod_autoindex renverra une liste formatée du répertoire.

Lorsque je configure un site Web qui n'utilise pas de système de gestion de contenu, ma configuration préférée est d'avoir une page de contenu par répertoire. Cette page est l'index du répertoire (document par défaut) du répertoire. Tous les liens sur le site pointent uniquement vers le répertoire et se terminent par une barre oblique (par exemple, http://example.com/blog/au lieu de http://example.com/blog/index.htmlou ./blog/au lieu de ./blog/index.html). La barre oblique de fin est importante pour éviter ce qui est communément appelé redirection de courtoisie . (Si la barre oblique de fin est omise, tout se résout toujours correctement, mais le nombre de requêtes HTTP et donc la bande passante augmentent.)

Ma principale motivation pour la méthodologie ci-dessus est double. Premièrement, il facilite le changement de technologie utilisée sur le site Web. Par exemple, je peux changer une page de index.html en index.php sans rompre les liens ou les listes des moteurs de recherche. Deuxièmement, l'extension de fichier d'une page de contenu est "bruit"; la suppression de l'extension de fichier de l'URL se traduit par des URL plus courtes et, espérons-le, plus lisibles.

Comme pour les autres types de fichiers:

  • Tous les fichiers CSS résident dans un répertoire css à la racine du site Web.
  • Tous les fichiers d'images résident dans un répertoire d'images ou un sous-répertoire de celui-ci à la racine du site Web.
  • Tous les fichiers JavaScript résident dans un répertoire de scripts à la racine du site Web.
  • Tous les fichiers Flash et autres films se trouvent dans un répertoire vidéo ou un sous-répertoire de celui-ci à la racine du site Web.

Sur un serveur Apache, je désactive Options Indexesles répertoires susmentionnés. Sur les serveurs Apache et IIS, je ne spécifie pas d'index de répertoire (document par défaut) pour les répertoires susmentionnés. Ainsi, une demande pour l'un des répertoires entraîne une erreur HTTP 403.

Ryan Prechel
la source
En raison de la restriction de la limite de deux liens, je n'ai pas pu inclure de liens vers l' index d'annuaire et le document par défaut dans ma réponse, alors les voici.
Ryan Prechel