Прямого пути нет. Ни один perfect
один. Но есть несколько обходных путей с PHP.
Например, в настоящее время я использую функцию для создания ссылок на каждой странице. Поэтому мне просто нужно добавить file_exists () к основной функции (несколько строк в одной функции).
Это функция, которую я бы использовал для создания URL:
function url ($Value)
{
// Do some stuff with the url
// [Not showed]
if (!file_exists("/internal/path/".$Value))
{
// Call a function to store the error in a database
error ("404", $Value);
// One way of handling it. Replace '/' for ' ' and search that string.
// Example: "path/to/page" would become "path to page".
$Value=str_replace("/","%20",$Value);
return "http://www.example.com/search=".$Value;
}
else
{
// If the page exists, create the normal link.
return $FullUrl;
}
}
Это мой обычный способ создания URL:
<?php url('path/to/page'); ?>
Я только что подумал об этом методе. Это здорово, так как позволяет вам найти пропущенные страницы, даже если пользователь не нажимает на ссылки. Спасибо, что заставили меня подумать об этом, и теперь я буду использовать это на своей странице (:
Другой «более простой» метод (в случае, если вы не переносите ссылки) заключается в том, что вы сохраняете последние пару страниц, посещенных в $_SESSION['lastpage'];
и $_SESSION['lastlastpage'];
, если найдено 404, сохраняйте соответствующую страницу, с которой пользователь пытался получить доступ к сломанной странице. Это не идеальное решение, поскольку вам нужно вручную найти неработающую ссылку на предыдущей странице, но, по крайней мере, это дает вам некоторое представление о том, где она находится.
Недостаток: Как видите, оба решения работают ТОЛЬКО с внутренними неработающими ссылками.