Problem mit mod_rewrite und Session

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit mod_rewrite und Session

    Ich habe ganz simples Affiliate-System für One-Page-Website. Mit diesem System möchten wir Vermittlungen unserer Affiliate ermitteln. Das System ist folgendermassen aufgebaut:

    Die One-Page-Website befindet sich auf einer eigenen Domain.

    Sie besteht aus einer index.php und einer bestellen.php Datei. Dann gibt es da noch eine .htaccess Datei welche alles was hinter dem .com/ kommt in eine Variable (afID) packt.

    Die .htaccess Datei enthält folgenden Code:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?afID=$1 [L,QSA]


    Zuoberst in der index.php Datei ist folgender PHP-Code:

    // Affiliate
    session_start();
    if(isset($_GET['afID'])){
    // neuer Affiliate setzen
    $_SESSION['afIDtmp'] = $_GET['afID'];
    setcookie("afIDco",$_GET['afID'], time()+600000,"/");
    }else{
    if(isset($_COOKIE['afIDco'])) $_SESSION['afIDtmp'] = $_COOKIE['afIDco'];
    }


    Es wird ein Cookie und eine Session erstellt. Auf der bestellen.php Seite wird dann, falls eine Session vorhanden ist, der Bestellung die Variable mit dem Affiliate-Code angefügt.

    Das Problem ist nun, dass anstelle des übergebenen Affiliate-Code, "favicon.ico" übergeben wird. Auch im Cookie wird als Inhalt "favicon.ico" gespeichert. Wiso passiert das, hat jemand eine Idee?

  • #2
    Moderne Browser möchten von jeder Domain erstmal das Favicon laden, um das Tab damit zu schmücken.
    Du solltest nicht rigoros alles nach der TLD als ID ansehen sondern ein gewisses Format verlangen und/oder Ausnahmen festlegen.

    Kommentar


    • #3
      Danke, jetzt geht es!

      Ich habe die .htaccess Datei angepasst:

      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?afID=$1 [L,QSA]

      Kommentar


      • #4
        Der Unterschied zwischen (.*) und ([a-zA-Z0-9-_]+) bewirkt aber keinesfalls, dass Anfragen für /favicon.ico nicht mehr umgeschrieben werden.
        Hast vermutlich inzwischen einfach mal eine Datei namens favicon.ico angelegt, so dass nun !-f greift.

        Kommentar


        • #5
          Zitat von onemorenerd Beitrag anzeigen
          Der Unterschied zwischen (.*) und ([a-zA-Z0-9-_]+) bewirkt aber keinesfalls, dass Anfragen für /favicon.ico nicht mehr umgeschrieben werden.
          Doch, letzteres enthält u.a. den Punkt nicht!

          Kommentar

          Lädt...
          X