Мне нужно кое-что подтвердить, прежде чем я пойду обвинять кого-то в ... ну, я бы лучше не сказал.
Проблема:
Мы разрешаем пользователям загружать изображения и вставлять их в текст на нашем сайте. Раньше мы позволяли пользователям также делать горячие ссылки на наши изображения, но из-за нагрузки на сервер нам, к сожалению, пришлось прекратить это.
Текущее «решение»:
Метод, который программист использовал для решения нашей проблемы «слишком много соединений», состоял в том, чтобы переименовать файл, который получает и обрабатывает запросы изображений (image_request.php), в image_request2.php, и заменить содержимое оригинала на
<?php
header("HTTP/1.1 500 Internal Server Error") ;
?>
Очевидно, что это привело к тому, что все изображения с их атрибутом src, указывающими на исходный файл image_request.php, были повреждены, а также неверный код для отправки в этом случае.
Предлагаемое решение:
Мне кажется, более элегантным решением было бы:
In .htaccess
- Если запрос для image_request.php
- Проверить реферер
- Если реферер не наш сайт, отправьте соответствующий заголовок
- Если реферер является нашим сайтом, перейдите к image_request.php и обработайте запрос изображения
Я хотел бы знать:
По сравнению с простым возвратом 500 для каждого запроса к image_request.php:
Сколько больше нагрузки будет понесено, если мы будем использовать предложенное мной альтернативное решение, описанное выше?
Есть ли лучший способ сделать это?
Нашей главной заботой является то, что сайт работает. Я не согласен с тем, что разорвать все внутренне связанные изображения - это лучший / единственный способ решить эту проблему. Я отказываюсь сообщать нашим пользователям, что из-за того, что МЫ изменили, они теперь должны вручную изменить код встраивания во все ранее загруженное содержимое.