Apache VPS

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

guia sobre mod_rewrite e ter urls amigáveis no seu servidor apache

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. 😉

Andrei L.

Andrei é jornalista e conteudista SEO 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.

2 Comentários

Deixe seu comentário!

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

  • Pode até funcionar, não tentei ainda, mas tem que concordar que é complexo de se fazer. Não tem como fazer de forma mais simples, através do painel principal? Na GoDaddy a URL que se deseja por exemplo, basta colocar a URL que se deseja “esconder” e a que se quer definir . Exemplo “https://contato.site/b5fa448/campanhas-com-videos/modelo-apresentacao-para-empresas-formato-modulo-7” para “http://wagnerguimaraesferreira.com.br” não tem como vcs simplificarem isto? Assim, ao invés de comprar dominios pela GoDaddy para fazer isto, compro aqui mesmo com vcs, uma vez que ja tenho hospedagem. Revejam isto, ok? Obrigado!

    • Oi, Wagner.

      Para entendermos melhor sua dúvida e resolver, peço que entre em contato com o time de suporte dentro do painel de controle de sua hospedagem. Nosso time de suporte está disponível 24/7.

      Aguardamos seu contato 😉

Comece a Economizar Agora!

Hospedagem com tudo incluso e nome de domínio
R$2
29
/mês*