Meu .htaccess redireciona todas as solicitações para /word_here
para /page.php?name=word_here
. O script PHP então verifica se a página solicitada está em sua matriz de páginas.
Se não, como posso simular um erro 404? Eu tentei isso, mas não resultou na minha página 404 configurada via ErrorDocument
no .htaccess
aparecendo.
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
Estou certo em pensar que é errado redirecionar para minha página de erro 404?
Respostas:
A resposta atualizada (a partir do PHP 5.4 ou mais recente) para gerar páginas 404 é usar
http_response_code
:die()
não é estritamente necessário, mas garante que você não continue a execução normal.fonte
O que você está fazendo funcionará e o navegador receberá um código 404. O que ele não fará é exibir a página "não encontrado" que você esperava, por exemplo:
Não encontrado
O URL solicitado /test.php não foi encontrado neste servidor.
Isso porque o servidor web não envia essa página quando o PHP retorna um código 404 (pelo menos o Apache não envia). O PHP é responsável por enviar toda a sua própria saída. Portanto, se você quiser uma página semelhante, terá que enviar o HTML você mesmo, por exemplo:
Você pode configurar o Apache para usar a mesma página para suas próprias mensagens 404, colocando isso em httpd.conf:
fonte
Experimente isto:
fonte
Crie páginas de erro personalizadas por meio do arquivo .htaccess
1. 404 - página não encontrada
2. 500 - Erro interno do servidor
3. 403 - Proibido
4. 400 - Pedido inválido
5. 401 - Autorização necessária
Você também pode redirecionar todos os erros para uma única página. gostar
fonte
Você se lembrou de morrer () após enviar o cabeçalho? O cabeçalho 404 não para automaticamente o processamento, portanto, pode parecer que nada foi feito se houver processamento adicional acontecendo.
Não é bom REDIRECIONAR a sua página 404, mas você pode INCLUIR o conteúdo dela sem problemas. Dessa forma, você tem uma página que envia corretamente um status 404 do URL correto, mas também tem o seu "o que você está procurando?" página para o leitor humano.
fonte
tente colocar
no
.htaccess
arquivo.Faça isso para qualquer erro, mas substitua 404 pelo seu erro.
fonte
No Drupal ou Wordpress CMS (e provavelmente em outros), se você estiver tentando fazer algum código php personalizado parecer não existir (a menos que alguma condição seja atendida), o seguinte funciona bem fazendo com que o manipulador 404 do CMS assuma o controle:
fonte
Imediatamente após essa linha, tente fechar a resposta usando
exit
oudie()
ou
fonte
ErrorDocument
, mas do PHP.ErrorDocument
não tem nenhum efeito depois que você já inseriu o código PHP. esta resposta explica melhor a confusão que enfrentei há 9 anos$reqpath = strtok("/".trim(substr($_SERVER["REQUEST_URI"], strlen(APP_ROOT)), "/"), "?");
em seu arquivo page.php. Porque há um cenário em que uma dessas páginas está esperando uma consulta "nome" do usuário.tente uma vez.
fonte