Isso funciona mesmo em um <Diretório> ou <Local> em um arquivo .conf real
chrismarx
1
@chrismarx em qual arquivo .conf eu o colocaria? O .htaccess parece não estar ativado no meu servidor e li que é melhor não usá-lo de qualquer maneira. Eu tenho acesso a todos os arquivos do servidor, porém, como é um vps.
Charles John Thompson III
1
Estou preso à mesma pergunta, adicionei o arquivo .htaccess com o código ao mesmo diretório da minha página da Web, mas ele ainda está me dando um alerta de navegação no diretório. Estou fazendo algo errado?
Randy Gilman
10
Observe que .htaccesspode estar desativado. Por favor, verifique a AllowOverridediretiva. Se estiver definido como None, então .htaccessestá desativado. Você pode ativá-lo definindo AllowOverride All. Para ser mais preciso, Allsignifica todas as diretivas Apache.
Julian
2
Se você tem o controle do http.conf, é melhor fazê-lo lá. Há um acerto de desempenho com htaccess
Itay Moav -Malimovka
298
A melhor maneira de fazer isso é desativá-lo com o servidor web apache2. No meu Ubuntu 14.X - /etc/apache2/apache2.confmudança aberta de
@ Jay Eu também tentei "Opções-índices", mas o Apache não inicia o posfácio. Estou executando a versão do servidor: Apache / 2.4.18 (Ubuntu). No entanto, o uso de "Options FollowSymLinks" funcionou conforme a resposta de Dung. Só estou curioso para saber qual versão do Apache e do SO você está executando? Talvez seja uma coisa de versão?
MikeyE
@Jay @MikeyE O mesmo aqui; O Apache não recarregaria usando #-Indexes
Crimbo 17/01
1
@Jay @MikeyE O Apache parece recarregar / reiniciar se você remover o #FollowSymLinks
Crimbo
2
A execução apachectl configtestapós a adição Options -Indexes FollowSymLinksao httpd.conf gera o seguinte erro: "Todas as opções devem começar com + ou - ou nenhuma opção pode". Portanto, o que vai funcionar éOptions -Indexes +FollowSymLinks
John T.
45
Além dos dois métodos mencionados acima (edite /etc/apache2/apache2.conf ou adicione Options -Indexes no arquivo .htaccess), aqui está outro
-Indexes no diretório raiz não funciona, em apache2.4.33, eu tive que usar a resposta de @Sarvar Nishonboyev
Felipe Valdes
1
@FelipeValdes Por favor, leia atentamente a pergunta e a minha resposta. Não estamos falando de diretório raiz, mas de um subdiretório e foi solicitado que ele seja factível em um.htaccess arquivo (que não é o caminho mais eficiente, mas geralmente é a única opção em contas de hospedagem compartilhada ou com administradores de sistema ocupados).
Álvaro González
23
Você pode colocar um arquivo vazio chamado index.htmlem cada diretório que não deseja que seja listado. Isso tem várias vantagens:
(Geralmente) requer configuração zero no servidor.
Ele continuará funcionando, mesmo que o administrador do servidor decida usar "AllowOverride None" na configuração do servidor. (Se você usar .htaccessarquivos, isso poderá gerar muitas mensagens "Erro 500 - erro interno do servidor" para seus usuários!).
Ele também permite que você mova seus arquivos de um servidor para o outro, novamente sem precisar mexer na configuração do apache.
Teoricamente, a indexação automática pode ser acionada por um arquivo diferente (isso é controlado pela DirectoryIndexopção), mas ainda não o encontrei no mundo real.
Atenção! Isso só pode funcionar com a Diretiva DirectoryIndexindex.html definida principalmente .
Nyedidikeke
18
Uma das coisas importantes na configuração de um servidor web apache seguro é desativar a navegação no diretório. Por padrão, o apache vem com esse recurso ativado, mas é sempre uma boa idéia desativá-lo, a menos que você realmente precise. Abra o arquivo httpd.conf na pasta apache e localize a linha que se parece com:
Options Includes Indexes FollowSymLinks MultiViews
remova os índices da palavra e salve o arquivo. Reinicie o apache. É isso aí
Perfeito. Desative-o em toda a máquina. Por que isso seria ativado por padrão, eu não tenho idéia ...
eduncan911
1
Isso funcionou para mim no Ubuntu (apache2.conf), mas .htaccess Options -Indexes não.
precisa
Isso funcionou para mim no Ubuntu (/etc/apache2/apache2.conf), mas .htaccess Options -Indexes não.
precisa saber é o seguinte
5
Se você optar por modificar o arquivo httpd.conf para resolver isso e tiver várias diretivas de Opções, deverá adicionar um - ou um + antes de cada diretiva. Exemplo:
Esta não é uma resposta, apenas minha experiência:
No meu Ubuntu 12.04 apache2, não encontrei Indexesno apache2.conf ou no httpd.conf, felizmente o encontrei sites-available/default. Depois de removê-lo, agora ele não vê a lista de diretórios. Pode ter que fazer isso por sites-available/default-ssl.
Abra o arquivo .htaccess e digite o seguinte código em
Options -Indexes
Certifique-se de pressionar a tecla ENTER (ou RETURN, se você usa um Mac) depois de inserir as palavras "Opções -Indexes" para que o arquivo termine com uma linha em branco.
significa "ocultar apenas arquivos de extensão .jpg da indexação.
A diretiva IndexIgnore usa expressão curinga para corresponder a diretórios e arquivos.
um caractere estrela, ele corresponde a quaisquer caracteres em uma string, por exemplo: foo ou foo.extension, no exemplo a seguir, vamos desativar a listagem de diretórios, nenhum arquivo ou diretório aparecerá no índice:
IndexIgnore *
Ou, se você deseja ocultar arquivos espaciais, na lista de diretórios, podemos usar
IndexIgnore *.php
* .php => corresponde a uma sequência que começa com qualquer caractere e termina com .php
O exemplo acima oculta todos os arquivos que terminam com .php
Respostas:
Crie um arquivo .htaccess contendo a seguinte linha:
Essa é uma opção. Outra opção é editar o arquivo de configuração do apache.
Para fazer isso, primeiro você precisa abri-lo com o comando:
Em seguida, localize a linha: Opções Índices FollowSymLinks
Altere essa linha para: Opções FollowSymLinks
Por fim, salve e saia do arquivo e reinicie o servidor apache com este comando:
(Você tem um guia com capturas de tela aqui .)
fonte
.htaccess
pode estar desativado. Por favor, verifique aAllowOverride
diretiva. Se estiver definido comoNone
, então.htaccess
está desativado. Você pode ativá-lo definindoAllowOverride All
. Para ser mais preciso,All
significa todas as diretivas Apache.A melhor maneira de fazer isso é desativá-lo com o servidor web apache2. No meu Ubuntu 14.X -
/etc/apache2/apache2.conf
mudança aberta depara
em seguida, reinicie o apache:
Isso desativará a listagem de diretórios de todas as pastas que o apache2 serve.
fonte
-Indexes
FollowSymLinks
apachectl configtest
após a adiçãoOptions -Indexes FollowSymLinks
ao httpd.conf gera o seguinte erro: "Todas as opções devem começar com + ou - ou nenhuma opção pode". Portanto, o que vai funcionar éOptions -Indexes +FollowSymLinks
Além dos dois métodos mencionados acima (edite /etc/apache2/apache2.conf ou adicione Options -Indexes no arquivo .htaccess), aqui está outro
Reinicie o servidor apache2 posteriormente
fonte
a2dismod -f autoindex
para execução de comandos sem bloqueio .Alias
pastas e qualquer outro caminho servido pelo Apache.Edite / crie um
.htaccess
arquivo dentro/galerias
com isso:A navegação no diretório é fornecida pelo módulo mod_autoindex .
fonte
.htaccess
arquivo (que não é o caminho mais eficiente, mas geralmente é a única opção em contas de hospedagem compartilhada ou com administradores de sistema ocupados).Você pode colocar um arquivo vazio chamado
index.html
em cada diretório que não deseja que seja listado. Isso tem várias vantagens:.htaccess
arquivos, isso poderá gerar muitas mensagens "Erro 500 - erro interno do servidor" para seus usuários!).Teoricamente, a indexação automática pode ser acionada por um arquivo diferente (isso é controlado pela
DirectoryIndex
opção), mas ainda não o encontrei no mundo real.fonte
index.html
definida principalmente .Uma das coisas importantes na configuração de um servidor web apache seguro é desativar a navegação no diretório. Por padrão, o apache vem com esse recurso ativado, mas é sempre uma boa idéia desativá-lo, a menos que você realmente precise. Abra o arquivo httpd.conf na pasta apache e localize a linha que se parece com:
remova os índices da palavra e salve o arquivo. Reinicie o apache. É isso aí
fonte
Se você optar por modificar o arquivo httpd.conf para resolver isso e tiver várias diretivas de Opções, deverá adicionar um - ou um + antes de cada diretiva. Exemplo:
Opções -Indexes + FollowSymLinks
fonte
Esta não é uma resposta, apenas minha experiência:
No meu Ubuntu 12.04 apache2, não encontrei
Indexes
no apache2.conf ou no httpd.conf, felizmente o encontreisites-available/default
. Depois de removê-lo, agora ele não vê a lista de diretórios. Pode ter que fazer isso porsites-available/default-ssl
.fonte
Abra o arquivo .htaccess e digite o seguinte código em
Certifique-se de pressionar a tecla ENTER (ou RETURN, se você usa um Mac) depois de inserir as palavras "Opções -Indexes" para que o arquivo termine com uma linha em branco.
fonte
Adicione isso no seu arquivo .htaccess:
Se não funcionar por qualquer motivo, tente isso no seu arquivo .htaccess:
fonte
Para completar a resposta de @ GauravKachhadiya:
significa "ocultar apenas arquivos de extensão .jpg da indexação.
A diretiva IndexIgnore usa expressão curinga para corresponder a diretórios e arquivos.
um caractere estrela, ele corresponde a quaisquer caracteres em uma string, por exemplo: foo ou foo.extension, no exemplo a seguir, vamos desativar a listagem de diretórios, nenhum arquivo ou diretório aparecerá no índice:
IndexIgnore *
Ou, se você deseja ocultar arquivos espaciais, na lista de diretórios, podemos usar
* .php => corresponde a uma sequência que começa com qualquer caractere e termina com .php
O exemplo acima oculta todos os arquivos que terminam com .php
fonte
Tente isto em
.htaccess
:fonte