Нужна помощь от профессионала, как перенаправить старый или недействительный URL

Я недавно обновил сайт, и почти все URL были изменены. Я перенаправил их всех (или я так надеюсь), но возможно, что некоторые из них ускользнули от меня. Есть ли способ как-то перехватить все недействительные URL-адреса и отправить пользователя на определенную страницу и каким-то образом узнать, с какого URL пришел человек, чтобы я мог войти в систему и исправить это? Я думаю, что мог бы использовать.htaccess как-то, но я не уверен, как. Я использую PHP Большое спасибо!

файл ошибок уже находится в.htaccess, но, похоже, ничего не изменится, вы можете увидеть файл ошибок, как показано ниже

AddHandler application/x-httpd-php5s .php
ErrorDocument 404 /content/404.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

Чтобы увидеть проблему, мне нужен результат, мне нужно что-то перенаправить, если кто-то наберет неправильный URL, просто проверьте ссылку, даже если вы удалите половину местоположения в конце URL-адреса, он все еще открывается http://adsbuz.com/classifieds/abu-dhabi-uae/

он должен перейти на страницу с ошибкой, но его нет, мне нужна какая-то сила, чтобы подтолкнуть его к странице с ошибкой, спасибо

1 ответ

Вы можете создать собственный файл 404. Предполагая, что вы используете Apache, вы бы добавили следующую строку в ваш.htaccess

ErrorDocument 404 /errorfilename.php

Этот код в основном сообщает серверу, что если пользователь обнаружит ошибку 404(страница не найдена) для отображения errorfilename.php.

В этом файле PHP вы можете добавить либо код для отправки вам электронного письма, когда пользователь перейдет на страницу 404, либо добавить другую логику для поддержки

  • Хранение базы данных
  • Запись в файл / пользовательский журнал
  • поиск в базе данных местоположения файла и перенаправление пользователя в новое место назначения

В PHP, чтобы получить местоположение страницы 404, вы должны использовать следующую глобальную переменную

$_SERVER['HTTP_REFERER']

Пример вашей страницы 404.php

<?php
$referer = $_SERVER['HTTP_REFERER'];
//this is where you would either email yourself the $referer, 
//insert it into a database or perform more complex operations.
?>
<html>
<head>
<title>404</title>
<body>
Sorry, the page you are looking for has been moved/deleted.<br>
The system administration has been notified of this error.<br>
<a href="index.php">Go to Homepage</a>
</body>
</html>
Другие вопросы по тегам