我正在为网站制作动态缩略图生成功能,我正在使用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。
请帮忙!
由于
答案 0 :(得分:1)
好的,我发现了问题!
这一切都归结为权限问题。 ISAPI重写过程没有足够的权限来读取我正在编写生成的缩略图(/ thumber / images /)的文件夹的内容,因此它假定该文件不存在。
解决方案是为正确的用户分配正确的权限。
我只是按照此博文中的步骤进行操作:
http://vbscriptautomation.net/29/wordpress-permalinks-isapi-rewrite-3-windows-plesk/
由于