我正在使用这种技术来动态调整图像大小,使用.htaccess和一些php脚本。
在.htaccess中我有这个:
# BEGIN ImageResizing
<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^img-small/([A-Za-z0-9/_-]+).(jpg|gif|png)$ images.php?max_width=100&imgfile=$1.$2
</ifmodule>
# END ImageResizing
images.php是执行实际调整大小的脚本
这个正则表达式:
^img-small/([A-Za-z0-9/_-]+).(jpg|gif|png)$
匹配此路径:
http://yoursite.com/img-large/myimagepath/myimage.jpg
然后将其作为参数$ 1. $ 2
发送到images.php脚本images.php?max_width=100&imgfile=$1.$2
我的问题是:如果我有这样的路径,我怎样才能做到这一点:
http://yoursite.com/myimagepath/min_myimage.jpg
我试图建立一个这样的表达式:
^([A-Za-z0-9/_-]+/)+(min_)([A-Za-z0-9]+).(jpg|gif|png)$
我认为问题出在RewriteRule的第二部分
images.php?max_width=100&imgfile=$1.$2
我试图改为:
images.php MAX_WIDTH = 100安培; imgfile = $ 1 + $ $ 3 4
这是php脚本的第一行:
// max_width and image variables are sent by htaccess
$max_height = 1000;
$image = $_GET["imgfile"];
$max_width = $_GET["max_width"];
if (strrchr($image, '/')) {
$filename = substr(strrchr($image, '/'), 1); // remove folder references
} else {
$filename = $image;
}
$size = getimagesize($image);
$width = $size[0];
$height = $size[1];
答案 0 :(得分:0)
这对你有用吗?
要匹配的网址:http://yoursite.com/myimagepath/min_myimage.jpg
<强>的.htaccess 强>
RewriteEngine On
RewriteBase /
RewriteRule ^.*/([A-Za-z0-9/_-]+).(jpg|gif|png)$ images.php?max_width=100&imgfile=$1.$2
如果没有,你得到了哪个服务器错误?
答案 1 :(得分:0)
我认为我们需要更明确地了解您希望重写处理的路径和名称的组合。但是这里适用于所有符合基本命名模式的图像,这些模式以您指定的文件扩展名结尾