Como configurar Mod_Rewrite

O Apache O servidor da web é um dos principais blocos de construção da Internet, servindo sites e aplicativos. É um sistema complexo com muitas opções, e uma das mais importantes é o Módulo Rewrite, ou simplesmente "mod_rewrite". Neste artigo, daremos uma olhada nos usos do mod_rewrite e, em seguida, exploraremos como configurá-lo em seu próprio site baseado em Apache.

O objetivo do módulo de reescrita do Apache

O objetivo deste módulo é reescrever URLs de várias maneiras úteis. Isso significa que, quando os usuários chegam ao seu site por meio de um URL (digitando-o ou selecionando um link que o contém), eles "acabam" em outro URL. Existem vários motivos pelos quais você pode querer fazer isso.

Redirecionando usuários

Você pode usar o mod_rewrite para direcionar os usuários de páginas mais antigas e desatualizadas que ainda podem aparecer nos resultados da pesquisa, para páginas mais novas e atualizadas. Por exemplo, suponha que você tenha uma página em https://www.mysite.com/review2015; se alguém descobrir isso como um link e selecioná-lo, você pode usar uma regra de reescrita para direcioná-lo para http://www.mysite.com/review2019.

instagram viewer

URLs mais fáceis de lembrar

Você provavelmente já viu links relacionados a comércio eletrônico com URLs como https://www.thestore.net/3d78654954c29ace998658. Os desenvolvedores usam rótulos como este para garantir que os itens tenham um identificador exclusivo, mas para tipos não técnicos é difícil lembrar.

Felizmente, uma regra de reescrita pode ajudá-lo a divulgar um bom URL, como https://www.thestore.net/notebooks/spiral/3-subject-spiral/, que, quando seguido, leva o visitante àquele com o URL feio.

Nomes de página exclusivos

Nos primórdios da Web, era comum ver o nome real dos arquivos de página quando você visitava um site. Por exemplo, a página "Sobre nós" de um site pode ser " http://www.someguys.org/about.html."

Mas há alguns motivos pelos quais você não os vê mais. A primeira é que muitos sites são executados por sistemas de gerenciamento de conteúdo, que possuem apenas alguns arquivos de páginas reais. O restante do conteúdo é adicionado dinamicamente à medida que a página é veiculada, então todas as páginas podem parecer ter o mesmo URL, como " http://www.someguys.org/index.php." A regravação de URL permite que você tenha a aparência dessas páginas separadas, enquanto ainda usa um CMS dinâmico para gerenciar seu site.

URLs mais compreensíveis

Os mecanismos de pesquisa classificam as páginas em uma posição superior quando possuem URLs de fácil compreensão. Isso significa que é benéfico para os sites ter um URL como " https://www.thecompany.com/services/consulting" em vez de " https://www.thecompany.com/index.php? section = services & page = consulting, "visto que a última parte se parece mais com um código do que com um URL.

A reescrita garante que você sempre mostre seu melhor rosto, da perspectiva do URL.

Como configurar o mod_rewrite em seu site

Usar a regravação de URL no Apache requer dois componentes principais:

  • Ativando o módulo de reescrita real no Apache
  • Listando as regras de reescrita necessárias em um arquivo .htaccess.

Embora os usos para regravação de URL se apliquem igualmente a outros servidores web como IIS ou nginx, mod_rewrite e os métodos abaixo só se aplicam ao Apache.

Habilitar função de reescrita no Apache

