hotti: Unterschied zw. CGI-Umgebung und Server-Umgebung

Hi,

ist mir noch nicht ganz klar, es scheint jedoch Einen zu geben, setze ich in .htaccess

SetEnvIfNoCase Referer ^$  myRef=1

kann ich die Variable myRef zwar im Weiteren in der .htaccess verwenden, in der CGI-Umgebung, mit Perl ausgegeben, sehe ich die Variable jedoch nicht.

Hat mal jemand einen Link zum Nachlesen oder 'n paar erklärende Worte für mich? Evntl. auch ein Beispiel dazu, wie ich in .htaccess eine Variable setzen kann, die Perl in %ENV auch findet.

Hotte

--
# Merke: Gib nicht dem Wetter die Schuld wenn Du einen Kater hast!
  1. ist mir noch nicht ganz klar, es scheint jedoch Einen zu geben, setze ich in .htaccess

    SetEnvIfNoCase Referer ^$  myRef=1

    kann ich die Variable myRef zwar im Weiteren in der .htaccess verwenden, in der CGI-Umgebung, mit Perl ausgegeben, sehe ich die Variable jedoch nicht.

    Richtig.
    Das ist ein Apache Feature, nicht eine CGI Variable.

    Hat mal jemand einen Link zum Nachlesen oder 'n paar erklärende Worte für mich? Evntl. auch ein Beispiel dazu, wie ich in .htaccess eine Variable setzen kann, die Perl in %ENV auch findet.

    Du kannst es nicht.
    Apache wird an Prozesse oder Subrequests nur spezifizierte CGI-Variablen weitergeben.
    Ich habe mich schon geärgert dass mod-rewrite im Grunde nur die Url manipulieren kann, nichts anderes.
    Desgleichen setzt SetEnvIf nur Variablen, die innerhalb der gleichen .htaccess Abarbeitung dann dann weiter verwendet werden können. Sobald diese aber abgeschlossen ist, vergisst Apache alles über diese Variable.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. hi,

      Hat mal jemand einen Link zum Nachlesen oder 'n paar erklärende Worte für mich? Evntl. auch ein Beispiel dazu, wie ich in .htaccess eine Variable setzen kann, die Perl in %ENV auch findet.

      Du kannst es nicht.

      Lieber Beat, Dir ist hoffentlich klar, was Du mit dieser Aussage in meinem Kopf jetzt anrichtest ;-)

      Diesbezügliche Cluster in meinem Zentralnervensystem werde ich jetzt einem LowLevel-Format unterziehen um damit wieder Platz für neue Spielereien zu kriegen. free(cell); malloc(*cigar);

      Schönes Wochenende,
      Viele Grüße an Alle,
      Horst H.

      --
      # nun stirb schon endlich, die!
      0;
      __END__
      Hier steht nur Blödsinn.
  2. Hallo Rolf,

    wenn Du innerhalb der Konfiguration vom Apachen eine Variable für CGI-Scripte setzen willst, nutze mod_env! Die Variablen sind dann in %ENV enthalten.

    <IfModule env_module>  
    	SetEnv neu nein  
    	SetEnv alt ja  
    </IfModule>
    

    Wenn Du adäquat zu mod_setenvif Variablen in Konfigurationen und CGI-Scripten verwenden willst, musst Du schon ganz schön mit mod_rewrite basteln:

    SetEnvIf Request_URI "\.pl$" ja=ja  
      
    RewriteEngine On  
    RewriteCond   %{ENV:ja} ja  
    RewriteRule   (.*)\.pl	$1\.pl?ja=ja [L,QSA]
    

    Es sind keine ENV-Vars - aber immer hin. ;)
    Jedenfalls funktioniert es (vielleicht nur bei mir) nicht so, wie es die Dokumentation mit In addition, Apache provides many different ways for you to add your own environment variables to the basic ones provided by default. verspricht. ;(

    Gruß aus Berlin!
    eddi

    1. Hallo Rolf,

      wenn Du innerhalb der Konfiguration vom Apachen eine Variable für CGI-Scripte setzen willst, nutze mod_env! Die Variablen sind dann in %ENV enthalten.

      <IfModule env_module>

      SetEnv neu nein
      SetEnv alt ja
      </IfModule>

      
      >   
      > Wenn Du adäquat zu [..]  
        
      Eddi, mein Lieber, ich danke Dir!!!  
        
      irgendwie hab ich das Gefühl, dass ich das irgendwo, irgendwann mal gebrauchen kann.  
        
      Viele Grüße an Alle,  
      schönes Wochenende,  
      Rolf Haselmaus aus der Familie der Bilche
      
      -- 
      setenv $ENV{} = qw(sommer sonne sand meer 6 urlaub cigar);