Apache - arquivos .htaccess

Apache - arquivos .htaccess

Os arquivos .Htaccess são arquivos de configuração do Apache, permitindo que regras sejam definidas em um diretório e em todos os seus subdiretórios (que não possuem tal arquivo dentro). Eles podem ser usados ​​para proteger um diretório com uma senha, ou para alterar o nome ou extensão da página de índice, ou para proibir o acesso ao diretório.

Interesse de arquivos htaccess

Os arquivos .htaccess pode ser usado em qualquer diretório ou subdiretório virtual.



Os principais motivos para usar arquivos .htaccess são:

  • Gerenciar o acesso a certos arquivos.
  • Adicione um tipo mime.
  • Proteja o acesso a um diretório com uma senha.
  • Proteja o acesso a um arquivo com uma senha.
  • Defina páginas de erro personalizadas.

Princípio dos arquivos htaccess

O arquivo .htaccess é colocado no diretório em que deve atuar. Assim, atua com as permissões do diretório que o contém e de todos os seus subdiretórios. Você pode colocar outro arquivo .htaccess em um subdiretório de um diretório já controlado por um arquivo .htaccess. O arquivo .htaccess no diretório pai permanece em "atividade" até que a funcionalidade seja reescrita.



A funcionalidade desses arquivos sendo muito poderosa, leia este tutorial cuidadosamente antes de começar a criar o seu próprio.

No Windows, é logicamente impossível criar um arquivo .htaccess, pois o Windows não permitirá que você salve o arquivo como está. Aqui está o procedimento a seguir:

  • Crie um arquivo de texto "file.htaccess"
  • Renomeie o arquivo excluindo "arquivo"

Nota: Dependendo do seu editor, você também pode salvar o arquivo diretamente como .htaccess. No Bloco de notas, é suficiente colocar o nome do arquivo entre aspas enquanto o UltraEdit gerencia o próprio nome.

Impedir o acesso aos recursos

Um arquivo .htaccess é composto de duas seções:

Uma primeira seção contém os caminhos para os arquivos contendo as definições de grupos e usuários:

AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /repertoire/de/votre/fichier/.FichierDeGroupe
AuthName "Acesso protegido"
AuthType Basic

  • AuthUserFile define o caminho absoluto para o arquivo de senha.
  • AuthGroupFile define o caminho absoluto para o arquivo de grupo.
  • AuthName faz com que o navegador da Internet exiba: "Digite seu nome de usuário e senha." Domínio: "Acesso protegido" »
  • AuthType Basic especifica que AuthUserFile deve ser usado para autenticação.

Uma segunda seção contém a definição das condições de acesso:


Require valid-user
{instrução de acesso para satisfazer}

  • require valid-user especifica que apenas pessoas identificadas são permitidas. Também é possível especificar explicitamente o nome das pessoas autorizadas a se identificar: require user {username}

No Unix, o caminho para os arquivos de senha e grupo é assim:



/repertoire1/repertoire2/.../.FichierDeMotDePasse

No Windows, o caminho contém antislash (barra invertida) ao contrário da notação Unix:

c: diretório1diretório2 .... PasswordFile

Proteja um diretório com uma senha

Este é um dos aplicativos mais úteis do arquivo .htaccess pois permite definir de forma segura (mediante login e senha) os direitos de acesso aos arquivos por determinados usuários. A sintaxe é a seguinte:

AuthUserFile {localização do arquivo de senha}
AuthGroupFile {localização do arquivo de grupo}
AuthName "Acesso protegido"
AuthType Basic
Require valid-user

O comando AuthUserFile é usado para definir a localização do arquivo que contém os logins e senhas de usuários autorizados a acessar um determinado recurso.

O comando AuthGroupFile é usado para definir a localização do arquivo que contém os grupos de usuários autorizados a se identificar. É possível substituir essa declaração declarando o seguinte arquivo: / dev / null.

Aqui está um arquivo de exemplo .htaccess :

ErrorDocument 403 http://www.Idroid.com/accesrefuse.php
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile / dev / null
AuthName "Acesso seguro ao site CCM"
AuthType Basic
Require valid-user

O arquivo de senha é um arquivo de texto que deve conter em cada uma de suas linhas o nome de cada usuário seguido de dois pontos (:), a seguir a senha criptografada (solução recomendada) ou em claro.

Aqui está um exemplo de um arquivo de senha não criptografada (aqui .PasswordFile)

JFPillou: Toto504
Damien: Robert (32)
Vírgula: Joe [leTaxi]


Aqui está o mesmo arquivo com senhas criptografadas:


