У меня есть пользовательская страница обработки ошибок 404
Он ищет URL-адрес в таблице базы данных и перенаправляет, если есть подходящая цель. URL-адреса регистрируются вместе с предоставленным перенаправлением (если есть), и наше приложение имеет отчет администратора, чтобы показать, какие URL-адреса перехватываются, что позволяет клиенту настроить больше и т. д.
У нас есть одна конкретная папка с изображениями, но мы получаем запросы изображений с неверными путями. Там, где мы можем найти подходящее имя изображения в /IMAGES/, мы возвращаем его. Должен ли я использовать 301? (в настоящее время мы возвращаем 200)
Мы выделяем их в отчете администратора, потому что есть вероятность, что есть ошибка в CMS или массовой электронной почте или что-то в этом роде, и, перенаправляя, мы просто маскируем проблему (и я думаю, что ее исправление повысит производительность?)
Мне интересно, должны ли мы возвращать фиктивное изображение, когда мы получаем 404 на отсутствующем JPG/GIF/PNG? В настоящее время мы возвращаем результат 404 и страницу с извинениями в HTML - что кажется мне немного глупым, сделает ли браузер пользователя что-нибудь полезное с возвращенным изображением, если есть код ответа 404?
Мне также интересно, будет ли полезно вернуть изображение «Изображение не найдено, посетите www.example.com» (возможно, в частности, если мой домен НЕ является реферером!). Тогда бесполезный человек, который встраивает наши изображения на свой сайт, причем ошибочно!, может, по крайней мере, привлечь к нам трафик.
Точно так же я должен вернуть что-то полезное, если я получу запрос 404 для файлов JS или CSS? Я думаю, в DEV, по крайней мере, было бы удобно знать, что мы облажались. Иногда отсутствующий файл может быть настолько непонятным при его использовании, что его отсутствие не учитывается при проверке качества. (Я полагаю, что кто-то ДОЛЖЕН заметить это в журналах 404!), но я думаю, может быть, установить для BODY что-то массивное или ALERT в возвращаемом файле .JS, может помочь в DEV.
Погуглив сегодня по этому поводу, я также наткнулся на предположение, что некорректно сформированная строка запроса может возвращать «400 Bad Request» и правильно сформированную строку запроса, но если параметр имеет недопустимое значение (например, код продукта не найден), его можно рассматривать как a 404. Если я сделаю это, а также верну контент (например, страницу с пояснениями), увидит ли это пользователь, или его браузер может заменить его готовой страницей с ошибкой 404? (У меня было ощущение, что это было сделано в более ранней версии IE?)
Все идеи оценены.
(Классический ASP/IIS в моем случае, но, надеюсь, вопрос общий)
Редактировать: мне также интересно, делает ли кто-нибудь что-нибудь особенное с вещами, которые выглядят как известные попытки взлома?
- http://www.example.com:80/admin/phpmyadmin/scripts/setup.php
- http://www.example.com:80/admin/pma/scripts/setup.php
- http://www.example.com:80/admin/scripts/setup.php
- http://www.example.com:80/db/scripts/setup.php
- http://www.example.com:80/dbadmin/scripts/setup.php
- http://www.example.com:80/myadmin/scripts/setup.php
- http://www.example.com:80/mysql/scripts/setup.php
- http://www.example.com:80/mysqladmin/scripts/setup.php
- http://www.example.com:80/phpadmin/scripts/setup.php
- http://www.example.com:80/phpMyAdmin/scripts/setup.php
- http://www.example.com:80/phpmyadmin1/scripts/setup.php
- http://www.example.com:80/phpmyadmin2/scripts/setup.php
- http://www.example.com:80/pma/scripts/setup.php
- http://www.example.com:80/web/scripts/setup.php
и эти "щупальцы":
- http://www.example.com:80/_vti_bin/owssvr.dll?...
- http://www.example.com:80/MSOffice/cltreq.asp?...
Edit2: Извините, надеюсь, последнее.
Должен ли я выделять идентификатор сеанса? Это позволило бы мне отслеживать, возвращается ли пользователь с чем-то более интеллектуальным при второй попытке (что может привести к добавлению записи в нашу таблицу перенаправлений). Создание сеанса включает в себя создание записи сеанса в базе данных и некоторые другие вещи, поэтому это не так «дешево», как просто выдать ошибку 404.