перехват всех недопустимых URL-адресов
Недавно я обновил сайт, и почти все URL-адреса изменились. Я перенаправил их все (или надеюсь на это), но возможно, что некоторые из них ускользнули от меня. Есть ли способ каким-то образом поймать все недействительные URL-адреса и отправить пользователя на определенную страницу и каким-то образом узнать, с какого URL пришел человек, чтобы я мог это зарегистрировать и исправить? Я думаю, что мне это пригодится .htaccess как-то, но не уверен, как. Я использую PHP Спасибо большое!
3 ответа:
Можно использовать обычай
ErrorDocument
обработчик, написанный на PHP, чтобы поймать URL, которые "проскочили":# .htaccess file ErrorDocument 404 /not-found.php
И в
not-found.php
:switch($_SERVER['REDIRECT_URL']) { case '/really_old_page.php': header('HTTP/1.1 301 Moved Permanently'); header('Location: /new-url/...'); /* As suggested in the comment, exit here. Additional output might not be handled well and provokes undefined behavior. */ exit; default: header('HTTP/1.1 404 Not Found'); die('404 - Not Found'); }
Проще всего было бы добавить пользовательский редирект 404 в htaccess.
Просто добавьте что-то вроде этого:
ErrorDocument 404 /errors/404.php
К а .htaccess (при необходимости создайте его) в корне приложения. И все страницы запроса к none extistent будут перенаправлены на вашу собственную страницу 404.