Mod rewrite 比较查询字符串和现有文件

Mod rewrite 比较查询字符串和现有文件,mod-rewrite,Mod Rewrite,我需要检查查询字符串中指定的文件是否存在。 我已经有了这个规则 RewriteCond %{QUERY_STRING} ^src=([^&]+)(.*)$ RewriteCond %1 -f RewriteRule ^media/resizer/?(?:index\.php)?$ http://cdn.mysite.com/media/resizer/ [NC,R,L,QSA] 在%1中,我有文件名的确切路径,我试图在第二行中检查该文件名是否存在。但它只是检查模式'-f' 重写日志:

我需要检查查询字符串中指定的文件是否存在。 我已经有了这个规则

RewriteCond %{QUERY_STRING} ^src=([^&]+)(.*)$
RewriteCond %1 -f
RewriteRule ^media/resizer/?(?:index\.php)?$ http://cdn.mysite.com/media/resizer/ [NC,R,L,QSA]
在%1中,我有文件名的确切路径,我试图在第二行中检查该文件名是否存在。但它只是检查模式'-f' 重写日志:

RewriteCond: input='src=/forumsdata/images/avatars/james.jpg&w=120&h=120&zc=1' pattern='^src=([^&]+)(.*)$' => matched
RewriteCond: input='/forumsdata/images/avatars/james.jpg' pattern='-f' => not-matched
RewriteCond%{REQUEST_FILENAME}-f是media/resizer/index.php,这种方式不起作用

有什么想法吗? 谢谢。

我最近在%{REQUEST\u FILENAME}上遇到了同样的“问题”。%{REQUEST_FILENAME}根据引用:

与匹配的文件或脚本的完整本地文件系统路径 请求,如果服务器当时已经确定 请求文件名被引用。否则,如在中使用时 虚拟主机上下文,与请求URI的值相同。取决于 AcceptPathInfo的值,服务器可能只使用了一些前导 将请求映射到文件的请求URI的组件

因此,如果这是虚拟主机设置,您可能需要使用%{DOCUMENT_ROOT}引用完整路径,如下所示:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f