Conhecendo o arquivo .htaccess

Qual webmaster já não se deparou com o .htaccess e se perguntou para que serve este arquivo? Na dúvida, melhor não mexer.
Para que você não passe por isso novamente, vamos desvendar alguns dos segredos deste arquivo.

Antes de continuarmos, vamos definir o que é o arquivo .htaccess: O .htaccess é um arquivo que fica no servidor web e é utilizado para configurar o tipo de acesso a este servidor.
Com ele pode-se controlar diversos parâmetros como: restrição de acesso (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 outras opções.
O uso correto do arquivo .htaccess pode ajudar muito também no SEO de seu site.

Nota: Ao colocar um arquivo .htaccess na pasta raiz de um site, ele atuará sobre todas as pastas deste. Mas um arquivo .htaccess em uma subpasta anula a ação do anterior passando a agir sobre este diretório 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} ^(site\.com\.br)(:80)? [NC]
RewriteRule ^(.*) http://www.site.com.br/$1 [R=301,L]
//———– Página Padrão ———–//
DirectoryIndex páginadefault.html
//———– Redirecionamento Permanente ———–//
Redirect permanent www.movidopermanentedaqui.com www.movidopermanenteparaca.com
//———– Redirecionamento Temporário ———–//
Redirect temp www.movidotemporariamentedaqui.com www.movidotemporariamentepraca.com
order deny,allow
//——— Páginas permitidas ————-//
allow from www.enderecopermitido.com.br
//——— Páginas Bloqueadas ————-//
deny from www.endereconegado.com.br



Nota:
Mantenha o seu arquivo .htaccess sempre organizado.
Evite inserir instruções desnecessárias pois o servidor processa este arquivo sempre que há uma requisição.


Vamos dar uma olhada nas requisições do código:


1- Comentários:
Para inserir um comentário no arquivo .htaccess, utilize um # antes do conteúdo da linha.


2- Não listar o conteúdo de um diretório:
Quando se tenta acessar um diretório na ausência de um arquivo de índice (index), o Apache mostra por padrão o conteúdo do diretório.
Se quisermos impedir a visualização deste conteúdo basta criar um arquivo de índice, por exemplo: index.html, mas existe uma solução mais elegante utilizando a diretiva Options. Basta inserir o comando:
Options -Indexes


3- Página padrão:
Também poderíamos utilizar a diretiva DirectoryIndex, que especifica quais arquivos atuam como índice por padrão, e que arquivo exibir no caso destes não serem encontrados. 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 - nesta ordem - e no caso de não encontrar nenhum deles, carregar o arquivo proibido.php


4- 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


5- 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á sendo utilizada.

# 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
Neste caso deve-se renomear os arquivos PHP para a nova extensão.


6- Bloquear acesso ao site por IP:
Sempre existem pessoas más intencionadas que ficam vasculhando seu site em busca de falhas pra entrar e causar problemas.
É 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 permitir somente visitantes do Brasil, você poderia configurar assim por exemplo:

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


Vale lembrar que recentamente o Brasil passou a utilizar mais blocos de IP, especialmente nas redes 3G. Então certifique-se quais os ranges que você deverá habilitar ou bloquear para não prejudicar seus usuários.


7- 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


8- Redirecionamentos:
As opções para redirecionar páginas são diversas: javascript, PHP, HTML (http-equiv), etc.
Não é diferente com o .htaccess, e é bem simples também:

Redirect /pastaantiga/pagina_velha.html http://www.seusite.com/pastanova/pagina_nova.html

As três (3) partes que compõem esta diretiva são separadas por espaço e note que elas precisam estar em uma mesma linha.
A primeira parte é o comando Redirect seguido da localização do arquivo/diretório que você quer redirecionar (2ª parte), 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 /diretorioantigo/ http://www.seusite.com/diretorionovo/

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


9- Prevenindo-se contra “hot-linking”:
“Hot Linking” são links que apontam diretamente pra arquivos não HTML (normalmente para conteúdos multimídia, como imagens, arquivos de áudio e vídeo, por exemplo) e roubam/consomem o seu tráfego mensal contratado.
Também é possível evitar isso com o .htaccess! 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 você pode exibir sua 'logo' ou algo do tipo ao invés do conteúdo requisitado:

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]


10- Impedindo a listagem de diretórios:
Existe sempre aquela situação de ter um diretório com arquivos que não desejamos que sejam listados.
Neste caso 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 .htaccessIndexIgnore

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


Caso você não tenha um arquivo .htaccess e queira criá-lo, basta abrir o bloco de notas, inserir as instruções e salvar como .htaccess

  • 2 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

O que é Server Side Includes (SSI)?

Server Side Includes, ou SSI, é um pedaço de código, que está incluído em uma página HTML e é...