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.
Conteúdo
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.
- URL1: http://modrewriteexample.com/client.php?id=A786#234QA
- URL2: http://modrewriteexample.com/client/=A786#234QA/
- 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. 😉
Este post foi modificado pela última vez em maio 16, 2019 2:29 pm