Вопрос

Я пытаюсь сделать следующее в своем веб-приложении:

<img src="static.example.com/image01.jpg?width=300&height=300" />

Возможно ли, чтобы мой сервер (я использую Apache в среде общего хостинга) запускал PHP-скрипт при доступе к файлу .jpg (или любому выбранному мной типу файла) вместо простого обслуживания файла?

Я знаю, что PHP-скрипт должен устанавливать правильные заголовки и т.д., мне просто интересно, как его можно запустить в первую очередь.

Я знаю, что это можно сделать следующим образом :

<img src="static.example.com/get_image.php?name=image_01.jpg&width=300&height=300" />

но это не так, как я хотел бы, чтобы это было.

Это было полезно?

Решение

Вы могли бы использовать mod_rewrite при условии, что вы находитесь в подкаталоге, или это все, что вы будете делать другие static.example.com.

Добавьте что-то вроде этого в ваш .htaccess в этом подкаталоге.

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{query_string} ^height=([^&]+)&width=([^&]+)
   RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php?name=$1&height=%1&width=%2
</IfModule>

Редактировать:Попробуйте то, что описано выше.Как и все остальное, непроверенное...:)

Порядок получения параметров становится важным.

test.jpg?height=100&width=120

должно превратиться в

controller.php?name=test.jpg&height=100&width=120


Другой подход состоял бы в том, чтобы заставить apache обслуживать файл .jpg в качестве php-скриптов для этого каталога.Просто загляните в свой httpd.conf или php.conf и найдите .php .Найдите эту директиву и продублируйте ее в <Directory> для .jpg.На самом деле я никогда не пробовал это для одного каталога, но в конечном счете это было бы быстрее, чем маршрут mod_rewrite .

Что - то вроде:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top