Agora que você já está mais familiarizado com o .htaccess, e ficou realmente curioso pra saber o que mais que ele pode fazer por você, chegamos na segunda parte desta série. Se você caiu aqui de para quedas e ainda não leu a primeira parte, eu recomendo, pois alguns itens que abordarei neste e nos próximos artigos da série, já vão estar explicados lá.
http://www.revistaphp.com.br/artigo.php?id=194
Vamos ver agora, como bloquear o acesso de um determinado IP. Vai que você tenha um inimigo e não quer que ele acesse o seu site. Ou então você está recebendo spams via formulário e quer bloquear o acesso do ip, ou até mesmo evitar que algum robô de busca entra no seu site.
PHP
Order deny,allow
deny from 123.456.789.000
allow from all
Explicando: Quero que todo mundo acesse o site, menos o ip mencionado. Sendo assim, você pode enfileirar aí, tantos ips quantos você queira bloquear. E realmente funciona.
Agora uma dica legal, usando DirectoryIndex (não é de comer). Ele serve como o nome diz, pra indicar qual é o nome a ser utilizado como index do site.
PHP
DirectoryIndex revista.php
Isso faz com que, cada vez que o indivíduo acessar o seu site, ao invés de ir para o famoso index.qualquercoisa, ele será redirecioado à uma página (que você criou, é claro) chamada revista.php. Muito útil caso você esteja atualizando o site e quer redirecionar temporariamente pra outro local, ou mesmo se está por exemplo, rolando uma promoção, onde o cara escolhe em que local quer entrar, no site ou outro que vc montou na página. É um recurso amplamente utilizado por sites como o da receita federal, que em épocas de declaração de imposto de renda, quando você acessa o site, ele lhe mostra uma página (e não é redirecionamento) provisória.
Porém, caso você queira redirecionar o visitante para outro local, como por exemlo no caso se você ter os dados de seu site indexados no google, mas após uma atualização, algumas páginas trocaram de nome. Como evitar que o usuário caia em páginas de erro ou não encontre o que procurava?
PHP
Redirect 301 /paginaantiga.html http://www.meusite.com.br/outra_pagina.php
Isso fará com que o usuário que acessaria determinada página normalmente (como até mesmo no caso de favoritos desatualizados) seja redirecionado automaticamente para a nova página ( que pode ser no mesmo dominio, ou então em outro)
PHP
Redirect /pastaantiga/arquivo.html http://outrosite.com.br/pasta/index.php
E no caso acima, podemos redirecionar todo e qualquer acesso à uma pasta ou arquivo antigo, para um novo local.
Agora imagine que algum site de conteúdo inadequado, está linkando o seu conteúdo. E claro, você quer bloquear que todo acesso proveniente deste site seja bloqueado. Utilizando as regras de Rewrite Engine, que são regras para várias funções, você pode usar algo como:
PHP
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} ositemalvado\.com\.br [NC]
RewriteRule .* - [F]
Desta forma caso o site esteja linkando seu conteúdo, o mesmo não poderá ser acessado. Para incluir mais sites bloqueados, basta adicionar mais regrinhas de RewriteCond, uma embaixo da outra.
Ainda neste assunto de bloqueio de linkagem de conteúdo, sabe os sites que insistem em linkar imagens do seu site, direto no href (o tão famoso hot link)? Por exeplo: <a href="seusite.com.br/suaimagem.jpg">? Pois é, isso gera trafego bem maior do seu site (desperdiça sua banda). E grandes sites tem a prática de bloquear isso (inclusive eu). Para tal, você pode continuar usando as regrinhas de Rewrite Engine, como:
PHP
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?meusite.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
Assim, o que você está fazendo é bloquear qualquer site que queira linkar gifs, jpgs, css ou javascripts do seu site. Você pode adicionar mais regras para proteção de conteúdo, como desejar.
Vou abordar mais truques de .htaccess nos próximos artigos desta série.