我正在尝试在我的网络应用程序中执行以下操作:
<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" />
但这不是我想要的方式。
答案 0 :(得分:3)
如果你在一个子目录中,你可以使用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即可。找到该指令,并在**
<Directory>
内复制它。
我从来没有真正尝试过这个目录,但最终它会比mod_rewrite路由更快。
类似的东西:
<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg