Escrevendo mensagens 404 customizadas com php e mod_rewrite
Essa dica é simples e rápida, surgiu a partir de um teste que eu precisava fazer e acabei extraindo a idéia do Wordpress.
Com o avanço das práticas de SEO nos aplicativos, cada fez fica mais comum você precisar usar técnicas de rewrite para tornar seus aplicativos “URL-friendly” – url amigáveis. Uma das técnicas é usar mod_rewrite do apache, mandando todas as requisições para um único aplicativo php que faz todo o processo para você.
Exemplo de um arquivo .htaccess que faz isso por você – lembrando de ativar o AllowOverride Authconfig:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
.
Basicamente, essa configuração fala o seguinte:
- Se o que você chamou no não foi um arquivo encontrado no disco E;
- Se o arquivo também não é um diretório;
- Envie a requisição para o index.php;
Crie um index.php no servidor e chame a url qualquer que você vai ver que ele será acionado, sem dúvida alguma. Mas se em alguns dos casos você quiser mandar um erro 404 para que o buscador saiba que não existe e ao mesmo tempo mandar algo decente para o usuário ?
Simples, basta seguir o simples exemplo (apenas demonstração)
<?php
switch($_SERVER["REQUEST_URI"])
{
case "index2.php":
require_once("xpto.php");
break;
case "teste.gif":
header("Content-type: image/gif");
echo file_get_contents("imagem.gif");
break;
default:
ob_start();
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
require("404.html");
}
?>
Simples, não ? Basta escrever um pequeno parser para tratar as url´s que você quer e seguir a lógica que eu criei. Embora esteja em um modelo bem básico, basta evoluir e criar algo mais elaborado.
abs
Robson
Popularity: 5%







TWITTER
Valeu Robson, bastante útil essa dica
Abs