Ir para conteúdo

Tutorial De Htaccess


rickrf

Posts Recomendados

Introdução:

 

O htaccess é um arquivo cujo nome é .htaccess, como se fosse apenas identificado pela sua extensão (possui um ponto e a extensão). É um arquivo de configuração usado pelo servidor web Apache - e apenas pelo Apache. Como o Apache domina amplamente o ambiente web, vale a pena conhecer este arquivo e seu grande potencial.

 

FUNÇÕES DO htaccess:

 

A função mais conhecida do htaccess é a de possibilitar a apresentação de páginas personalizadas para o erro 404 (arquivo inexistente). A mais conhecida, mas apenas uma das muitas funções possíveis: proteger diretórios com senha, redirecionamento automático, alteração de extensões de arquivos, bloqueio de usuários com determinados endereços IP, autorização de IPs específicos, impedir listagem de diretórios, ativar SSI, usar páginas índice diferentes, adicionar tipos MIME, evitar o "hot linking" e outras.

 

As principais funções do htaccess serão abordadas, explicando e exemplificando seu uso, como também apresentando suas limitações e perigos.

 

EXEMPLOS DE CONFIGURAÇÃO:

 

-Documento de erro:

Para especificar seus próprios documentos de erro, tudo o que vocé precisa é adicionar o seguinte comando, em UMA LINHA, ao seu arquivo htaccess:

 

Citação:

 

ErrorDocument code /diretorio/nomearquivo.ext

ou

ErrorDocument 404 /erros/naoencontrado.html

e, de forma análoga,

ErrorDocument 500 /erros/errointerno.html

 

Vocé pode usar os nomes que quiser para seus documentos de erro - para facilitar, recomendo que lembrem a função das mesmas - e colocá-los em qualquer diretório que seja acessível pela web através de uma URL. A primeira barra corresponde ao diretório raiz do site. Eu, pessoalmente, prefiro manté-los num diretório próprio para facilitar a manutenção e para poder controlar spiders indexando estas páginas através de um arquivo ROBOTS.TXT.

Na hipótese de capturar todos os erros acima mencionados e direcionar o usuário para páginas específicas, o arquivo htaccess teria a seguinte configuração:

 

Citação:

 

ErrorDocument 400 /erros/badrequest.html ErrorDocument 401 /erros/authreqd.html ErrorDocument 403 /erros/forbid.html ErrorDocument 404 /erros/notfound.html ErrorDocument 500 /erros/serverr.html

 

 

Não se esqueça de que cada precisa estar numa linha única própria. Pode-se também especificar um endereço URL completo, como por exemplo http://seusite.com/erros/notfound.html, apesar de que a forma padrão é o endereçamento relativo como mostrado acima.

 

 

-Proteção por senha:

 

A primeira coisa a fazer é criar um arquivo chamado .htpasswd. A convenção do nome para este arquivo é a mesma do .htaccess. É como se fosse um arquivo sem nome com a extensão .htpasswd, ou seja, um ponto seguido de htpasswd.

 

Este arquivo conterá o NOME e a SENHA ENCRIPTADA de todos os usuários que poderão ter acesso í area protegida. Por exemplo, o usuário com nome numaboa e senha numaboa pode ser registrado como uma das alternativas abaixo:

 

Citação:

 

numaboa:$1lX5fd*H1jPk "numaboa:62V4UJ/K/c/Wc "numaboa:81x8xIBUZnuLw

 

É claro que ninguém em sã consicéncia vai usar nome e senha iguais, mas este é apenas um exemplo. Observe que o nome fornecido é colocado no início, seguido por dois pontos e pela senha encriptada de acordo com o método proposto para o Apache: para Unix e Linux é usada a função crypt() do próprio Apache (descrito na documentação htpasswd do Apache) e para Windows é o MD5 modificado para Apache (descrito na rfc131 e que vocé pode encontrar na Internet RFC/STD/FYI/BCP Archives).Se vocé procurar pela web vai encontrar alguns sites que oferecem o serviço de encriptação com os chamados htpasswrd generator.

 

