我试图做我的web应用程序如下:

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

时有可能有我的服务器(我使用Apache的共享主机环境)中运行访问.JPG(或我选择的任何文件类型)当PHP脚本,而不是仅仅服务于文件?

我知道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>

编辑:尝试以上。和其他事物一样,未经测试...:)

的GET参数的顺序变得重要。

test.jpg?height=100&width=120

应该得到变成

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


另一种办法是让Apache服务.JPG作为该目录的PHP脚本。 只要看看在你的httpd.conf或php.conf,寻找.PHP。查找指令,并为.JPG一个<Directory>内复制它。 我从来没有真正尝试过这种单个目录,但最终它会比mod_rewrite的路线更快。

是这样的:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top