Les variables d'environnement non disponibles sur le server après mod_rewrite, mais fonctionne localement

Je travaille sur un site où j'utilise SSI pour définir une variable sur une page HTML qui est analysée et que la variable doit être récupérée par un script après une réécriture mod_rewrite . Cela fonctionne sur mon configuration locale, mais pour une raison quelconque, il ne fonctionne pas sur le server de production (les deux sont apache 2.2.22). Voici les bits pertinents:

Le script perl :

 my $working = ($ENV{'HTTP_my_var'} || $ENV{'REDIRECT_HTTP_my_var'}) || "NO"; print "Content-type: text/html\n\n"; print "is it working? <b>$working</b>"; 

lignes pertinentes de .htaccess

 RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ /$1.html [L] RewriteRule ^my_tst$ /cgi-bin/my_tst.cgi [L] 

Le file HTML:

  <!--#set var="HTTP_my_var" value="YES" --> <!--#include virtual="/cgi-bin/my_tst.cgi" --> <br> <!--#include virtual="/my_tst" --> 

C'est le résultat de ma machine locale:

est-ce que ça marche? OUI

est-ce que ça marche? OUI

Mais sur le server de production:

est-ce que ça marche? OUI

est-ce que ça marche? NON

En comparant les configurations du server, la seule chose qui me préoccupe vraiment, c'est que sur le server de production httpd -M ne contient pas la list de apreq_module (shared) , et le server local ne répertorie pas fcgid_module (shared) (entre autres). Cela pourrait-il être dû à l'un de ces? Qu'est-ce qui pourrait causer cette incomparable incomparable dans le comportement?

Dans le cas où il faut mentionner, lorsque je fais un déchargement de %ENV , aucune des variables REDIRECT_ * n'apparaît dans le server de production dans la partie réécrire (la deuxième directive include le HTML), alors qu'ils le font sur le server local et le sortie non réécrit de la directive include.


Modifier: Ajout d'une autre variable, HTTP_my_var2 qui est définie dans .htaccess via une directive SetEnv , n'a pas de problèmes, c'est-à-dire que la valeur n'est pas détruit dans la réécriture.

Toutefois, le réglage de la variable avec SetEnvIf triggers le problème,


Edit1: Confirmé, il semble qu'il y ait une interaction étrange entre mod_suexec , mod_rewrite et mod_include (ainsi que mod_setenvif ). J'ai reproduit avec succès le problème localement en l'exécutant avec suexec activé. La désactivation de suexec en commentant la ligne SuexecUserGroup dans l'input VirtualHost (et le redémarrage du server) produit les résultats souhaités. Maintenant, pour enquêter sur les solutions possibles.

Cela pourrait être un bug dans apache httpd.