我在为小尺寸图片创建网址时创建.htaccess规则存在问题。
我已将图片保存在upload / images /目录中,它看起来像这样:
somedomain.com/upload/images/bigimage-some_name123.jpg
我已经通过PHP创建了url,因此我可以调用已调整大小的图像:
somedomain.com/upload/images/small/bigimage-some_name123-150x100.jpg
从这个小网址我需要4个参数:
通过.htaccess需要创建网址,以便我可以获取上面的所有参数并动态显示已调整大小的图像:
somedomain.com/image-resizer/index.php?image=upload/images/bigimage-some_name123.jpg&width=150&height=100
我的同事发给我这个.htaccess行,我需要重写它以便它可以用于我的项目。
RewriteRule
^upload/images/small/([^/.]+)-([0-9]{3,5})([^/.]+)-([0-9]{2,3})x([0-9]{2,3}).jpg$
module/show_image.php?name=../files/$2$3.jpg&width=$4&height=$5 [L]
答案 0 :(得分:2)
这可以在重写规则中很好地处理,并且比在PHP中执行要快得多。您可以在根.htaccess
中使用此规则:
RewriteEngine On
RewriteBase /
RewriteRule ^(upload/images)/small/(.+?)-(\d+)x(\d+)\.(jpe?g)$ image-resizer/index.php?image=$1/$2.$5&width=$3&height=$4 [L,QSA,NC]
答案 1 :(得分:1)
您不应尝试从.htaccess重写规则中的路径中提取信息。在PHP中这样做要容易得多。所以我所做的是将整个SEO优化的URL提供给重写规则背后的PHP页面。我的.htaccess看起来像这样:
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
您可以看到重写规则现在有多简单。然后在PHP中我在SEO路径上工作,并提取想要的信息,这并不太难。
当然,你仍然需要根据自己的情况调整它。例如,仅将其限制为.jpg文件。在你的情况下,它可能是:
RewriteRule ^(.*).jpg$ /module/your.php?SEOPath=$1 [L]