Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как узнать url несуществующей страницы перед редиректом на 404?

mis tr Ученик (97), на голосовании 4 года назад
В настройках htaccess кидает на страницу 404 если запрашиваемой не существует, как узнать юрл запрашиваемой?
Голосование за лучший ответ
Ярослав Искусственный Интеллект (107883) 4 года назад
1. Выбросить Apache и установить nginx
2. В локейшне страницы 404 ставить кастомный заголовок с значением $uri
3. В php-скрипте страницы 404 читать содержимое этого кастомного заголовка используя getallheaders

// Можно конечно передавать URI дописыванием query строки, но это открывает потенциальную уязвимость - так что передача через заголовки чище и корректнее.
Саня Семенов Оракул (60497) 4 года назад
ErrorDocument 404 /404.php?original_url=% REQUEST_URI% как нибудь так но кажись так не работает
Александр Гуру (3372) 4 года назад
Подскажи зачем? Ты хочешь узнать какие у тебя линки битые? Если да то вроде сеошники какую-то сафтину юзают для этого, могу подсказать как за компом буду..
Думаю можно ещё логировать редирект 404, но такого не пробовал, хоть было бы интересно..
АлександрГуру (3372) 4 года назад
По поводу логирования, 404 сохраняет url битой страницы . Т. е ты можешь ее через $_SERVER['REQUEST_URI'] в шаблоне 404 страницы получить.
Ну и записать в лог.
Сделал на своих сайтах такое, вроде работает, а то задолбали эти сеошники со своими сканерами)), лишняя нагрузка на сервак..
Похожие вопросы