A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

O arquivo .htaccess

Seg

26

Fev

2007


21:03

(35 votos, média 4.49 de 5) 


Redirecionamento

Você já passou pelo sufoco de mudar porções significantes do seu site e depois ter que lidar com o problema das pessoas procurando páginas antigas que foram substituídas? Depois do trabalhão que teve para divulgar o site e colocá-lo em mecanismos de busca, será que ficou tudo perdido?

A resposta é não, porque existe o redirecionamento. Existem várias maneiras de redirecionar páginas: através de http-equiv, javascript ou qualquer linguagem server-side como Perl, PHP, etc. Acontece que também é possível fazer redirecionamentos através do arquivo .htaccess, provavelmente o mais eficiente considerando o pouco trabalho requerido.

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). Se encontrar a dita solicitação, ele a redireciona para a página que você especificou:

Redirect /dirAntigo/arqAntigo.html http://seusite.com.br/dirNovo/arqNovo.html

Note que a diretriz possui 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://seusite.com.br/dirNovo/

Usando este segundo 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.

Impedir listagem de diretórios

Se você tem diretórios repletos de gráficos, arquivos zip, mp3, etc e não quer que os usuários possam simplesmente listar estes diretórios, existem várias opções. Se a possibilidade de listar diretórios já não estiver desabilitada pelo seu serviço de hospedagem, você pode criar arquivos index.html, vazios ou não, e colocá-los em cada um dos diretórios que não devem ser listados ou, mais uma vez, fazer uso do .htaccess:

IndexIgnore *

O asterisco é um coringa indicando que todo e qualquer arquivo NÃO deve ser listado. Bingo! Se o arquivo .htaccess for colocado no diretório raiz, nenhum diretório poderá ser listado.

Por outro lado, se você quiser especificar o tipo de arquivo que não deve ser listado, faça o seguinte:

IndexIgnore *.gif *.jpg *.mp3

Neste caso, arquivos como .html, .txt, etc serão listados normalmente. Os .gif, .jpg e .mp3 não serão mostrados.

Agora, na situação oposta: seu servidor não permite a listagem de diretórios mas você quer que o faça. Adicione o seguinte:

Options +Indexes

Se você usar esta opção, cuidado para não colocar qualquer arquivo comprometedor nos diretórios atingidos pelo .htaccess. Você já deve ter percebido: o sinal mais (+) antes de Indexes força a listagem, então, Options -Indexes bloqueia inteiramente a listagem. É como o servidor Apache deveria estar configurado, o que nem sempre é o caso...

Se a listagem for permitida, então você pode mostrar que é um expert no assunto. Crie um arquivo com o nome HEADER, ponha nele a descrição da listagem e coloque no diretório alvo. O texto deste arquivo será mostrado antes da listagem do conteúdo do diretório. Também é possível criar um rodapé, que deve ter o nome de README. O conteúdo deste arquivo, que deve estar no mesmo diretório, é mostrado logo após a listagem do conteúdo.

Bloqueio de IP e domínios

Tem um abelhudo infernizando a sua vida? Bisbilhotando seu site e dando trabalho? Bloqueio nele!

Adicione o seguinte código no seu arquivo .htaccess (logicamente mudando os IPs para os desejados), cada diretriz numa linha própria e tomando cuidado para manter as maiúsculas e as minúsculas:

Order Allow,Deny
Deny from 123.45.6.7
Deny from 012.34.5.
Allow from all

A linha Order Allow,Deny indica a ordem na avaliação das permissões (Allow) e das recusas (Deny). A opção é Allow,Deny e, neste caso, primeiramente todas as recusas são analisadas. Se alguma delas for verdadeira, a solicitação é rejeitada; caso contrário, as permissões passam a ser analisadas.

Pode-se recusar endereços IP ou blocos de endereços 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 quiser, 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 wink

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, sub1.numaboa.com, etc. O segundo bloqueia apenas o que vier de www.pentelho.com.br.

Informações adicionais