Desvendando o arquivo .htaccess

Sem Comentários

Qual webdesigner que já não se esbarrou no famoso arquivo .htaccess e se perguntou para que serve esse arquivo? Na Dúvida, melhor não mexer. Para que você não passe por isso novamente, vamos desvendar todos os segredos desse arquivo.

Antes de continuarmos, vamos definir o que é o arquivo .htaccess:
O .htaccess é um arquivo que fica no servidor web e serve para configurar o tipo de acesso a esse servidor. Com ele, pode-se controlar diversos parâmetros como: acesso restrito (com ou sem uso de senha), páginas de erro padrão, página padrão de acesso ao site, acesso com e sem o “www”, redirecionar diretivas, entre outros. O uso correto do arquivo .htaccess provê grande auxilio no SEO do site.

Nota: Ao colocar um arquivo .htaccess na pasta raiz de um site, ele atuará sobre todas as pastas deste. Mas, um arquivo .htaccess uma subpasta anula a ação do anterior passando a agir sobre essa pasta e suas subpastas.

Exemplo de um arquivo .htaccess comentado:

// ——- Autenticação com senha ativado ———–//
deny from all
AuthUserFile /site/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
//——- páginas de erro padrão ———–//
ErrorDocument 400 erro400.html
ErrorDocument 401 erro401.html
… xxx erroXXX.html
ErrorDocument 504 erro504.html
ErrorDocument 505 erro505.html
RewriteEngine on
//———– Evitando Conteúdo duplicado ———–//
RewriteCond %{HTTP_HOST} ^(mundoseo.com.br)(:80)? [NC]
RewriteRule ^(.*) http://www.mundoseo.com.br/$1 [R=301,L]
//———– Página Padrão ———–//
DirectoryIndex páginadefault.html
//———– Redirecionamento Permanente ———–//
Redirect permanent www.movapermanentedaqui.com www.movidopermanenteparaca.com
//———– Redirecionamento Temporário ———–//
Redirect temp www.movatemporariodaqui.com www.movidoparacatemporario.com
order deny,allow
//——— Páginas permitidas ————-//
allow from www.endereçopermitido.com.br
//——— Páginas Bloqueadas ————-//
deny from www.endereçonegado.com.br

Vamos às requisições do código:

Nota: Mantenha o seu arquivo .htaccess sempre organizado e não coloque instruções desnecessárias para não pesar o arquivo, pois o servidor o processa sempre que há uma requisição.

Comentários: para inserir um comentário utilize um # antes do conteúdo da linha.

Não listar o conteúdo de um diretório:

Quando se tenta acessar um diretório, em ausência de um arquivo de índice, o Apache mostra por defaut o conteúdo do diretório. Se quisermos impedir a visualização desse conteúdo bastaria criar um arquivo de índice, por exemplo index.html, mas existe uma solução mais elegante mediante a diretiva Options. Basta inserir o comando:

Options -Indexes

Página padrão:

Também poderíamos utilizar a diretiva DirectoryIndex, que especifica que arquivos atuam como índice por defeito, e que arquivo mostrar no caso de que estes não se encontrem. Por exemplo a linha:

DirectoryIndex index.php index.html index.htm /proibido.php

Isto indicaria ao servidor que deve buscar os arquivos index.php, index.html ou index.htm, nessa ordem, e no caso de não encontrar nenhum deles, carregar o arquivo proibido.php.

Página de erro (exemplo erro 404):

Primeiramente, crie o layout da página de erro. Depois, inclua o código.
ErrorDocument 404 http://www.meusite.com/404.html

Você pode especificar qualquer arquivo que desejar para a personalização do erro e o que deve ser feito para implementá-lo é somente adicionar uma linha de comando pra cada erro ao .htaccess com o seguinte formato:

ErrorDocument 404 erro404.html ou ErrorDocument 404 arq_inexist.htm
ErrorDocument 403 erro403.html ou ErrorDocument 403 proibido.htm
ErrorDocument 500 erro500.php ou ErrorDocument 500 erro_interno.asp

