mod_rewrite не устанавливает переменные, когда я переписываю - PullRequest
2 голосов
/ 20 июля 2011

Я думаю, что это специфично для меня, но я хочу перенаправить пользователя на альтернативное изображение, когда запрашиваемое изображение не существует.Эта часть работает.Я также хочу установить переменную окружения, чтобы отключить кэш для этого одного изображения, с чем у меня проблемы.Мой флаг 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'

Когда я пытаюсь напечатать эту переменную с помощью функции заголовка, она выглядит как (ноль).то есть: 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.
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], но, похоже, он запускается при каждом запросе, поэтому я обеспокоен падением производительности.

...