JFPillou:$apr1$Si0.....$teyL5Y7BR4cHj0sX309Jj0
Damien:$apr1$TD1.....$sfPTHjoufoNsda4HsD1oL0
Parágrafo: $ apr1 $ zF1 ..... $ wYKqRu2aVYlAEQnxVkly8.

.FichierDeMotDePasse é um arquivo de texto simples contendo os nomes dos usuários seguidos por: a seguir a senha criptografada (ou não) deste usuário. Este arquivo de senha não deve ser colocado em um diretório virtual da Internet (mas o que podemos fazer de outra forma se não tivermos um servidor de Internet e nosso site for hospedado por terceiros?). Também é necessário ter o cuidado de misturar letras maiúsculas, minúsculas, números e símbolos no nome do arquivo ...

Criptografar senhas

O Apache fornece uma ferramenta para gerar facilmente senhas criptografadas (tanto no Windows quanto no Unix), é o utilitário htpasswd acessível no subdiretório bin do Apache.

A sintaxe deste utilitário é a seguinte:

  • Para criar um novo arquivo de senha:

    htpasswd -c {caminho para o arquivo de senha} usuário

  • Para adicionar um novo usuário / senha a um arquivo existente:

    htpasswd {caminho do arquivo de senha} usuário

A senha será solicitada na linha de comando com uma confirmação.
Voici un exemple:

htpasswd -c /www/secure/.htpasswd JFPillou

Aqui está um pequeno utilitário que permite criptografar suas senhas online:

  • https://hostingcanada.org/htpasswd-generator/

Impedir o acesso a um diretório por um domínio

A sintaxe para bloquear o acesso a um diretório por um domínio é a seguinte:

Permitir (todos, [lista de domínios])
Negar (todos, [lista de domínios])
Ordem (Permitir, Negar ou Negar, Permitir)

Negar pedido, permitir
Negar de ..LeNomDuDomaine.com

Todas as pessoas (solicitações) provenientes do domínio .LeNomDuDomaine.com não poderão ter acesso aos recursos incluídos no diretório e seus subdiretórios. O comando Order é usado para especificar explicitamente que o comando Deny cancelará de fato o efeito de Allow e não o contrário.

Aqui está um exemplo de restrição de acesso:

ErrorDocument 403 http://www.Idroid.com/accesrefuse.php
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile / dev / null
AuthName "Acesso seguro ao site CCM"
AuthType Basic
fim negar, permitir
negar a partir de todos
permitir a partir de 193.48.172.2
requer usuário JFPillou

Neste caso, o acesso só será possível para o usuário JFPillou a partir do endereço IP 193.48.172.2 e com a senha correta.

Impedir o acesso a determinado arquivo

Por padrão, o Apache aplica as restrições do arquivo .htaccess a todos os arquivos no diretório em que está localizado, bem como a todos os arquivos contidos em seus subdiretórios.

Também é possível restringir o acesso a um ou mais arquivos no diretório usando a tag.

Aqui está um exemplo de restrição aos arquivos admin.php e admin2.php:


AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile / dev / null
AuthName "Acesso seguro ao site CCM"
AuthType Basic
requer usuário JFPillou


AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile / dev / null
AuthName "Acesso seguro ao site CCM"
AuthType Basic
requer usuário JFPillou

Você deve usar apenas uma tag por arquivo. Caso contrário, o seguinte erro é relatado no arquivo de log de erros:

.htaccess: Vários argumentos (ainda) não suportados.

Para informações, deve-se acrescentar que desde o Apache 1.3, é aconselhável usar a tag em vez da tag. Esta nova tag também suporta apenas um argumento, mas podemos processar vários arquivos graças a uma expressão regular.

Impedir que um domínio acesse um tipo de arquivo


Negar pedido, permitir
Negar de .LeNomDuDomaine.com

Todas as pessoas (solicitações) provenientes do domínio .LeNomDuDomaine.com não poderão ter acesso às imagens, cuja extensão é .png, incluídas no diretório e seus subdiretórios.

Permitir acesso a um grupo de arquivos por domínio e país


Pedido permitir, negar
Negar a partir de todos
Permitir de .phpspain.com
Permitir de .com

Todas as pessoas (solicitações) provenientes do domínio .phpspain.com ou de domínios que terminam em .com serão capazes de acessar arquivos começando com php (por exemplo, os arquivos phpbonjour.html, phpaurevoir.vxf) incluídos no diretório e seus sub - diretórios.

Proteja um diretório com um login

Este método (muito menos seguro que o anterior) permite a autenticação de baixo nível apenas pelo nome do usuário. A sintaxe é a seguinte:

Requer (usuário [lista de usuários], grupo [lista de grupos], usuário válido)

Aqui está um exemplo de linha do arquivo .htaccess:

Requer usuário Damien Comma PumpPHP Jeff Rastapaye

