Desenvolvimento e bases de dados

Configurar URLs amigáveis e regras de mod_rewrite

Revisto a 3 min de leitura mod_rewrite .htaccess

As regras de mod_rewrite permitem encaminhar um URL para outro recurso ou devolver um redirecionamento ao navegador. Na Hostsuar, o LiteSpeed interpreta regras compatíveis com o Apache. É a aplicação que determina que caminhos precisa e como devem ser resolvidos.

Reescrita e redirecionamento

Uma reescrita interna pode servir index.php quando visita /productos, mantendo esse URL no navegador. Um redirecionamento HTTP devolve um destino e o navegador pede outro endereço. Não são intermutáveis: acrescentar um redirecionamento não configura os caminhos internos de um CMS.

Esta linha ativa o processamento de regras no contexto correspondente:

RewriteEngine On

Por si só não cria URLs amigáveis. Precisa das regras concretas da aplicação.

Aplicar as regras do projeto

  1. Confirme a raiz do domínio e guarde uma cópia privada do .htaccess existente.
  2. Obtenha as regras na documentação da aplicação para o seu tipo de instalação, incluindo se está numa subpasta ou se é multisite.
  3. Se fornecer um ficheiro como htaccess.txt, reveja o seu conteúdo antes de lhe mudar o nome. Se já existir .htaccess, mantenha também as regras de que o alojamento ou o resto do site precisam.
  4. Ative a opção de URLs amigáveis ou de ligações permanentes da aplicação, quando for o caso.
  5. Teste uma página interna, um ficheiro estático e um endereço inexistente.

No WordPress, Definições > Ligações permanentes pode regenerar as regras se tiver permissões para escrever o ficheiro; caso contrário, mostra instruções para as aplicar. Não substitua as regras de uma rede multisite pelas de uma instalação simples.

Verificar o resultado

  • Se a página inicial funcionar mas as páginas internas devolverem 404, reveja a localização das regras, a raiz do domínio e a configuração de caminhos da aplicação.
  • Se houver um ciclo, verifique as regras de HTTPS, www, subpastas e os redirecionamentos configurados na aplicação ou no proxy.
  • Se aparecer um 500, reverta a alteração e consulte o registo: pode haver sintaxe incorreta ou uma diretiva não permitida.

No .htaccess, o padrão de RewriteRule é avaliado em relação a esse diretório e normalmente não começa por /. Copiar uma regra da configuração principal do servidor pode exigir adaptá-la. Consulte a introdução oficial ao mod_rewrite quando preparar regras próprias.

Mantenha os URLs antigos que tenham utilização e defina redirecionamentos para o seu equivalente se mudar a estrutura. Evite enviá-los todos para a página inicial: cada destino deve corresponder ao conteúdo que o visitante procurava.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.