Desvendando o arquivo .htaccess
Um dos arquivos mais famosos quando o assunto é hospedagem de sites também é um dos mais confusos para webmasters iniciantes, mas isso deve mudar após a leitura deste artigo que tenta desvendar os mistérios do arquivo .htaccess. Descubra algumas funções interessantes e aprenda a manusea-lo corretamente.
O arquivo .htaccess é o responsável por gerenciar todo o acesso ao seu servidor, permitindo restringir o acesso, definir páginas de erro padrão, definir se o acesso se dá por endereço com ou sem o www, redirecionar diretivas, definir o arquivo principal da página inicial e até auxilia nas técnicas de SEO.
Porém lembre-se de que um arquivo .htaccess presente no diretório raiz de um site comanda todas as demais pastas, mas se você criar um novo arquivo numa determinada pasta, o arquivo do diretório raiz perde a ação sobre ela. Abaixo seguem algumas dicas bem bacanas para configurar o seu .htaccess.
Impedir listagem de uma pasta
Geralmente quando criamos uma pasta sem um arquivo de índice (index.html, por exemplo), é comum que o conteúdo desta pasta seja exibido por padrão, mas você pode mudar isso com uma simples linha:
Options –Indexes
Página inicial padrão
Digamos que a página inicial do seu site não esteja no arquivo index. O que fazer? Renomear o arquivo? Não, isso não se faz necessário. Basta dizer ao Apache quais arquivos podem ser considerados como página inicial ou de índice (tradução da palavra index). É muito simples fazer isso, bastando incluir a linha a seguir em seu arquivo:
DirectoryIndex index.php index.html index.htm /proibido.php
No exemplo acima, os arquivos index.php, index.html e index.htm serão considerados como arquivos de índice e caso nenhum deles exista, o arquivo proibido.php, presente no diretório raiz, será mostrado ao visitante.
Página de erro padrão
Quando um usuário visita seu site e por algum motivo cai numa página de arquivo não encontrado ou se depara com um erro em seu servidor, você poderá personalizar o que ele verá. Geralmente, os servidores exibem uma página em branco com o nome do erro em destaque e um texto em inglês comentando o ocorrido. Você pode mudar isso com os códigos abaixo:
ErrorDocument 404 erro404.html
ErrorDocument 403 erro403.html
ErrorDocument 500 erro500.html
Ou…
ErrorDocument 404 arquivo_inexiste.html
ErrorDocument 403 proibido.html
ErrorDocument 500 erro_interno.html
Assim você poderá personalizar o que seu visitante verá e dar informações úteis sobre o erro obtido e maneiras dele sair daquela página e voltar aos trilhos, continuando a visita em seu site, mas em outra página devidamente funcional.
Esconder a extensão da linguagem do script
Esta dica serve para evitar que espertinhos descubram qual linguagem você usa em seu servidor, alterando as extensões dos arquivos que compõem o site. Digamos que a sua página seja escrita em PHP e deseja que os arquivos com final .cool sejam interpretados como .php. O código necessário é o seguinte:
typesAddType application/x-httpd-php .cool
Quer ainda mais “privacidade”? Então faça com que endereços digitados sem extensão abram normalmente. Assim você pode digitar seusite.com/contato que a página contato.cool abrirá normalmente, ocultando a extensão do arquivo. O código necessário é este:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.cool -f
RewriteRule ^(.*)$ $1.cool
Bloquear acesso ao site através de IP
Evite que alguma pessoa mal intencionada acesse seu site em busca de falhas e para fazer bagunça bloqueando o IP do indivíduo com o seguinte código:
order allow,deny
deny from 012.34.5.6
deny from 012.34.5.
allow from all
A segunda linha impede que o IP específico 012.34.5.6 acesse o site, já a terceira linha impede todos os IPs desde 012.34.5.1 até 012.34.5.255 acessem seu site. A quarta linha permite que todos os demais IPs te visitem normalmente.
Impedir acesso de um determinado provedor
Não sabe o IP ao certo, mas conhece o provedor que o encrenqueiro usa? Então bloqueie o acesso desta empresa através do código abaixo:
order allow,deny
deny from .veloxzone.com.br
allow from all
No exemplo acima, qualquer pessoa que use o serviço da Oi não conseguirá acessar o seu site. Para bloquear a GVT, por exemplo, você trocaria .veloxzone.com.br por .gvt.net.br ou adicionaria uma linha extra começando com deny from. A ultima linha permite que usuários de qualquer outro provedor tenha acesso livre.
Redirecionando páginas e diretórios
Há um monte de maneiras de redirecionar uma página ou pasta para outro lugar como pode ser visto a seguir.
Redirect /dirantigo/pagina_velha.html http://www.seusite.com/dirnovo/pagina_nova.html
Neste exemplo, quando um usuário acessa o arquivo pagina_velha.html presente no diretório dirantigo é redirecionado para o arquivo pagina_nova.html no diretório dirnovo. A única coisa que separa os termos é um espaço em branco, não uma quebra de linha. Obviamente, o exemplo acima trata de um arquivo em particular, mas para redirecionar uma pasta inteira, use o código a seguir:
Redirect /dirantigo/ http://www.seusite.com/dirnovo/
Impedir roubo de imagens
Sempre tem aquele espertinho que adora se aproveitar dos outros e poupar espaço em seu próprio disco rígido roubando imagens a partir de outros sites e servidores através de um link direto. O nome desta detestável prática é hotlink e você aprenderá agora a impedi-la.
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]
Assim, todo indivíduo que copiar uma imagem sua irá recebe-la quebrada caso ela carregue num domínio diferente do especificado nas duas primeiras linhas. Para pregar uma peça e mostrar uma imagem nada a ver ou o logo do seu blog/site/empresa, use o código a seguir:
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]
Proibindo a listagem do diretório
Já comentamos isso mais acima, porém este código serve para impedir a listagem geral de todos os diretórios do seu site e ainda permite especificar quais arquivos não devem ser mostrados.
IndexIgnore *.wmv *.jpg *.gif *.swf
Redirecionamento 301 (permanente)
Digamos que você tem um site em um servidor ou pasta e mais outro site em outro servidor ou outra pasta. Você pode fazer um redirecionamento permanente que indica aos buscadores e navegadores que aquele endereço não deve mais funcionar e que foi movido para outro endereço. No servidor ou pasta do site antigo, use o seguinte código:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.novosite.com.br/$1 [R=301,L]
Trocando novosite.com.br pelo novo endereço.
Forçar acesso ao site com www
Evite que o navegador do seu visitante acesse o site sem www redirecionando-o para o endereço que começa com www usando o código a seguir:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^seusite.com.br [NC]
RewriteRule ^(.*)$ http://www.seusite.com.br/$1 [r=301,NC]
Forçando o acesso com HTTPS
Se você possui um certificado SSL e deseja que todos que acessem seu site usem esse protocolo de conexão segura, deve adicionar o seguinte código em seu HTACCESS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Desta forma, quem acessar seu site sem digitar HTTPS na barra de endereços será redirecionado automaticamente.
Proibindo exibição do arquivo .htaccess
Depois de tanta ajuda do arquivo, vamos agora ajuda-lo impedindo que ele possa ser acessado por qualquer um.
order allow,deny
deny from all
Geradores de arquivos .htaccess
Se você quer criar um arquivo htaccess completo sem pesquisar cada comando, pode usar algumas ferramentas disponíveis na internet que te ajudam a gerar um arquivo htaccess perfeito para as suas necessidades em poucos minutos. Use os sites da lista a seguir e divirta-se!
- HTACCESS File Generator;
- Webmaster Toolkit HTACCESS Password Protection;
- HTACCESS Generator.
Agora é só adicionar os códigos acima em seu arquivo .htaccess e aproveitar todos esses recursos. Lembre-se de manter seu arquivo organizado e limpo pois ele é processado a cada acesso que seu site recebe. Comente-o e cuide dele com carinho pois qualquer erro pode tirar seu site do ar. Lembrando que algumas dessas dicas dependem da existência do mod_rewrite instalado em seu servidor.
Ativando o mod_rewrite
Por padrão, o Apache vem com o mod_rewrite desativado, mas para ativa-lo basta editar uma linha do arquivo Conf/httpd.conf, removendo o símbolo # que vem antes de:
LoadModule rewrite_module modules/mod_rewrite.so
Agora procure pela seguinte linha:
AllowOverride None
E altere-a para:
AllowOverride All
Saiba mais sobre o assunto aqui e aqui. Caso você tenha um site ou blog, fórum, portal (e etc.), poderá hospedar-se na Stonelayer e contar com um serviço de qualidade, diversas ferramentas e claro, suporte ao mod_rewrite por padrão, permitindo que você aproveite todas as dicas deste artigo. Confira os planos disponíveis!
Gostou? Então comente!
(via, via e via)