Atalhos no site (htaccess, redirecionamento e erro 404)

Hoje uma dica nerd, só para variar ;)

Se você visitou o AURELIO.NET recentemente, deve ter notado que a página principal ganhou vários links novos no final, chamados “Atalhos”.

Atalhos no site

Cada palavra daquelas é um link para o endereço:

https://aurelio.net/PALAVRA

Por exemplo, se você quer usar o MiGuXeiToR, não precisa mais daquele endereço enorme

https://aurelio.net/coisinha/miguxeitor/

Agora basta digitar

https://aurelio.net/miguxeitor

E você vai cair na página do tradutor. Quer ver o Canivete Suíço do Shell? É

https://aurelio.net/canivete

Simples assim.

Basta usar a palavra-chave que identifica a área desejada do site, que você vai cair no lugar certo. Dê uma olhada em todos os nomes dos atalhos. Da próxima vez que for acessar o site, use o endereço curto!

Se você não é nerd, pode parar de ler aqui que agora vai ficar chaaaaaaaatoooooo.

Eu avisei. Azar o teu.

Ao digitar o endereço curto do MiGuXeiToR (atalho), note que a barra de endereços do navegador muda automaticamente para o endereço longo. Isso acontece porque as páginas continuam em seus endereços antigos, o atalho é um mero redirecionamento.

Eu poderia ter feito links simbólicos (ln -s) lá no servidor para obter o mesmo efeito de atalho, com a vantagem de manter a URL curta no navegador. Mas acho incômodo ficar criando links. E ter o mesmo conteúdo em dois endereços diferentes (o curto e o longo) pode prejudicar o ranking nos sites de busca. Então o redirecionamento deixa mais claro que o curto é apenas um atalho.

Pelo que pude notar, o Google gosta de atalhos. Apesar de milhares de links na Internet apontarem para o endereço completo do MiGuXeiToR, o primeiro resultado da pesquisa é o endereço curto (atalho). Confira.

O que mais gostei desse esquema foi a simplicidade de criação e manutenção de todos os atalhos: um único arquivo texto.

O servidor Apache usa o arquivo especial .htaccess para guardar algumas regras especiais que podem ser aplicadas a um site. Entre estas regras, está o redirecionamento. Com uma única linha é fácil fazer o atalho já mencionado do MiGuXeiToR:

Redirect 302 /miguxeitor https://aurelio.net/coisinha/miguxeitor/

Traduzindo: “Estimado Apache, por obséquio, seria possível vossa mercê redirecionar todas as visitas destinadas à área /miguxeitor deste site, para o endereço https://aurelio.net/coisinha/miguxeitor/? Ah, se não fosse pedir muito, gostaria que o código 302 fosse usado para identificar este redirecionamento. Grato por sua atenção, subscrevo-me. Obrigado.”

Basta colocar várias linhas para fazer vários atalhos. Fácil, não?

Tá, tem alguns detalhes importantes :)

  • O arquivo deve chamar-se “.htaccess”, em minúsculas e com o ponto na frente.
  • O arquivo deve ter permissões restritas: chmod 664 nele!
  • O arquivo deve ser colocado no diretório principal (raiz) de seu site.
  • O atalho deve estar inteiro em uma única linha, não a quebre.
  • Há outros códigos para usar além do 302. Interessou-se?

    Atualização: Usar o redirecionamento temporário (302) não garante cache. Já o redirecionamento permanente (301), sim. (Obrigado Denilson)

  • Não esqueça da barra / no início do atalho.
  • O atalho pode ser para um subdiretório também:Redirect 302 /viagem/farol-imbituba-2001 https://aurelio.net/viagem/farol-imbituba
  • O endereço para onde o atalho aponta sempre deve ser completo, com http:// e tudo mais. Sim, mesmo que o atalho seja para o próprio site.

    Atualização: No Apache 2 é possível especificar somente o path no destino do redirecionamento, sem precisar do http://seuservidor.com.br. Mas para garantir é melhor usar a notação completa mesmo. (Obrigado Denilson)

  • Este endereço completo pode ser para outro site também. Veja:Redirect 302 /txt2tags http://txt2tags.sourceforge.net/pt
  • Ah, claro. Só vai funcionar no Apache. Se teu provedor usa outro servidor Web, lamento.
  • Mesmo que seu provedor use Apache, é possível que eles tenham desativado o suporte ao htaccess. Na dúvida, pergunte a eles.
  • Atualização: Conforme lembrado pelos participantes do blog, nos comentários, alternativas similares são o RedirectMatch e o mod_rewrite. Ambos usam Expressões Regulares.

Ah, tem mais. Usando o htaccess, de brinde você ainda ganha o direito de poder redirecionar todas as visitas a endereço inválidos (Erro 404) para uma página padrão. Em meu caso, usei a página principal como destino:

ErrorDocument 404 /index.html

Assim o visitante não precisa ter medo de digitar um atalho que não existe. O máximo que acontece é ele voltar para o menu principal.

Atualização: Nem todos concordam que esta é uma boa prática. Leia outras opiniões nos comentários.

Meu objetivo dos próximos meses (anos, se me conheço bem) é migrar definitivamente todos os conteúdos principais do site para estes endereços curtinhos, acabando com a atual hierarquia de pastas e subpastas. Não que elas me incomodem, pelo contrário, são ótimas para organizar tudo. Mas é tão sexy ter um endereço curtinho… Eu não resisto :)

— EOF —

Gostou desse texto? Aqui tem mais.