Escondendo a extensão da linguagem de script:Pode-se aumentar a segurança mudando a extensão dos scripts para que os visitantes desconheçam que linguagem está utilizando.# Make PHP code look like unknown typesAddType application/x-httpd-php .cool, desta forma, os arquivos .cool serão tratados como se fossem arquivos PHP. Deve-se renomear os arquivos PHP para a nova extensão.

Bloquear acesso ao site por IP:

Sempre existem os malas que ficam vasculhando o seu site a procura de falhas pra entrar, causar problemas e pichar. É só bloqueá-lo adicionando uma linha de comando com o seguinte formato:

order allow,deny
deny from 012.34.5.6
deny from 012.34.5.
allow from all

A primeira linha bloqueia e não permite que o IP de endereço 012.345.5.6 acesse o site. A segunda linha bloqueia o acesso para o bloco de 012.34.5.1 até 012.34.5.255. A terceira linha permite a todos os outros acessarem o site.

Se você quer somente visitantes do Brasil você poderia configurá-lo assim:

order allow,deny
deny from all
allow from 200.
alow from 201.

Quer bloquear os usuários de um determinado provedor/servidor e não sabe o range de IP, sem problemas:

order allow,deny
deny from .veloxzone.com.br
allow from all

Redirecionamento:

As formas de redirecionar páginas são diversas : javascript, PHP, HTML(http-equiv),etc. Não é diferente com o .htaccess, e bem simples também:

Redirect /dirantigo/pagina_velha.html http://www.seusite.com/dirnovo/pagina_nova.html

As 3 partes que compõem esta diretiva são separadas por espaço e note que o comando é composto de 3 partes que precisam estar numa mesma linha: a primeira é o comando Redirect seguido da localização do arquivo/diretório que você quer redirecionar, relativa ao diretório principal do seu site, e a terceira é o endereço completo do novo arquivo para o qual deve ser redirecionado. Há ainda a possibilidade de se redirecionar todo um diretório :

Redirect /dirantigo/ http://www.seusite.com/dirnovo/

As aplicações são várias, desde repor a informação de um arquivo que você mudou de diretório ou/e de nome até ao redirecionamento de um usuário que requisitou a visualização de um diretório não permitido, por exemplo o de imagens.

Prevenindo-se contra “hot-linking”:

“Hot Linking” são links que apontam diretamente pra arquivos não HTML e roubam/decrescem a sua banda contratada. E também possível evitar isso com o .htaccess, mas antes verifique com o seu servidor se ele permite mod-rewrite. Segue abaixo o código:

RewriteCond %{HTTP_REFERER} !^http://seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.seusite.com.br/.*$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp)$ – [F,NC]

O código acima apresenta um link quebrado para a imagem, mas se desejar mostrar sua logo ou coisa parecida, use:

RewriteCond %{HTTP_REFERER} !^http://seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.seusite.com.br/.*$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp)$ http://www.seusite.com/sua_logo.gif [R,L]

Impedindo a listagem de diretórios:

Existe sempre aquela situação de ter um diretório cheio de arquivos que não desejamos que sejam listados. Existem duas possibilidades pra se fazer isso: a primeira é criar um arquivo index.html vazio e colocar no diretório e a outra com o .htaccess: IndexIgnore *Se este comando estiver no arquivo .htaccess do diretório principal, a listagem de todos os diretórios estarão desabilitadas. Mas você pode também especificar o tipo de arquivo que você não quer que seja listado:

IndexIgnore *.wmv *.jpg *.gif *.swf

Proibe a visualização do arquivo .htaccess:

order allow,deny
deny from all

Caso nao tiver o arquivo .htaccess  baixe ele no seguinte link: http://webinhost.com.br/Downloads/htacces.zip 

Dica: Um excelente site para ediçao do .htaccess  e o site: http://www.htaccesseditor.com/pt.shtml  é em portugues e facil de interargir.

Fontes: http://www.marcelo-alves.com/72dpi/2009/11/desvendando-o-arquivo-htaccess/ 

Sobre o blog

Este Blog tem o objetivo de divulgar as novidades da WebinHost e compartilhar notícias sobre hosting, servidores, empreendedorismo e todo universo tecnológico.

Arquivos

Comente via Facebook
Sem Comentários
 

Deixe uma resposta