Como Configurar o Mod_Rewrite do Apache e Ter URLs Amigáveis

Como Configurar o Mod_Rewrite do Apache e Ter URLs Amigáveis

O mod_rewrite do Apache é uma maneira fácil e eficiente de manipular URLs. A manipulação de URLs é feita pelo lado do servidor.

Numa explicação simples, com o mod_rewrite, URLs amigáveis, simples e sem caracteres especiais são convertidas em sites.

Como o próprio nome sugere, o que ele faz é reescrever a URL. E isso pode ser uma ótima maneira de limpar e organizar as URLs do seu site.

Neste tutorial, vamos explicar o que é mod_rewrite, por que ele é útil e como configurar a ferramenta numa VPS rodando no Apache.

Como o Mod_Rewrite Apache funciona?

Todas as vezes que o usuário insere uma URL no navegador, ela é verificada dentro uma lista de regras pré-definidas.

As regras estão presentes para procurar por algum padrão específico ou até mesmo palavras-chaves.

Se uma palavra-chave está presente em uma URL e a regra corresponder, ela é substituída com uma sequência pré-definida – uma nova URL.

O Que Torna o Mod_Rewrite Útil?

A maior vantagem do mod-rewrite é que ele oferece a habilidade de manipular URLs. Principalmente se você tem uma URL complicada e deseja deixá-la limpa em uma nova URL.

Essas novas URLs também são amigáveis ao usuário final e aos motores de busca. Isso significa que eles vão reconhecer essas nova URLs muito mais rapidamente.

Mas o que é uma URL limpa? Vamos dar uma olhada nos exemplos abaixo.

  1. URL1: http://modrewriteexample.com/client.php?id=A786#234QA
  2. URL2: http://modrewriteexample.com/client/=A786#234QA/
  3. URL3: http://modrewriteexample.com/client/Martha/

De todas as três URLS listadas acima, está claro que a terceira é uma URL muito mais fácil de ler e ser melhor entendida pelo usuário do que as outras duas. Neste caso, a URL 3 é uma URL limpa.

Como Configurar Mod_Rewrite numa VPS Linux?

Antes de começarmos, você vai precisar de acesso a sua VPS usando SSH. Se precisar de ajuda nesse processo, use nosso tutorial PuTTy. Agora, vamos partir para a configuração.

1. Instalar o Apache

Vamos usar o Ubuntu 18.04 para este exemplo. Ele tem um pacote de instalador nativo, que se chama apt-get. Primeirol, vamos atualizá-lo executando o comando:

sudo apt-get update

Agora, podemos proceder com a instalação do Apache. O comando para isso é:

sudo apt-get install apache2

2. Habilitar o Mod_Rewrite

Agora, precisamos habilitar o mod_rewrite. O comando para isso é:

sudo a2enmod rewrite

O comando acima vai habilitar o modo de reescrever ou informar que ele já está em uso. Depois disso, reinicie o Apache.

sudo service apache2 restart

3. Criar o Arquivo .htaccess

As regras para reescrever URLs devem ser pré-definidas. Aqui, o .htaccess aparece. Um usuário pode escrever todas as regras em um arquivo .htaccess.

Ele é usado pelo servidor. Não deve haver erros nesse arquivos, se não o servidor vai apontar o erro. Podemos modificar nossas regras reescritas a qualquer momento.

O arquivo .htaccess deve ser criado na raiz para testar a funcionalidade de reescrever. Para isso, execute o comando:

sudo nano /var/www/html/.htaccess

Isso vai criar o arquivo .htaccess, se ele ainda não tiver sido criado, ou abri-lo, se ele já existir. Agora, podemos salvar e sair. No nano, você pode fazer essa mesma operação apertando CTRL+O para salvar e CTRL+X para sair.

Agora, precisamos abrir o arquivo 000-default.conf localizado no diretório /etc/apache2/sites-enabled/. O comando para fazer isso é:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Dentro deste arquivo, coloque o bloco de texto abaixo usando a linha <VirtualHost *:80>:

<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow, deny
allow from all
</Directory>

Salve o arquivo como você fez com o .htaccess. Para as mudanças acima surtirem efeito, reinicie o Apache como mostrado no final do passo 2.

4. Reescrever a URL

Reescrever a URL é basicamente escolher a URL limpa e convertê-la em caminhos reais que levam ao código ou site esperado. Ela deve ter:

  • Uma regra de reescrita pré-definida;
  • Um padrão – o padrão fornecido vai agir como uma referência combinada com a URL inserida pelo usuário;
  • Linhas de reescrita – ela vai solicitar o caminho que deve ser chamado no momento pedido pelo servidor.

Agora, vamos escrever uma regra de reescrita que vai direcionar o usuário para a página About_us.html, se a URL requisitada for http://ip/Aboutus.

Para escrever a regra de reescrita com sucesso, o motor de reescrita deve estar ligado. Insira o comando abaixo no começo do arquivo .htaccess.

RewriteEngine on

O próximo comando pode ser a nossa regra:

ReWriteRule ^About_us$ Aboutus.html [NC]

A sintaxe pode ser um pouco confusa, então vamos separá-la por partes.

  • Na regra acima, “About_us” é o padrão que, quando encontrado e correspondido, será redirecionado para About_us.html.  
  • “NC” é um sinalizador que faz com que a regra seja insensível a letras maiúsculas ou minúsculas.
  • “^” retrata que o texto imediatamente após o endereço de IP é correspondido.

As duas linhas combinadas se pareceriam com isso no arquivo .htaccess:

ReWriteEngine on
ReWriteRule ^About_us$ Abouts_us.html [NC]

E isso é tudo! Criamos com sucesso uma regra mod_rewrite!

Conclusão

URLs fáceis e amigáveis ao usuário tem um papel vital no sucesso de um site. Ter as palavras-chaves é muito importante, não apenas URLs memoráveis, mas você precisa pensar no SEO também.

Existem centenas de regras que você pode criar e escrever. E agora você sabe como fazer isso! Esperamos que você faça bom uso do mod_rewrite. Até o próximo tutorial. 😉

Author
O autor

Andrei L.

Jornalista e conteudista SEO/Localização na Hostinger Brasil. Tem experiência em WordPress e na produção de conteúdos de tecnologia otimizados para conquistar as melhores posições no Google. É fã de games, adora vôlei, ama o inverno e está sempre buscando se aperfeiçoar no Inglês.