Felipemv 0 Postado Agosto 29, 2005 Share Postado Agosto 29, 2005 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: 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: 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: 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 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: 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: Redirect /dirAntigo/arqAntigo.html http://yoursite.com/dirNovo/arqNovo.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 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: order allow,denydeny from 123.45.6.7 deny from 012.34.5.allow from all Você 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. 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: 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 felipemv Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/ Compartilhar em outros sites More sharing options...
z.linha 0 Postado Setembro 16, 2005 Share Postado Setembro 16, 2005 Enorme! mas bem interessante, vlw pela ajuda mesmo sendo um imenso topico Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-4677 Compartilhar em outros sites More sharing options...
Pz_ 0 Postado Setembro 17, 2005 Share Postado Setembro 17, 2005 Axei muito bom ! xD Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-4750 Compartilhar em outros sites More sharing options...
pedro_cardoso 0 Postado Setembro 25, 2005 Share Postado Setembro 25, 2005 KRA, NUM CONSEGUI FAZE O ARQUIVO .htpassw sei lah, diz q tinha q t um nome me ajuda ae plz Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-5329 Compartilhar em outros sites More sharing options...
mxlukax 0 Postado Outubro 9, 2005 Share Postado Outubro 9, 2005 mtu bom o tutorial ai!! VLW!!! Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-6324 Compartilhar em outros sites More sharing options...
mxlukax 0 Postado Outubro 9, 2005 Share Postado Outubro 9, 2005 manow... soh fikei com uma duvida aki.. tp... eu rodo no windows o meu apache... dai eu to colokando o .htpasswd e nao ta dando certo... Arquivo .htaccess AuthUserFile /access/.htpasswd AuthGroupFile /dev/null AuthName AreaRestrita AuthType Basic require user valid-user. Arquivo .htpasswd (que está localizado na pasta "/access") mxlukax:edR.B7dYAN6JE Por favor... me diga o que estou fazendo de errado... ficaria mtu agradecido... FLW! Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-6329 Compartilhar em outros sites More sharing options...
Xiu Xiu 0 Postado Outubro 24, 2005 Share Postado Outubro 24, 2005 tutorial mto bom consigui enteder cuase tudo... mas consigui issu q importa flws Obrigado Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-11266 Compartilhar em outros sites More sharing options...
Watsor 0 Postado Outubro 27, 2005 Share Postado Outubro 27, 2005 Nossa n sabia que o htcaccess servia pra tudo isso. Vlw Flws Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-11803 Compartilhar em outros sites More sharing options...
Visitante xbowaxx Postado Novembro 3, 2005 Share Postado Novembro 3, 2005 muito bom este tuto Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-13669 Compartilhar em outros sites More sharing options...
OxiDouS 4 Postado Dezembro 10, 2005 Share Postado Dezembro 10, 2005 HTAcess Rulez Ty pelo Tuto Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-20912 Compartilhar em outros sites More sharing options...
Kelvne 0 Postado Maio 23, 2006 Share Postado Maio 23, 2006 vc tem msn? me ajuda?? qd eu vo por .htaccess para renomear da assim "Digite um nome de arquivo" me ajuda plzzzzzz Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-75714 Compartilhar em outros sites More sharing options...
Eigenlieb 9 Postado Maio 23, 2006 Share Postado Maio 23, 2006 Coloque créditos ou o tópico será fechado. Abraços Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-75751 Compartilhar em outros sites More sharing options...
DeToNaTiOnS 2 Postado Setembro 8, 2006 Share Postado Setembro 8, 2006 Tutorial ótimo mais coloque os devidos Créditos ! ! ! ! Flw! Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-140142 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Setembro 8, 2006 Share Postado Setembro 8, 2006 Esclareçeu algumas dúvidas que eu tinha. Lembrando que o .htaccess não é a única forma de desabilitar acesso para pessoas não desejadas. Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-140157 Compartilhar em outros sites More sharing options...
Billsin 0 Postado Setembro 26, 2006 Share Postado Setembro 26, 2006 MEU DEUS DO CÉU! Por incrivel que parece ninguen consegue me ajuda a faze um site legal!!! Eu só quero coloca meu site ON (para acc do 7.8), coloca um IP que o server list não regeite e ganha uma speed do meu pai! (meu pc é bom mais minha net não é tão boa!!! PLX ALGUEN PODE ME SOCORRER! CASO ALGUEN TENHA PACIENCIA COM NOOBS FEITO EUUUU EEE QUEIRA INSINA A BOTAR UM SERVER ON EEE OTRAS COISAS PLX ME ADC AEE willian_darkboy@hotmail.com! :confused: :embarrest: Link para o comentário https://xtibia.com/forum/topic/824-full-tutorial-htaccess/#findComment-147374 Compartilhar em outros sites More sharing options...
Posts Recomendados