首先,一个简单的问题。如果无法做到这一点,我将发布一个寻求替代解决方案的问题。
简而言之,我需要一些方法来构建RewriteCond的过滤文件路径以进行检查。
例如,我想使用此网址:/images/photos/gallery/beach.jpg/unique-identifier.jpg/width:50;height:50
来检查此文件是否存在:/images/__resized/photos/gallery/beach.jpg/unique-indentifier.jpg
。
为了使事情变得更复杂,如果找不到这个图像文件,我需要将完整的url传递给生成调整大小的图像的resizer脚本,最后发送一个指向完整url的重定向标题。
请询问您是否需要更多详情。我故意离开了一些,因为英语不是我的第一语言,我觉得添加更多细节会让我更难理解我想要做的事情:)
答案 0 :(得分:0)
首先,此规则将检查文件名是否为您的特定格式。然后检查文件是否存在(添加__resized并省略最后一部分)。如果它不存在,那么它将调用resizer.php
:
RewriteCond %{REQUEST_URI} ^images/(.*)/width:[0-9]+;height:[0-9]+
RewriteCond %{DOCUMENT_ROOT}/images/__resized/%1 !-f
RewriteRule (.*) resizer.php
无需向resizer脚本提供任何GET参数,因为它可以访问$_SERVER['REQUEST_URI']
中的原始网址。
您没有明确提及,但我想如果这样的文件存在,那么您想将其发送给用户。
RewriteCond %{REQUEST_URI} ^images/(.*)/width:[0-9]+;height:[0-9]+
RewriteCond %{DOCUMENT_ROOT}/images/__resized/%1 -f
RewriteRule (.*) /images/__resized/%1