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