Qualquer usuário que deseje entrar no diretório ou em um de seus subdiretórios será recusado, a menos que se identifique fornecendo um nome que conste da lista.

Forçar um usuário a atender a pelo menos uma das condições

Aqui está a sintaxe:

Satisfazer (qualquer um, todos)

Pedido permitir, negar
Negar a partir de todos
Permitir de .comee.com
Requer usuário Damien Comma PumpPHP Jeff Rastapaye
Satisfaça Qualquer

Isso significa que o acesso ao diretório será bloqueado para todos, exceto as pessoas que se identificam e as solicitações do domínio .comee.com.

Gerenciar tipos de arquivo

Um tipo MIME é um conjunto de tipos de arquivo padrão, permitindo que uma determinada extensão de arquivo seja associada a um aplicativo, a fim de automatizar a inicialização do aplicativo.

Adicionar um tipo MIME a um diretório

A sintaxe é a seguinte:

AddType (mime / type [lista de extensão])

Aqui está um exemplo da implementação do arquivo .htaccess :

AddType image / x-photoshop PSD
Aplicativo AddType / x-httpd-php .php
Aplicativo AddType / x-httpd-php .htm

O servidor enviará o arquivo para o navegador da Internet, informando-o para iniciar o programa PhotoShop (se estiver instalado em sua máquina) e fornecer o arquivo a ele.

Normalmente, isso é usado para arquivos que requerem um plug-in específico não reconhecido pelo seu navegador.
Este comando também permite cancelar qualquer elemento predefinido. Assim, você pode salvar um arquivo .wav com uma extensão .gif e dizer ao navegador para considerar os arquivos .gif como arquivos de áudio!

Na prática, podemos usar este comando para ordenar ao PHP que analise outras extensões de arquivo, .htm por exemplo.

Força todos os arquivos em um diretório para um tipo Mime

Aqui está a sintaxe a ser adotada:

ForceType (mime / tipo)

Por exemplo, com a linha a seguir, todos os arquivos no diretório que contém o arquivo .htaccess serão considerados como arquivos .jpg, independentemente de sua extensão:

ForceType imagem / jpg

Este tipo de controle não pode ser usado nos terminais!

Definir extensões de arquivo padrão

A sintaxe a seguir é:

DefaultType (mime / tipo)

Por exemplo

DefaultType text / html

Esta opção permite definir o comportamento padrão do navegador ao lidar com extensões que são desconhecidas para ele.
Aqui, ele pegará qualquer arquivo desconhecido (por exemplo, 'hello', 'Rastapaye.phpspain') como documento HTML.

Personalização de mensagens de erro

Este é um recurso prático porque permite definir uma página padrão para um determinado tipo de erro (veja todos os códigos de erro e seus significados) ...

Isso permite, por um lado, orientar o usuário em vez de exibir a página de erro banal do navegador, bem como alegrar a navegação mesmo em caso de erro.

ErrorDocument (código de 3 dígitos [nome do arquivo ou texto ou url])

As duas linhas a seguir são usadas para definir páginas de erro personalizadas caso o acesso a um documento seja proibido ou o documento não exista:

ErrorDocument 403 /erreurs/403.php
ErrorDocument 404 /erreurs/404.php

Isso permite que você forneça uma mensagem de erro personalizada substituindo os arquivos fornecidos com o navegador.
Aqui estão alguns dos erros mais comuns de personalização:

  • 401 Não Autorizado: A pessoa não passou na identificação com sucesso.
  • 403 Proibido: o servidor não tem o direito de responder ao seu pedido.
  • 404 Não encontrado: O servidor não conseguiu encontrar o documento desejado.

Alterar o arquivo de índice padrão

O arquivo de índice é o arquivo exibido quando nenhum nome de arquivo é definido no URL (por exemplo http://www.monserver.com/directory). Isso evita que o navegador liste todos os arquivos contidos no diretório (por motivos de confidencialidade).

A sintaxe para realizar este tipo de operação é a seguinte:

DirectoryIndex (arquivos)

Aqui está um exemplo de implementação:

DirectoryIndex index.php index.html index.phtml /erreurs/403.php

Quando você tenta acessar o diretório sem especificar a página a ser exibida, o Apache usará a diretiva DirectoryIndex. Normalmente, por padrão, esta diretiva aponta para index.html e depois para index.htm.

No exemplo acima, o Apache começará procurando por index.php, em seguida, index.html e, em seguida, index.phtml. Se nenhum desses três arquivos existir, a página 403.php (localizada na raiz) será exibida para evitar a listagem do diretório.

Tutorial escrito por Jean-Espagnol Pillou e Douglas Six

Adicione um comentário do Apache - arquivos .htaccess
Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.