Primeiro, você precisará ativar a função de reescrita na instalação do Apache.

  1. Você precisará descobrir onde o arquivo de configuração do Apache está localizado. Isso dependerá do instalador que você usou.

    • No Windows, você deve procurar um diretório chamado "/ conf" no diretório de instalação do Apache.
    • No popular instalador XAMPP do macOS, ele está localizado em / Applications / XAMPP / xamppfiles / apache2 / conf.
    • No Linux, ele apareceria no diretório / etc / apache2. Em qualquer caso, você está procurando um arquivo chamado "httpd.conf", "http.conf" ou "apache2.conf", portanto, você também pode usar o recurso de pesquisa do seu sistema operacional para procurá-los.
  2. Abra o arquivo de configuração em um editor de texto, como Bloco de notas do Windows ou TextEdit no macOS.

  3. Procure a linha "#LoadModule rewrite_module modules / mod_rewrite.so" e remova a hashtag no início. Isso denota um comentário, o que significa que quando estiver lá, o servidor Apache irá ignorar tudo nessa linha. Remova a hashtag e, da próxima vez, o Apache executará essa linha quando for inicializado.

  4. Salve o arquivo de configuração e reinicie o servidor Apache.

  5. Como alternativa, em algumas versões do Linux, você verá alguns diretórios como "/ etc / apache2 / mods-available" e "/ etc / apache2 / mods-enabled." Eles contêm pedaços de arquivos de configuração que são colocados juntos dinamicamente. Nesse caso, você pode executar os seguintes comandos para primeiro ativar o módulo de reescrita e, em seguida, reiniciar o servidor Apache:

    sudo a2enmod reescrever
    systemctl restart apache2
  6. Agora seu servidor Apache está pronto para reescrever URLs para você. Só agora você precisa dizer quais reescrever e em quais circunstâncias.

Definindo regras Mod_Rewrite em seu site

Você precisará definir as regras para mod_rewrite usando a linguagem de expressão regular. Felizmente, existe alguma ajuda disponível. Para uma determinada reescrita que você deseja habilitar, você pode usar uma ferramenta como o gerador de regras do VisioSpark.

  1. Insira o URL a partir do qual deseja reescrever, ou seja, aquele que o usuário inserirá, no A partir de: campo.

  2. Insira o URL que deseja reescrever, ou seja, aquele em que o usuário irá parar, no Para: campo.

    Geradores de regras de reescrita de GUI podem poupar o esforço de aprender RegEx
  3. Selecione o controle Captcha e, em seguida, selecione Vai. O gerador deve então fornecer um resultado começando com "RewriteRule.

    Se por acaso você encontrar outro gerador, essas etapas podem ser um pouco diferentes, mas esperançosamente no mesmo estádio.

Inserindo regras Mod_Rewrite para seu site

Portanto, esta é uma ótima maneira de apontar e clicar para fazer essas regras. Mas onde você os coloca?

Para usar regras em um site, você precisará criar um arquivo chamado ".htaccess" na raiz do site. É um pouco dependente da plataforma onde os arquivos de um determinado site da Web são armazenados, mas você precisa ter descoberto isso para implantar o seu site lá em primeiro lugar.

Pode já haver um arquivo com esse nome. Se sim, ótimo! Você pode simplesmente adicionar suas linhas a esse arquivo.

  1. Crie um novo arquivo de texto com o nome ".htaccess"na raiz do seu site.

  2. Na primeira linha, insira o código abaixo. Isso informa ao servidor que você deseja habilitar a regravação para o site atual.

    RewriteEngine em
  3. Em seguida, adicione cada uma das linhas que você criou com o gerador. O início do nosso arquivo seria assim:

    RewriteEngine em
    RewriteRule ^ cadernos / espirais / espiral de 3 assuntos / $ / 3d78654954c29ace998658? &% {QUERY_STRING}
  4. Como acontece com qualquer alteração de configuração do Apache, é uma boa ideia reiniciar o servidor.

Usar Mod_Rewrite leva tempo, mas os resultados valem a pena

Usar a função mod_rewrite no Apache definitivamente exige algum esforço. Você tem que mexer com arquivos de configuração baseados em texto, descobrir uma maneira de inserir expressões regulares muito complicadas nesses arquivos e saber como parar e reiniciar manualmente o serviço. Provavelmente, será necessária uma série de tentativas e erros antes de você obter algo que não resulte em erro e se comporte corretamente.

Dito isso, assim que você pegar o jeito, terá grandes benefícios com o mod_rewrite. Seus visitantes serão capazes de lembrar melhor seus URLs, e sua classificação no Google provavelmente irá melhorar. Os "URLs bonitos" resultantes não são apenas para exibição, afinal. Eles também são funcionais.

instagram story viewer