como fazer login qual a página foi “não encontrado”? (Página de erro personalizada Tentando com htaccess, php, HTTP_REFERER)
-
21-08-2019 - |
Pergunta
Eu estava apenas querendo saber como obter o link da página da Web que não foi encontrado no meu site.
Com seguinte código .htaccess, quando uma página não-existente é solicitado, o usuário é redirecionado para my_404.php.
Options -Indexes
ErrorDocument 404 http://mysite.com/my_404.php
Se eu tiver que rastrear o que foi o link da página, que não foi encontrado, como eu faço isso ??
Apenas por exemplo, A.php é uma página web válido, enquanto b.php não é. Então, se eu estou em A.php e tentar ver b.php (página inexistente) .. redirecionamentos .htaccess me para my_404.php em que eu vejo HTTP_REFERER
como A.php .. mas o que eu estou procurando é que "alguém tentou visualizar b.php". Como posso fazer isso?
Obrigado por sua ajuda.
Editar
Por favor, veja: eu não quero verificar em arquivos de log. Estou perguntando sobre algo na página. Obrigado.
Solução
Quando você usa um controle remoto ErrorDocument URL como http://mysite.com/my_404.php
, Apache irá enviar um redirecionamento para a URL para o cliente, é por isso que você não pode obter a URL que faz com que o 404 a partir $_SERVER['REQUEST_URI']
como Matt Bridges sugeriu.
Você pode querer tentar usar um ErrorDocument local (nenhum esquema e servername), assim:
ErrorDocument 404 /my_404.php
Eu $_SERVER['REQUEST_URI']
suspeito, então, devolver o URL originalmente solicitado.
Outras dicas
Esta é provável que já está sendo feito em seu arquivo de log Apache. Você pode apenas analisar os dados, em vez de gravá-la duas vezes.
StackOverflow Archives:
Conteúdo relevante adicionais:
- Apache Log Parser Classe via PHPClasses.org
A variável que você está procurando é chamado $ _SERVER [ 'REQUEST_URI']. Ele mantém o pedido original que foi feita para o servidor pelo cliente.
Você pode ver uma lista de outras variáveis ??"$ _SERVER" aqui .
Editar:
Depois de um pouco de google busca, o seu problema é que a sua página de erro é especificado com o http: // qualificador. Mude sua htaccess para que o ErrorDocument é especificado como um arquivo local, por exemplo .:
ErrorDocument 404 /www/my_404.php
Depois de fazer isso, $ _SERVER [ 'REQUEST_URI'] deve conter o valor correto.
Tenha um olhar em sua matriz $_SERVER
em my_404.php
var_dump($_SERVER);
Eu acho que você vai encontrar o que você precisa. : -)