当我重写时,mod_rewrite没有设置变量

时间:2011-07-20 16:22:03

标签: .htaccess variables mod-rewrite

我认为这是特定于我的,但我希望在请求的图像不存在时将用户重定向到备用图像。这部分有效。我还想设置一个环境变量来关闭这个图像的缓存,这就是我遇到的问题。我的标志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]完成了这项工作,但似乎每次请求都会运行它,所以我担心性能会受到影响。

0 个答案:

没有答案