Tengo muchas cuestiones sobre las que me gustaría escuchar su opinión, así que espero poder explicarlo lo suficientemente bien. También debo tener en cuenta que estoy equipado para principiantes solo con el conocimiento de HTML y CSS, así que aunque estoy casi seguro de que hay una solución simple que usa PHP potente, no me ayudará .
Digamos que tengo mi blog personal en la dirección example.com/blog.htmly hay enlaces a varios sub-blogs example.com/blog/math.html, example.com/blog/coding.htmletc. Así que mi carpeta raíz contiene blog.htmly blogcarpeta, la blogcarpeta en sí contiene archivos math.htmly coding.html.
En primer lugar, aprendí (de Google Webmasters Tools ) que para fines estéticos y de SEO es bueno unificar example.com.comy example.com/index.htmlagregar _rel="canonical"_atributos a la fuente del index.html. Usando un par de otros trucos (como vincular ../y ./) me libré de lo feo que index.htmlaparece en mis direcciones web.
Y ahora me pregunto si este truco se puede usar no solo para la carpeta raíz sino para cualquier carpeta. Quiero decir, me movería blog.htmla la blogcarpeta, cambiaría el nombre index.htmly agregaría rel="canonical"para unificar example.com/blog/index.htmlcon example.com/blog/. 
Este truco cambiaría la dirección de mi blog de example.com/blog.htmla example.com/blog/.
¡Sin terminar! También tengo problemas con el robot de Google que indexa mis carpetas. Entonces, cuando escribo site:example.com/en la búsqueda de Google, el enlace a mi carpeta example.com/blog/con archivos sin formato, iconos, etc. aparece entre los otros resultados. Supongo que también hay otras formas de solucionarlo, pero en mi humilde opinión, el cambio mencionado anteriormente también funcionaría: el index.html en la carpeta del blog evitaría que el usuario vea el contenido real de esa carpeta, solo aparecería el enlace correcto example.com/blog/en la búsqueda de google y (espero que) _rel="canonical"_haga que el segundo enlace example.com/blog/index.htmlno deseado no aparezca en los resultados de búsqueda.
Entonces mis preguntas son:
- ¿Es una buena práctica tener el index.htmlarchivo en cada subcarpeta o está destinado a estar solo en la carpeta raíz?
- ¿Existen desventajas o problemas que pueden ocurrir al usar el segundo método de " índice en cada carpeta "?
- ¿Cuál de las dos formas de estructurar el sitio web arriba indicadas se le prefiere?
fuente

Respuestas:
La razón por la que usamos
index.htmlohome.htmlo productos derivados de los mismos, se debe a que el software de servidor web en sí en realidad se ve por ello y lo sirve. Por ejemplo:Esto NO ES VÁLIDO: (directorio www)
De hecho, esto se servirá como una página que enumera las carpetas y archivos. (No es lo que quieres). Puede probar esta estructura, pero también hacer un archivo index.html junto a blog.html. Observe cómo no servirá blog.html a menos que especifique
http://www.site.com/blog.html) Es por eso quehttp://www.google.com/muestra la página sin que tenga que especificarhttp://www.google.com/index.htmlEsto es VÁLIDO:
Esto servirá su
blog.htmlarchivo COMO LA PÁGINA PRINCIPAL. (No enumere todas las carpetas / archivos en ese directorio)El software del servidor web tiene (en la configuración) una lista especializada de nombres de archivos que se servirán como la página de inicio o la página principal de una carpeta. (En mi experiencia,
index.htmltiene prioridad sobre index.php, por lo que si tieneindex.htmlyindex.phpen una carpeta, index.html es lo que verá el público) Por supuesto, todo eso puede cambiarse e incluso puede configurarseblog.htmlpara ser reconocido como un "índice".Dirigiendo su comentario:
Esto se haría moviéndolo
blog.htmlcompletamente/blog/y renombrándolo a index.html.Su nueva estructura sería:
Esto debería servir correctamente
http://www.site.com/blog/para mostrar el contenido de su blog.html al que le cambiamos el nombre paraindex.htmlque el software pueda configurarlo como el índice de su directorio/blog/Ahora también es libre de colocar y
index.htmlarchivar en la raíz de su sitiohttp://www.site.com/(index.html)para tener enlaces/blog/y cualquier otra cosa que desee.Responde específicamente sus preguntas en declaraciones cortas:
¿Es una buena práctica tener el archivo index.html en cada subcarpeta o está destinado a estar solo en la carpeta raíz?
Sí, porque evita que las personas vean qué archivos hay en sus directorios. Puede evitar esto con un
.htaccessarchivo que contengaOptions -Indexes¿Existen desventajas o problemas que pueden ocurrir al usar el segundo método de "índice en cada carpeta"?
Ninguno que se me ocurra.
¿Cuál de las dos formas de estructurar el sitio web descrito anteriormente preferiría?
Por lo general, tengo un archivo
index.htmloindex.phpen la raíz, subcarpetas basadas en la categoría (comoforumonewsologinetc.) y luego algún tipo de índice dentro de cada uno de ellos.fuente
El término técnico para index.html es Índice de directorio para Apache y Documento predeterminado para IIS. La otra directiva de Apache de interés es la directiva Opciones . Como se indica en la documentación, cuando
Options Indexesse establece:Cuando configuro un sitio web que no utiliza un sistema de administración de contenido, mi configuración preferida es tener una página de contenido por directorio. Esa página es el índice del directorio (documento predeterminado) para el directorio. Todos los enlaces en el sitio solo enlazan al directorio y terminan con una barra inclinada (por ejemplo, en
http://example.com/blog/lugar dehttp://example.com/blog/index.htmlo en./blog/lugar de./blog/index.html). La barra diagonal final es importante para evitar lo que comúnmente se conoce como redireccionamiento de cortesía . (Si se omite la barra diagonal final, todo aún se resuelve correctamente, pero el número de solicitudes HTTP y, por lo tanto, el ancho de banda aumentan).Mi motivación principal para la metodología anterior es doble. Primero, facilita el cambio de la tecnología utilizada en el sitio web. Por ejemplo, puedo cambiar una página de index.html a index.php sin romper ningún enlace o listado de motores de búsqueda. Segundo, la extensión del archivo de una página de contenido es "ruido"; eliminar la extensión del archivo de la URL da como resultado URL más cortas y, con suerte, más legibles.
En cuanto a otros tipos de archivos:
En un servidor Apache, desactivo
Options Indexespara los directorios mencionados anteriormente. En los servidores Apache e IIS, no especifico un índice de directorio (documento predeterminado) para los directorios mencionados anteriormente. Por lo tanto, una solicitud para cualquiera de los directorios da como resultado un error HTTP 403.fuente