我认为这是特定于我的,但我希望在请求的图像不存在时将用户重定向到备用图像。这部分有效。我还想设置一个环境变量来关闭这个图像的缓存,这就是我遇到的问题。我的标志E=
设置环境变量不起作用。我有apache2.2
在我的重写日志中,我得到了这个
xx.xx.xx.xx - - [20/Jul/2011:09:57:24 --0500] [xx.xx.xx.xx/sid#86cad58][rid#89dde90/initial] (5) setting env variable 'devel' to '1'
当我尝试使用标题函数打印此变量时,它显示为(null)。
即:debugger hello_(null)
如果我使用SetEnv指令设置它,它会设置变量,但RewriteRule不会调用变量。除非我使用此方法设置变量,否则我的条件头语句永远不会打印。
这是我的.htaccess
Order deny,allow
Deny from all
Allow from xx.xx.xx.xx
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*\.jpg$ /product.jpg [L,E=devel:1]
header always set cache-control "no-cache" env=devel
header always unset expires env=devel
header always add debugger "hello_%{devel}e"
好吧,我想我的apache版本可能有bug
xx.xx.xx.xx - - [20/Jul/2011:14:24:12 --0500] [xx.xx.xx.xx/sid#4b60d58][rid#4e6eeb0/initial] (5) setting env variable 'devel' to '1'
不会改变环境变量,即使它说它确实如此。
xx.xx.xx.xx - - [20/Jul/2011:14:24:12 --0500] [xx.xx.xx.xx/sid#4b60d58][rid#4e7f3a0/initial/redir#1] (5) setting env variable 'devel' to '1'
确实会改变它。请注意第二个日志条目中的 redir#1 。我用这条规则RewriteRule ^.*product.jpg$ - [L,E=devel:1]
完成了这项工作,但似乎每次请求都会运行它,所以我担心性能会受到影响。