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

Bookmarksbookmark bookmark bookmark bookmark bookmark bookmark

Popularity: 3%

1 Comment so far

  1. Lucas on December 3rd, 2009

    Valeu Robson, bastante útil essa dica

    Abs

Vale Presente