Eu tenho muitas questões sobre as quais gostaria de ouvir sua opinião, então espero que eu consiga explicá-la bem o suficiente. Devo também observar que sou iniciante equipado apenas com o conhecimento de HTML e CSS, portanto, embora tenha quase certeza de que existe uma solução simples usando PHP poderoso, isso não me ajudará .
Digamos que eu tenho meu blog pessoal no endereço example.com/blog.html
e há links para vários sub-blogs example.com/blog/math.html
, example.com/blog/coding.html
etc. Portanto, minha pasta raiz contém blog.html
e blog
pasta, a blog
própria pasta contém arquivos math.html
e coding.html
.
Antes de tudo, aprendi (no Google Webmasters Tools ) que, para fins estéticos e de SEO, é bom unificar example.com.com
e example.com/index.html
adicionar _rel="canonical"_
atributos à fonte do index.html
. Usando alguns outros truques (como vincular ../
e ./
), me livrei do feio que index.html
aparece nos meus endereços da web.
E agora me pergunto se esse truque pode ser usado não apenas para a pasta raiz, mas para qualquer pasta? Quer dizer, eu iria mudar a minha blog.html
para a blog
pasta, renomeá-lo para o index.html
e adicione rel="canonical"
a unificar example.com/blog/index.html
com example.com/blog/
.
Esse truque mudaria o endereço do meu blog de example.com/blog.html
para example.com/blog/
.
Não finalizado! Também estou tendo problemas com o robô do Google que indexa minhas pastas. Portanto, quando digito site:example.com/
na pesquisa do google, o link para minha pasta example.com/blog/
com arquivos, ícones etc. brutos aparece entre os outros resultados. Eu acho que também existem outras maneiras de corrigi-lo, mas IMHO a alteração mencionada acima também faria o truque - o index.html na pasta do blog impediria o usuário de exibir o conteúdo bruto da pasta, apenas apareceria o link certo example.com/blog/
na pesquisa do Google e (espero que) _rel="canonical"_
faça com que o segundo link indesejado example.com/blog/index.html
não apareça nos resultados da pesquisa.
Então, minhas perguntas são:
- É uma boa prática ter o
index.html
arquivo em todas as subpastas ou ele deve estar apenas na pasta raiz? - Existem desvantagens ou problemas que podem ocorrer ao usar o segundo método " indexar em todas as pastas "?
- Qual das duas maneiras de estruturar o site descrito acima você prefere?
fonte
Respostas:
A razão pela qual usamos
index.html
ouhome.html
derivamos dos mesmos é porque o próprio software do servidor da web realmente procura e serve. Por exemplo:Isto é INVÁLIDO: (diretório www)
Na verdade, isso será servido como uma página listando as pastas e arquivos. (Não é o que você quer). Você pode tentar essa estrutura, mas também criar um arquivo index.html ao lado de blog.html. Observe como ele não será exibido blog.html, a menos que você especifique
http://www.site.com/blog.html
) É por isso quehttp://www.google.com/
mostra a página sem que você precise especificarhttp://www.google.com/index.html
Isto é VÁLIDO:
Isso servirá seu
blog.html
arquivo como a página inicial. (Não lista todas as pastas / arquivos nesse diretório)O software do servidor da web possui (na configuração) uma lista especializada de nomes de arquivos que serão servidos como a página inicial ou a página principal de uma pasta. (Na minha experiência,
index.html
tem precedência sobre index.php, por isso, se você tiverindex.html
eindex.php
em uma pasta, o index.html é o que o público verá) É claro que tudo pode ser alterado e você pode atéblog.html
ser reconhecido como um "índice".Endereçando seu comentário:
Isso seria feito movendo-se
blog.html
inteiramente/blog/
e renomeando-o para index.html.Sua nova estrutura seria:
Isso deve servir corretamente
http://www.site.com/blog/
para mostrar o conteúdo do seu blog.html que renomeamos paraindex.html
que o software possa defini-lo como o índice do seu diretório/blog/
Agora você também pode colocar e
index.html
arquivar na raiz do seu sitehttp://www.site.com/(index.html)
para ter links/blog/
e tudo o que desejar.Respondendo especificamente às suas perguntas em breves declarações:
É uma boa prática ter o arquivo index.html em todas as subpastas ou ele deve estar apenas na pasta raiz?
Sim, porque impede que as pessoas vejam quais arquivos estão em seus diretórios. Você pode impedir isso com um
.htaccess
arquivo que contémOptions -Indexes
Existem desvantagens ou problemas que podem ocorrer ao usar o segundo método "indexar em todas as pastas"?
Nada que eu possa pensar.
Qual das duas maneiras de estruturar o site descrito acima você prefere?
Normalmente, tenho um arquivo
index.html
ouindex.php
na raiz, subpastas com base na categoria (comoforum
ounews
oulogin
etc.) e, em seguida, algum tipo de índice dentro de cada uma delas.fonte
O termo técnico para index.html é Índice de Diretório para Apache e Documento Padrão para IIS. A outra diretiva de interesse do Apache é a diretiva Opções . Conforme indicado na documentação, quando
Options Indexes
está definido:Quando eu configuro um site que não está usando um sistema de gerenciamento de conteúdo, minha configuração preferida é ter uma página de conteúdo por diretório. Essa página é o índice do diretório (documento padrão) para o diretório. Todos os links no site vinculam apenas o diretório e terminam com uma barra final (por exemplo, em
http://example.com/blog/
vez dehttp://example.com/blog/index.html
ou em./blog/
vez de./blog/index.html
). A barra final é importante para evitar o que é comumente chamado de redirecionamento de cortesia . (Se a barra final for omitida, tudo ainda será resolvido corretamente, mas o número de solicitações HTTP e, portanto, a largura de banda aumentará.)Minha principal motivação para a metodologia acima é dupla. Primeiro, facilita a troca da tecnologia usada no site. Por exemplo, posso alterar uma página de index.html para index.php sem quebrar nenhum link ou listagem de mecanismo de pesquisa. Segundo, a extensão do arquivo de uma página de conteúdo é "ruído"; remover a extensão do arquivo do URL resulta em URLs mais curtos e, com sorte, mais legíveis.
Quanto a outros tipos de arquivo:
Em um servidor Apache, desabilito
Options Indexes
para os diretórios mencionados acima. Nos servidores Apache e IIS, não especifico um índice de diretório (documento padrão) para os diretórios mencionados acima. Portanto, uma solicitação para qualquer um dos diretórios resulta em um erro HTTP 403.fonte