我正在为站点开发动态缩略图生成功能,并且正在使用 mod_rewrite 功能对已生成的图像进行快速缓存。
我使用以下重写条件执行此操作:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-s
RewriteRule ^/thumber/images/([0-9]+)_([0-9]+)_(.+)$ /thumber/thumbnail.cfm?src=$3&w=$1&h=$2 [PT,L,QSA]
第一行确保重写规则仅在请求的图像不存在时转发到我的脚本页面。
这在 Apache 2 中运行良好,但是当我使用 ISAPI Rewrite 3 Lite 将相同的规则移动到 IIS 服务器时,它总是表现得好像文件不存在一样,即使在已经生成缩略图的第一次重定向之后也是如此。
简而言之,由于某种原因,!-s标志似乎根本不起作用。我也尝试过!-f并且没有任何变化。
我在想也许这个版本的 ISAPI Rewrite 正在使用某种缓存信息来确定文件是否存在。
除此之外,我不明白为什么它适用于 Apache 而不是 ISAPI。
请帮忙!
谢谢