Jonas: RewriteRule - Problem

Hallo zusammen

Habe folgendes Problemchen:

RewriteRule  news_(.*).html$ /cgi-bin/test.cgi?action=$1

Eigabe in Browser: http://www.domain.ch/news_872849.html

Daraufhin wird das Script unter /cgi-bin/test.cgi aufgerufen und ausgeführt. Das ist ja schon mal gut... :)
ABER: Wenn ich die Variable action abfrage, ist diese LEER!
Wo liegt mein Problem? Bin ziemlich ratlos!
Kann ich nicht mehr auf die über GET erhaltenen Vars zugreifen nach dem Rewrite?

Gruss und Dank

Jonas

  1. Hallo!

    ABER: Wenn ich die Variable action abfrage, ist diese LEER!

    was sagt den: echo($_REQUEST);

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
    1. was sagt den: echo($_REQUEST);

      ARRAY sagt das...

      so ist es besser:

      echo "<pre>";
      print_r($_REQUEST);
      echo "</pre>";

      André Laugks

      --
      Die Frau geht, die Hilti bleibt!
      1. hi,

        so ist es besser:

        echo "<pre>";
        print_r($_REQUEST);
        echo "</pre>";

        Ob das in seinem CGI-Script aber die richtige Syntax ist, darf immer noch bezweifelt werden - oder wurde schon irgendwo erwähnt, ob PHP als CGI-Sprache zum Einsatz kommt ...?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo!

          Ob das in seinem CGI-Script aber die richtige Syntax ist, darf immer noch bezweifelt werden - oder wurde schon irgendwo erwähnt, ob PHP als CGI-Sprache zum Einsatz kommt ...?

          Wenn aufmerksam lesen kann ist klar im Vorteil! ;-(

          André Laugks

          --
          Die Frau geht, die Hilti bleibt!
          1. Erstmal danke für die Antworten! - Kam leider erst jetzt wieder an den PC :)

            Also es ist PERL, nicht PHP :P

            Aber da gibts ja einen ähnlichen Ausdruck. Muss mal schnell suchen. Werde das Ergebniss dann gleich mal posten.

            1. Also...

              Ich gebe mit perl den $ENV{'QUERY_STRING'} aus.
              Rufe ich das Script über www.domain.ch/cgi-bin/test.cgi?action=8282 auf, so ist gibt mir der $ENV{'QUERY_STRING'} action=8282 zurück, was ja so sein soll.

              Rufe ich es über die Rewrite Rule auf (RewriteRule  news_(.*).html$ /cgi-bin/test.cgi?action=$1) www.domain.ch/news_8822.html , so erhalte ich als ausgabe ebenfalls das korrekte action=8822...

              Wenn ich nun aber die einzelnen $ENV{'QUERY_STRING'} Einträge folgendermassen in ein Hash einlese:

              $get_input = $ENV{'QUERY_STRING'};
              @fv_pairs = split /&/ , $get_input;
              foreach $pair (@fv_pairs) {
                 if($pair=~m/([^=]+)=(.*)/) {
                    $field = $1;
                    $value = $2;
                    $value =~ s/+/ /g;
                    $value =~ s/%([\dA-Fa-f]{2})/pack("C", hex($1))/eg;
                    $INPUT{$field}=$value;
                 }
              }

              Ist bei $INPUT{'action'} "nix drin"!

              Ich versteh die Welt nicht mehr!