Pessoal,
Boa noite.
Hoje vou mostrar a vocês, como redirecionar suas aplicações em caso de erro de digitação de URL, por exemplo, onde normalmente o servidor Web Apache exibe uma mensagem de erro e o visitante pode ter dificuldades para voltar ao seu site. Caso ele tenha encontrado o seu site através de um site de busca (vulgo, Google), ele provavelmente irá sair do seu site e voltar para o Google. Não podemos deixar isso acontecer, correto ?
Mais uma vez, vou recorrer ao nosso grande aliado, o arquivo de configurações do Apache HTTP Server, .htaccess para nos ajudar.
Para criar o redirecionamento, vamos utilizar a diretiva ErrorDocument, como podemos observar no exemplo abaixo:
1 2 3 4 5 6 7 8 9 10 |
## Redirecionar em caso de erros ## ErrorDocument 400 /apache.php?erro=400 ErrorDocument 403 /apache.php?erro=403 ErrorDocument 404 /apache.php?erro=404 ErrorDocument 500 /apache.php?erro=500 ErrorDocument 501 /apache.php?erro=501 ErrorDocument 502 /apache.php?erro=502 ErrorDocument 503 /apache.php?erro=503 ErrorDocument 504 /apache.php?erro=504 ErrorDocument 505 /apache.php?erro=505 |
Isso irá fazer com que para cada código de erro HTTP, você tenha controle de como quer tratar. Quando o usuário digitar uma URL inválida ou que não existe (Erro 404 – Not Found), estou redirecionando para o URL /apache.php?erro=404. Dentro do arquivo apache.php eu faço os tratamentos necessários, a personalização e arte visual para que o visitante leia uma mensagem amigável informando que a página não existe e sugerindo outras URL’s, usando já o layout do meu site e vários links disponÃveis para ele navegar normalmente.
Assim, conquistamos até os visitantes vindos de links quebrados ou enganos! Ah, precisa de ajuda para identificar os códigos de erro HTTP? Saiba mais clicando aqui.
Até a próxima.
Como posso direcionar uma página com erro para a página principal do site, por exemplo, para o link http://www.meusite.com.br?
Só pra reforçar …
Uso WordPress e minhas páginas não possuem extenção, por exemplo, “minhapagina.php” ou “index.php” ou “index.html” … o link é direto, assim … http://www.meusite.com.br/blog/sobre
Wagner,
Boa tarde.
Uma vez que o htaccess do WordPress já vem com as alterações necessárias para o direcionamento de erros 404, você pode editar o arquivo 404.php, que está na pasta do tema que está utilizando (se não existir esse arquivo, pode criar um novo) e substituir o conteúdo por esse código:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . get_bloginfo('url'));
exit();
Outra alternativa, é utilizar um plugin para isso, como o Redirection (https://wordpress.org/plugins/redirection/), que permite fazer esse redirecionamento sem precisar de qualquer conhecimento de htaccess.
Olá,como faço para redirecionar todas as paginas com erro 404 para uma minha pagina inicial?
Pedro,
Basta utilizar esse código no seu arquivo .htaccess:
ErrorDocument 404 /suapagina.php
Olá, estou com um problema.
Caso o usuário digite http://www.site.com.br/pagina.php funciona certinho o direcionamento para a página de erro, mas como utilizamos URL amigável, quando digita http://www.site.com.br/pagina não direciona para lugar nenhum Como devo proceder nesse caso?
Daniele,
Criei um post que deve te ajudar.. Veja o link http://www.dirceuresende.com/blog/implementando-url-amigavel-no-apache-com-htaccess-e-php/
Caso ainda tenha dúvidas, me informe que irei te ajudar.