J'ai de nombreuses questions sur lesquelles j'aimerais connaître votre opinion. J'espère donc pouvoir l'expliquer assez bien. Je dois aussi noter que je ne suis débutant qu'avec la connaissance du HTML et du CSS. Bien que je sois presque sûr qu’il existe une solution simple utilisant un puissant PHP, , elle ne m’aide en rien. .
Disons que j'ai mon blog personnel à l'adresse example.com/blog.html
et qu'il existe des liens vers plusieurs sous-blogs example.com/blog/math.html
, example.com/blog/coding.html
etc. Ainsi, mon dossier racine contient blog.html
et blog
, le dossier blog
contient lui-même les fichiers math.html
et coding.html
.
Tout d’abord, j’ai appris (de Google Webmasters Tools ) qu’il était bon, pour le référencement et l’esthétique, d’unifier example.com.com
et example.com/index.html
en ajoutant _rel="canonical"_
à l’attribut source du index.html
. En utilisant quelques astuces (comme créer des liens vers ../
et ./
), je me suis débarrassé du vilain index.html
qui apparaît dans mes adresses Web.
Et maintenant, je me demande si cette astuce peut être utilisée non seulement pour le dossier racine mais pour tous les dossiers ? Je veux dire, je déplacerais mon blog.html
dans le dossier blog
, le renommerais en index.html
et ajouter rel="canonical"
pour unifier example.com/blog/index.html
avec example.com/blog/
.
Cette astuce changerait l'adresse de mon blog de example.com/blog.html
en 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 remédier à ce problème, mais à mon humble avis, le changement mentionné ci-dessus ferait également l'affaire: le index.html dans le dossier du blog empêcherait l'utilisateur de consulter le contenu brut réel de Dans ce dossier, seul le bon lien example.com/blog/
apparaît dans la recherche google et (j’espère que) _rel="canonical"_
ferait en sorte que le second lien non souhaité example.com/blog/index.html
ne figure pas dans les résultats de la recherche.
Donc mes questions sont:
index.html
dans chaque sous-dossier ou est-il prévu de ne figurer que dans le dossier racine?Si nous utilisons index.html
ou home.html
ou leurs dérivés, c'est parce que le logiciel du serveur Web lui-même le recherche et le sert. . Par exemple:
C'est INVALID: (www-directory)
/var/www/
|_blog.html
|_blog/
|_math.html
|_page2.html
|_page3.html
|_(...)
Cela servira en fait comme une page listant 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 servira pas blog.html sauf si vous spécifiez http://www.site.com/blog.html
) C'est pourquoi http://www.google.com/
affiche la page sans que vous ayez à spécifier http://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 fichier blog.html
en tant que page d'accueil. (Ne répertorie pas tous les dossiers/fichiers de ce répertoire)
Le logiciel du serveur Web contient (dans la configuration) une liste spécialisée de noms de fichiers qui serviront de page d'accueil ou de page principale d'un dossier. (Selon mon expérience, index.html
a priorité sur index.php, donc si vous avez index.html
et index.php
dans un dossier, le fichier index.html est ce que le public verra.) peuvent tous être modifiés, et vous pouvez même définir blog.html
pour être reconnu comme un "index".
Adressant votre commentaire:
"Cette astuce changerait l'adresse de mon blog de www.xxx.com/blog.html à www.xxx.com/blog/."
Cela se ferait en déplaçant entièrement blog.html
dans /blog/
et en le renommant index.html.
Votre nouvelle structure serait:
/var/www/
|_blog/
|_index.html (renamed from blog.html)
|_math.html
|_page2.html
|_page3.html
|_(...)
Cela devrait servir correctement http://www.site.com/blog/
pour afficher le contenu de votre blog.html que nous avons renommé en index.html
afin que le logiciel puisse le définir comme index de votre répertoire /blog/
Vous êtes également libre maintenant de placer le fichier index.html
à la racine de votre site http://www.site.com/(index.html)
pour avoir des liens vers /blog/
et tout ce que vous souhaitez.
Répondant spécifiquement à vos questions dans de courtes déclarations:
S'agit-il d'une bonne pratique d'avoir le fichier index.html dans chaque sous-dossier ou est-il destiné uniquement au répertoire racine?
Oui, car cela empêche les gens de voir quels fichiers se trouvent dans vos répertoires. Vous pouvez éviter cela avec un fichier .htaccess
contenant Options -Indexes
Y a-t-il des inconvénients ou des problèmes qui peuvent survenir lors de l'utilisation de la seconde méthode, "index dans chaque dossier"?
Aucune que je puisse penser.
Laquelle des deux manières de structurer le site Web décrite ci-dessus préférez-vous?
J'ai généralement un fichier index.html
ou index.php
à la racine, des sous-dossiers basés sur la catégorie (tels que forum
ou news
ou login
etc.), puis certains sorte d'index à l'intérieur de chacun de ceux-ci.
Le terme technique pour index.html est Index des répertoires pour Apache et Document par défaut pour IIS. L'autre directive d'intérêt Apache est la directive Options . Comme indiqué dans la documentation, lorsque Options Indexes
est défini:
Si une URL mappée à 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 consiste à 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 du site renvoient uniquement au répertoire et se terminent par une barre oblique finale (par exemple, http://example.com/blog/
au lieu de http://example.com/blog/index.html
ou ./blog/
au lieu de ./blog/index.html
). Le slash final est important pour éviter ce qui est communément appelé un redirection de courtoisie . (Si la barre oblique finale est omise, tout est toujours résolu 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, cela facilite le changement de technologie utilisée sur le site Web. Par exemple, je peux changer une page d’index.html en index.php sans rompre les liens ou les listes de moteurs de recherche. Deuxièmement, l’extension de fichier d’une page de contenu est "noise"; supprimer l'extension de fichier de l'URL donne des URL plus courtes et, espérons-le, plus lisibles.
Comme pour les autres types de fichiers:
Sur un serveur Apache, je désactive Options Indexes
pour les répertoires susmentionnés. Sur les deux 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.