PHP navegar para a página de erro
-
06-07-2019 - |
Pergunta
No meu site, website.com/downloads realmente vai para website.com/index.php?page=downloads (com apache reescrever). Eu tenho um costume 404 não encontrado conjunto de páginas de erro. Se eu fizer website.com/dkfjf/fdf, ele vai para o erro 404, mas se eu fizer website.com/something, ele vai para index.php? Page = alguma coisa, então, em seguida, na minha index.php, como posso fazê-lo apenas navegar para 404 erro, depois de determinar que não há página something
? Porque agora, eu só carregar a página de erro meu 404 para o div principal (como todas as outras páginas), mas é inconsistente (por exemplo, ele ainda exibe website.com/soemthing na barra de endereços, e há outros problemas), e eu só quero fazê-lo navegar para 404 erro. Como posso fazer isso?
EDIT: isso funcionou:
echo '<meta http-equiv="refresh" content="0; url = /error" />';
(regravações mywebsite.com/error para index.php? Page = erro, que é a minha página de erro 404). É que uma abordagem ruim?
Solução
Use a header
função para enviar o código de status correto:
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
Em seguida, você pode enviar o documento erro com readfile
se é um arquivo estático ou com include
se é um arquivo PHP.