可怕的头衔,但真的不知道如何描述这种情况。 我想动态调整大小/裁剪图像。我希望配置我的apache来执行以下操作:
我觉得在.htaccess文件中使用FilesMatch指令可能是我们的,但我真的不知道从哪里开始。任何链接都将受到赞赏,或任何想法。
谢谢大家。
答案 0 :(得分:1)
\就个人而言,我将此任务委托给一个脚本(可能使用X-Sendfile),而不是重写一次。
在这里,您可能需要调整您的文档根目录并使您的“个人资料”部分更加通用:
RewriteEngine on
RewriteCond %{QUERY_STRING} "(?:^|&)crop&p=50"
RewriteCond %{REQUEST_URI} ^(/img/profile)(\.png)$
RewriteCond /your/document/root%1.c.50%2 -f
RewriteRule ^ %1.c.50%2 [L]
# hand over to crop script if the above doesn't match
RewriteCond %{REQUEST_URI} =/img/profile.png
RewriteRule ^ /cropper.php?path=%{REQUEST_URI}&p=50 [L]
始终涉及脚本的解决方案: (为了清楚起见,通过/ img / profiles / ...访问)
这真正简化了重写:
RewriteEngine on
RewriteRule ^/img/profiles/([a-z]+)\.([1-9][0-9]+)\.(jpe?g|gif|png)$ /cropper.php?profile=$1.$3&p=$2 [L]
该脚本将检查文件是否存在,并将其传送或首先生成。
解决方案从请求的网址中获取图片名称:
(正如你在评论中提到的)
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteCond /your/document/root%{REQUEST_URI} -f
RewriteRule ^ %{REQUEST_URI} [L]
# hand over to crop script if the above doesn't match
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteRule ^ /cropper.php?path=$1.$3&p=$2 [L]
如果图像直接存储在您的文档根目录中,则可以将其重写为以下内容:
RewriteCond %{REQUEST_URI} ^(/img/profile)\.([1-9][0-9]+)\.(png|gif|jpe?g)$
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^ /cropper.php?path=$1.$3&p=$2 [L]