CONFIGURANDO O ARQUIVO htaccess:

 

Citação:

 

AuthUserFile /usr/local/seu/diretorioSeguro/.htpasswd "AuthGroupFile /dev/null "AuthName AreaProibida "AuthType Basic "require user numaboa

 

A primeira linha corresponde ao caminho completo do servidor para o seu arquivo htpasswd. Note que não se trata de uma URL e sim de um caminho de servidor. Verifique qual é o caminho correto servidor do seu site (eu costumo usar a função phpinfo() do PHP). Saiba também que, se vocé colocar o arquivo htaccess no diretório raiz, todo o site ficará protegido por senha -- o que, provavelmente, não é a sua intenção.

 

Vocé pode usar qualquer nome para o seu arquivo de senhas, como senhas.txt ou qualquer outra coisa. Basta referenciá-lo corretamente. Além disso, se por acaso o caminho contiver nomes de diretórios com espaços, então será preciso colocar o caminho entre aspas -- por exemplo "/usr/local/diretorio seguro/senhas.txt".

 

AuthName é o nome da área protegida. Também pode ser qualquer nome que vocé desejar, mas evite caracteres especiais como $, %, ç ou ã.

 

AuthType é o tipo de autenticação. Neste caso foi escolhida a Basic porque se trata de uma autenticação porque estaremos usando a autenticação HTTP básica.

 

Com require user numaboa estamos indicando que apenas o usuário numaboa poderá ter acesso a esta área. Se quisermos aumentar a lista de usuários permitidos, devemos substituir require use numaboa por require valid-user. Neste caso, todos os usuários que estiverem no arquivo de senhas poderão acessar a área protegida.

 

Se quisermos que apenas os usuários explicitamente mencionados ou seja, apenas alguns da lista de senhas, possam acessar a área protegida, o bloco de código precisa ser:

 

Citação:

 

AuthUserFile /usr/local/seu/diretorioSeguro/.htpasswd "AuthGroupFile /dev/null "AuthName AreaProibida "AuthType Basic "<Limit GET> "require user numaboa "require user sobmedida "</Limit>

 

-Proteção por senha:

 

O htaccess usa Redirect para controlar qualquer solicitação para uma página específica (ou uma localização não específica que, infelizmente, leva a loops infinitos com certa facilidade) e, se encontrar a dita solicitação, ele a redireciona para a página que vocé especificou:

 

Citação:

 

Redirect /dirAntigo/arqAntigo.html http://yoursite.com/dirNovo/arqNovo.html

 

 

Note que a diretiva é composta de 3 partes que precisam estar numa mesma linha: o comando Redirect, a localização do arquivo/diretório que vocé quer redirecionar relativa ao diretório raiz do seu site (/dirAntigo/arqAntigo.html corresponde a seusite.com.br/dirAntigo/arqAntigo.html) e a URL completa para onde a solicitação deve ser redirecionada. Cada uma das 3 partes é separada por UM espaço, mas tudo em uma única linha. Vocé também pode redirecionar um diretório inteiro usando simplesmente

 

Citação:

 

Redirect /dirAntigo http://yoursite.com/dirNovo/

 

 

Usando este método, vocé pode redirecionar todo o conteúdo do diretório, independente do que vocé fizer com a sua estrutura de diretórios. É o método de efeito global mais rápido que existe.

 

-Bloqueando IPs:

 

Adicione o seguinte código no seu arquivo htaccess -- logicamente mudando os IPs para os desejados -- pondo cada comando numa linha própria:CODEorder allow,denydeny from 123.45.6.7

deny from 012.34.5.allow from allVocé pode recusar endereços IP ou blocos IP. O código acima nega acesso ao site se as requisições vierem do endereço IP 123.45.6.7 ou de qualquer subdomínio do bloco IP 012.34.5 (012.34.5.1, 012.34.5.2, 012.34.5.3, etc). Imagine só, com a segunda opção vocé pode até bloquear acessos vindos de determinado país. Coisa de louco...

 

