Php

Php Ativar a Re-escrita de Url – Apache e .htaccess | Re-Escrita No Amazon Linux Ami

É uma tarefa simples. Porem fazemos tão poucas vezes que sempre que precisamos fazer acabamos quebrando a cabeça.

Inciei alguns testes com o Amazon Ec2, a plataforma me agradou muito, porem com isso é necessário assumir um novo trabalho: nada de abrir chamados para a empresa de hospedagem, é necessário configurar tudo na mão. Principalmente se guiado por este e-book, aproveito e indico o link para quem quiser saber mais sobre o assunto: Planeta Tecnologia.

Um ponto que ficou faltando no e-book é justamente ativar a re-escrita de url. Para fazer isso é necessário trabalhar com 2 arquivos:

httpd.conf: Arquivo de configuração do apache;

.htaccess: Arquivo que contém (alem de outras coisas) contém as regras de re-escrita.

Verificando se mod_rewrite está sendo carregado

O primeiro passo é saber se o módulo de re-escrita (mod_rewrite) está ativo. Para isso iremos criar um arquivo php que exibe o phpinfo:

<?php
phpinfo();
?>

Salve o arquivo e abra via browser. No meu caso eu salvei o arquivo em “/home/ec2-user/www” e abri acessando http://177.71.245.89/phpinfo.php.

Com um Ctrl+f, localize “mod_rewrite”:

1) Ativando mod_rewrite

Na sessão Loaded Modules são listados os módulos que estão sendo iniciados pelo Apache. No caso ele já está ativo, então não será necessário ativa-lo.

Caso não estivesse ativo, seria necessário editar o arquivo httpd.conf. No meu caso está em /etc/httpd/conf/httpd.conf, e posso editá-lo através do comando:

sudo vi /etc/httpd/conf/httpd.conf

O e-book da uma explicação sobre como usar o vi, que é o editor do linux. Para ativar remova o caractere “#” de #LoadModule rewrite_module modules/mod_rewrite.so. Com o caractere no inicio da linha, significa que ela está comentada, portanto o seu httpd.conf deve ficar assim:

LoadModule alias_module modules/mod_alias.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

2) Ativando o AllowOverride

Mesmo que o módulo esteja ativo, é provável que seja necessário “Permitir Substituir”. Procure por <Directory /> e altere para:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

3) Alterando as regras de re-escrita

Crie um arquivo .htaccess na raiz. No meu caso ficou “/home/ec2-user/www/.htaccess”. As regras irão variar de site para site, entretanto deixo um exemplo do conteúdo inteiro de meu .htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine On

   RewriteRule ^noticias/([0-9]+)/?$ /noticias.php?pagina=$1 [NC]
   RewriteRule ^noticia-detalhe/([0-9]+)/?$ /noticia.php?cod=$1 [NC]
</IfModule>
Anúncios
Padrão

3 comentários sobre “Php Ativar a Re-escrita de Url – Apache e .htaccess | Re-Escrita No Amazon Linux Ami

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s