mod_rewrite
Imagine, por exemplo, que você migrou do http://dominio.provedor.com.br para http://www.dominio.com.br. Você poderia simplesmente criar um arquivo "index.php" no diretório raiz do antigo endereço com o seguinte conteúdo:
<?php Este é um modelo simples de redirecionamento, que faz com que o servidor passe a encaminhar os acessos para o endereço especificado, usando o código 301, que indica que a página mudou permanentemente de endereço. O problema é que fazendo isso o redirecionamento funcionaria apenas para os visitantes que acessassem a página principal do site. Um visitante que tentasse acessar o "http://dominio.provedor.com.br/produtos/index.php?id=312", por exemplo, receberia um erro 404. Usando o mod_rewrite, você poderia solucionar isso de forma muito simples. O primeiro passo é verificar se o módulo está carregado na configuração do Apache 2. No caso das distribuições derivadas do Debian, você pode ativá-lo usando o comando a2enmod: # a2enmod rewrite Muito provavelmente você receberá um "This module is already enabled!" como resposta, já que ele vem ativo por padrão na maioria das instalações. No caso do Fedora, CentOS e outras distribuições derivadas do Red Hat, verifique o arquivo "/etc/httpd/conf/httpd.conf" e, caso necessário, descomente as linhas:
LoadModule
rewrite_module modules/mod_rewrite.so Depois de checar a ativação do módulo, falta apenas a configuração, que é feita através do arquivo ".htaccess", criado no diretório raiz do site antigo (ou seja, na pasta de arquivos do "http://dominio.provedor.com.br"). Embora o .htaccess seja geralmente associado com o uso de senhas, ele na verdade tem diversos outros usos, incluindo a configuração do mod_rewrite. Para que o mod_rewrite passe a encaminhar todas as requisições automaticamente, o conteúdo do arquivo ".htaccess" seria:
<IfModule
mod_rewrite.c> A linha "RewriteEngine On" é a responsável por encaminhar as requisições ao mod_rewrite, enquanto a linha "RewriteRule (.*) http://www.dominio.com.br/$1 [R=301,L]" explica o que deve ser feito. Apesar de parecer estranha à primeira vista, ela segue na verdade uma lógica bastante simples. O "(.*)" cria uma regra de encaminhamento, que será aplicada a qualquer URL dentro do domínio. A página especificada pelo visitante ao acessar o site vira uma variável ($1), que é então usada no parâmetro seguinte, o "http://www.dominio.com.br/$1" onde é indicado o novo domínio do site. Com isso, se o visitante tentar acessar o "http://dominio.provedor.com.br/produtos/index.php?id=312" do exemplo anterior, a variável "$1" será carregada com o valor "produtos/index.php?id=312" e ele será encaminhado ao "http://www.dominio.com.br/produtos/index.php?id=312". O mesmo se aplica a qualquer outra URL que ele vier a tentar acessar. Concluindo, o "[R=301,L]" é o código de retorno que será enviado ao cliente. No caso estamos usando o código 301, que é o código de redirecionamento permanente. Além de encaminhar os visitantes, ele faz com que o Google indexe a nova página e transfira o pagerank da página antiga para ela. Normalmente, a atualização do pagerank demora cerca de 3 meses, mas depois de feita a atualização o novo endereço deverá receber o mesmo pagerank do antigo. Outro uso comum para o mod_rewrite é a simplificação dos links, transformando URLs de páginas dinâmicas, como, por exemplo, "http://www.dominio.com.br/produtos/index.php?id=312" em URLs mais simples, como "http://www.dominio.com.br/produtos/312/" ou "http://www.dominio.com.br/312.htm" Nesse caso, criamos regras do rewrite que o orientam a detectar acessos à URL simplificada e encaminhar as requisições para a URL "real" de forma transparente, novamente através do uso de variáveis. Para converter as URLs do formato "http://www.dominio.com.br/index.php?id=numero" para "http://www.dominio.com.br/numero/", você usaria o seguinte modelo de arquivo .htaccess:
<IfModule
mod_rewrite.c> Com isso, ao acessar o "http://www.dominio.com.br/512/", por exemplo, o visitante veria a página "http://www.dominio.com.br/index.php?id=512", o que mascara a complexidade da URL. Se você preferir que os links abreviados tenham a aparência de páginas com extensão .htm, em vez de pastas, o arquivo .htaccess ficaria:
<IfModule
mod_rewrite.c> A mesma regra pode ser aplicada também a pastas específicas. Se você quiser que ela se aplique apenas à pasta "produtos", sem ser aplicada a outras pastas do servidor, por exemplo, você poderia usar uma regra como:
<IfModule
mod_rewrite.c> É possível também usar diversos parâmetros simultaneamente, facilitando o acesso a URLs que incluam um grande volume de argumentos, como em "http://www.dominio.com.br/index.php?cat=produtos&cat=info&id=23", desde que você consiga bolar um formato de URL que permita incluir todos os parâmetros necessários, como em:
<IfModule
mod_rewrite.c> Com isso, os três parâmetros que precisam ser incluídos na URL são digitados pelo usuário na forma de uma sequência de subpastas, como em "http://www.dominio.com.br/produtos/info/23/" e o mod_rewrite converte automaticamente as URLs ao formato usado pelo servidor. À primeira vista, pode parecer uma mera mudança cosmética, mas o uso das URLs amigáveis facilita bastante a navegação do visitante e pode ajudar até mesmo na indexação por parte dos mecanismos de busca.
» Próximo: mod_deflate Você está lendo um tópico de demonstração do livro Servidores, Guia Prático:
Autor: Carlos E. Morimoto
Páginas: 736 Formato: 23 x 16 cm Editora: GDH Press e Sul Editores ISBN: 978-85-99593-13-4 Lançado em: Agosto de 2008 » R$ 76,00 + frete (Preço nas livrarias: R$ 96) » Compre o seu Descrição: O livro Redes e Servidores Linux - Guia Prático foi nosso primeiro best-seller, vendendo um total de 8.000 exemplares em suas duas edições. O processo de atualização do livro acabou dando origem a dois livros separados. O primeiro deles é o livro Redes - Guia Prático, que aborda detalhes sobre a implantação e configuração de redes, abordando detalhes sobre os padrões de rede, configuração no Windows e Linux, configuração de redes wireless e outros temas. O livro Servidores Linux, Guia Prático é o segundo livro da série, que complementa o primeiro, oferecendo uma visão aprofundada sobre a configuração de servidores Linux. No livro você aprenderá a configurar tanto servidores de rede local quanto servidores dedicados, incluindo a configuração do Squid, Samba, Apache, SSH, LTSP, Postfix, Iptables, Bind, Quota e outros serviços. O livro inclui também capítulos sobre virtualização e sobre hardware para servidores, que complementam as informações abordadas nos demais.
|
|