Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Já sim, o caso de digitar o .php é para testar o erro 404 rs
Meu .htacces está assim:
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
#RewriteRule %{REQUEST_FILENAME} !-f
#RewriteRule %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php?pag=$1
ErrorDocument 404 [http://www.meusite.com.br/meus_erros/erro_404.html](http://www.meusite.com.br/meus_erros/erro_404.html)
RewriteRule ^a-empresa/? empresa.php?type=0
(...)
#RewriteRule ^a-empresa/? empresa.php [NC, L]
#order allow,deny
#deny from all
</IfModule>Já tentou assim, Danny?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule %{REQUEST_FILENAME} !-f
RewriteRule %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pag=$1
RewriteRule ^a-empresa/? empresa.php?type=0
RewriteRule ^a-empresa/? empresa.php [NC, L]
ErrorDocument 404 [http://www.meusite.com.br/meus_erros/erro_404.html](http://www.meusite.com.br/meus_erros/erro_404.html)
</IfModule>
Só pra ressaltar: Quando você for comentar algo no seu arquivo .htaccess, use o "#" no início e no fim do comentário, pois ele não faz efeito só no início, gerando assim um erro.
O problema é que quando a minha query não tem resultados, deveria ir para a página 404 personaliza, então criei uma função e joguei no mysql_error().
Quando tiver erro na query: $chamada = mysql_query($query) or die (mysql_error(redirect()));
Quando não retornar resultados:
$resultados = mysql_num_rows($chamada);
if($resultados == 0):
redirect($resultados);
endif;
Função:
#se não tiver registros, direciona para página de erro personalizada
function redirect(){
exit("<script>location='[http://www.meusite.com.br/meus_erros/erro_404.html'");](http://www.meusite.com.br/meus_erros/erro_404.html%27)
}
Você já configurou seu site para receber URL's amigáveis?
Se está digitando pagina.php, e funciona, já tem algo errado aí.