É claro que, se vocé desejar, pode bloquear o acesso de todos usando deny from all ao invés de allow from all, mas isto não seria muito lógico -- a não ser que queira fechar para balanço )). Mas nem só de endereços IP vive o bloqueio. Vocé também pode usar nomes de domínios, por exemplo, allow from .numaboa.com ou deny from www.pentelho.com.br. O primeiro libera www.numaboa.com, andre.numaboa.com, etc. O segundo bloqueia apenas o que vier de www.pentelho.com.br.

 

-Mudando a pagina inicial:

 

Que negócio é este de DirectoryIndex? Nada demais. É apenas o comando que permite especificar qual o arquivo que deve ser carregado quando chegar uma solicitação de diretório ou URL que não especifiquem uma página em especial (tipo http://www.numaboa.com/). Se vocé cansou de ver entrar seusite.com.br/index.html não tem problema -- pode mudar para seusite.com.br/adoropizza.html.

 

Citação:

 

DirectoryIndex adoropizza.html

 

Isto faz com que a página default de todos os diretórios do seu site passe a ser adoropizza.html. Mas, se vocé quiser poder usar outras páginas ou até scripts como default, basta adicionar referéncias a gosto:

Citação:

 

DirectoryIndex adoropizza.html index.cgi index.pl nhaca.htm

 

 

Adicionando a linha acima ao seu arquivo htaccess e imaginando que o arquivo htaccess esteja no seu diretório raiz, o resultado será o seguinte: quando um usuário digitar seusite.com, adoropizza.html é a primeira a ser procurada no seu diretório raiz; se for encontrada, ela é enviada ao usuário e a procura pára por aí; se não for encontrada, index.cgi é a próxima... e assim por diante até nhaca.htm. Caso nenhum dos arquivos relacionados seja encontrado, aí entra o famigerado erro 404.

 

Lembre-se de que todos os diretórios abaixo do diretório raiz obedecem as regras ditadas pelo primeiro htaccess acima deles, a não ser que o diretório possua seu próprio htaccess. Se não existirem outros htaccess em subdiretórios, para todos os diretórios do site vale o htaccess do diretório raiz -- as páginas default serão sempre as mesmas. É por isso que, mesmo não personalizando um htaccess próprio, as páginas default são index.html, index.htm, default.html, default.htm, etc -- o pessoal do servidor já fez esta configuração inicial.

 

Já usei este expediente para "proteger" alguns diretórios, geralmente com gráficos ou scripts, os quais não queria que fossem listados. Fazia um htaccess para o diretório indicando uma página inexistente: Tchan! erro 404! Solução pouco elegante mas eficaz. Eu disse "usei", não uso mais. Hoje utilizo redirecionamentos, aliás, nosso próximo tema.

 

É isso,

espero ter ajudado vocés

até mais

 

Créditos: Felipemv

 

Aee pessoal naum são meos os créditos mas coloquei aqui para ajudar vcs flw!

Link para o comentário
Compartilhar em outros sites

Que créditos Felipemv o que!

Ele pegou esse tutorial daqui:

http://www.numaboa.com.br/informatica/webmaster/htaccess/

 

Só o numaboa ali já é evidente que ele pegou de lá... E ainda nem deixou os créditos para a dona do site... ¬¬

Copiou na cara dura... pode olhar o texto de lá, tá MUITO semelhante.

 

Flwwww!

Editado por Rikezenho
Link para o comentário
Compartilhar em outros sites

Affs, os cara dão ctrl+C ctrl+V e acabo...pra fala a verdade isso não ajuda em nada, além de ser copiado nem colocam os créditos pra quem teve o trabalho de pesquisar, arrumar tudinho pra gente.

Link para o comentário
Compartilhar em outros sites

  • 2 months later...

Olá Xtibiano,

 

Parabéns, seu tutorial foi aprovado.

 

Estarei movendo ele para a área de tutoriais.

 

Obrigado por trazer conteúdo para o Xtibia.com e espero que continue com o ótimo trabalho.

 

 

Atenciosamente,

JV Chequer *Diretor Xtibia.com*

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...