Nginx、Apache+PHP 实现图片自动缩略图
定义样式规则
假如 http://img.twoir.com/image.jpg
是一张原始图片,我们想要在后面加上 -small
来实现最小图片的功能,-medium
来实现图片中等缩放的功能,那么只要重写这些 URL
并发送给php来处理进行缩放即可。
重写 - Nginx
#在 server 区块里加入如下配置代码:
rewrite (.+)\.(jpg|jpeg|png)\-(mini|low|medium|high|ultra|extreme)$ $1.$2.$3.$2 last;
location ~* \.(jpg|jpeg|png)$ {
if ( !-f $request_filename ) {
rewrite . /image-handler.php?path=$document_uri last;
}
}
location ~ handler\.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
try_files $uri =404;
}
重写 - Apache
#在资源目录新建一个 .htaccess 文件并加入如下代码
RewriteEngine On
RewriteRule (.+)\.(jpg|jpeg|png)\-(mini|low|medium|high|ultra|extreme)$ $1.$2.$3.$2 [N]
RewriteCond %{REQUEST_FILENAME} \.(jpg|jpeg|png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+\.(jpg|jpeg|png))$ /image-handler.php?path=$1 [L]
PHP
在上文中的 image-handler.php
是处理图片缩放用,其代码可自行实现,path
是请求的图片路径,可以根据这个路径来对原图进行缩放。
后续
如果不想在资源目录放入这些文件,则可直接加入软连接链接到这个位置。
码字很辛苦,转载请注明来自NAERENET的《Nginx、Apache+PHP 实现图片自动缩略图》
2021-01-02 21:42:41