Guma: Mod_Rewrite Variablen übernehmen

Hallo zusammen,

die folgende URL-Eingabe soll verarbeitet werden:

www.domain.de/datei/100/200/
zu
www.domain.de/datei.php?a=100&b=200

Ich nutze folgendes mod_rewrite:

.htaccess

RewriteEngine on  
Options +FollowSymlinks  
RewriteBase /  
  
RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$  
RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2

Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?

Hier meine datei.php:

<?  
if (! ($a=$_GET['a'])){$a="-";}  
if (! ($b=$_GET['b'])){$b="-";}  
echo $a;  
echo $b;  
?>
  1. RewriteEngine on

    Options +FollowSymlinks
    RewriteBase /

    RewriteCond %{REQUEST_URI} datei/(.)/(.)/$
    RewriteRule datei/(.)/(.)/$ /datei.php?a=$1&b=$2

    
    >   
    > Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?  
      
    Die willst [QSA] verwenden  
    RewriteRule datei/(.\*)/(.\*)/$ /datei.php?a=$1&b=$2 [QSA]  
      
    mfg Beat
    
    -- 
    Surftipp:  
    [Die NATO](http://edvan.fadeout.ch/ref/?customerId=30&channelId=43&broadcastId=252&wide=)  
    Woran ich arbeite:  
    [X-Torah](http://www.elcappuccino.ch/cgi/tok.pl?extern=1-pub-com3306-1)  
    Plädoyer für eine alte Mystik  
    und Vers-Einteilung  
    in der Torah und der Apokalypse  
    Beat Stoecklin 2008  
    
    ><o(((°>           ><o(((°>  
    
       <°)))o><                     ><o(((°>o  
    Der Valigator leibt diese Fische
    
    1. Danke Beat

      ich habs mit

      +++++++++++++++++++++++++
      RewriteEngine on
      Options +FollowSymlinks
      RewriteBase /

      RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$
      RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2 [QSA]
      +++++++++++++++++++++++++

      versucht, leider kein Ergebnis

    2. hi Beat,

      Die willst [QSA] verwenden

      Obwohl es schon in der Übersetzung steht: Query String Append, wirds wohl immer noch falsch verstanden?

      RewriteRule datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2 [QSA]

      Die "fest codierten" Parameter a und b stehen in datei.php (Anm.) auf jeden Fall zur Verfügung, auch ohne [QSA]. Das Flag wird dann gebraucht, wenn:

      * Die Quelle im Request_Uri Parameter UND das Ziel in der Rule vorgegebene Parameter hat UND beide Parameter im Ziel eine Rolle spielen. Dabei ist zu beachten, dass a und b vom Request_Uri nicht überschrieben werden, für a und b gilt das, was in der Rule vogegeben ist.

      QSA wird nicht gebraucht, wenn:
      * Die Quelle Parameter hat UND das Ziel keine in der Regel Vorgegebenen UND wenn nur die Parameter des Request_Uri gebraucht werden.

      Schöne Grüße,
      Horst Hammersack

      (Anm.) Möglicherweise nicht in php, in Perl-Scriptn jedoch auf jeden Fall.

  2. Klar, die Datei datei.php wird ausgegeben, leider meine variablen nicht, was mache ich falsch?

    Was wird denn ausgegeben?

    <?  
    $a ="defaultA";  
    if (isset $_GET['a']){  
      // Plausibilitätsprüfung...  
      $a=$_GET['a'];  
    }  
    echo $a;  
    ?>
    

    mfg Beat

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

      habe ~~~php <?
      $a ="defaultA";
      if (isset ($_GET['a'])){

      $a=$_GET['a'];
      }
      echo $a;
      ?>

        
      eingesetzt (kommas beachten!)  
        
      bei mir wird defaultA ausgegeben.  
      Parameter werden nicht übertragen. ich prüfe weiter.
      
      1. Hi!

        Parameter werden nicht übertragen. ich prüfe weiter.

        Ist Checkspelling aktiv? Bist du Administrator der Kiste und kannst ein RewriteLog einrichten, um nachzuschauen, ob das überhaupt zum Zuge kommt?

        Lo!

  3. Hi Guma!

    Die RewriteCond matcht nicht auf die URL und ist zudem überflüssig.
    Ebenso vermute ich, dass auch die RewriteRule nicht matcht, da auch hier der Slash am Anfang fehlt.

    Desweiteren kann es helfen, alle Vorkommen von "/" zu maskieren. Ob das wirklich nötig ist, scheint nicht genau klar zu sein, allerdings kann es ja sein, dass irgendwelche Versionen von mod_rewrite damit Probleme haben/hatten.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)