quinta-feira, 24 de fevereiro de 2011

Ativando o mod_rewrite - Apache2.2

  Então . Essa semana fui atualizar meu apache e descobri que a versao 2.2 nao vem com mod_rewrite ativado.
  Isso me gerou alguns problemas pois tenho 4 servidores webs ativos . 
  
   Se alguem  ai precisa de uma explicação do que é o mod_rewrite ai vai . ( copiei de outro link na internet essa explicação )

O que é mod_rewrite?

É um módulo escrito para o servidor Apache, responsável pela reescrita de URLs em páginas Web. Que fornece uma regra simples sem níveis de seção na URL.
Hoje em dia, com a popularização de assuntos como SEO, usabilidade e acessibilidade, esta prática se tornou comum e está cada vez mais sendo utilizada por grande portais.
Antes de mais nada, para que o módulo mod_rewrite  funcione, obviamente você deve ter configurado e ativado no seu servidor Apache.
Obs: Caso você use o WordPress ou algum sistema que use essa função e ao tentar abrir a pagina de um erro então crie o arquivo .htaccess conforme explicado abaixo.

Criando o .htaccess

Crie um arquivo com o nome “.htaccess” (exatamente desta forma), e mova para a pasta raiz do seu domínio (ou onde queira implantar a reescrita). Em seguida, insira o código abaixo:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cod=$1
Entendendo o código:
RewriteEngine On = Ativa o suporte à reescrita
RewriteCond %{SCRIPT_FILENAME} !-f = Não aplica a condição para arquivos
RewriteCond %{SCRIPT_FILENAME} !-d = Não aplica a condição para diretórios
RewriteRule ^(.*)$ index.php?cod=$1 = Regra de reescrita onde qualquer string (.*) após a pasta, onde estiver o .htaccess, será interpretado por index.php passado na variável cod
Na prática, se você tem uma URL do tipo www.url.com.br/secao/subsecao/, será interpretada por www.url.com.br/index.php?cod=secao/subsecao/. E mais, você não terá limite de níveis para utilizar com as /.

Ativando mod_rewirte

  Aqui você ja deve ter o apache2.2 instalado no seu sistema.
  Vamos verificar se você tem o modulo "mod_rewrite" com o comando : # locate mod_rewrite.so
 Provavelmente ele será encontrado em "/usr/lib/apache2/modules".
  Verifique se o arquivo "rewrite.load" está na pasta "/etc/apache2/mods-enabled". Caso não estiver, copie do mods-available: sudo cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/.
 Dentro do arquivo "rewrite.load" deve ter esse conteudo: 

  LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Agora, edite o arquivo /etc/apache2/sites-available/default (ou 000-default)
E procure o seguinte:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
E mude o AllowOverride para "All": AllowOverride All
Após todos esses cansativos passos, reinicie o apache: service apache2 restart ou/etc/init.d/apache2 restart
Pronto, agora seu mod_rewrite está ativo.

Nenhum comentário:

Postar um comentário