mod_rewrite RewriteRule

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von id_profit, 29.10.2004.

  1. id_profit

    id_profit Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    MacUser seit:
    09.05.2004
    Hallo,

    ich arbeite zur Zeit an einem Statistikmodul für meinen Blog. Dabei will ich überwachen, welche Besucher über die Einträge des RSS Feeds auf die Seite kommen. Dazu wird an die Links im Feed ein rss=true angehängt. Zusammen sieht ein Link dann so aus:

    index.php?id=P123&rss=true

    Normale Links sehen so aus:

    index.php?id=P123

    Falls ein User nun seinen ersten Aufruf als Bookmark speichert wird das rss=true mit gespeichert, was ich nicht haben möchte.

    Nun versuche ich das ganze mit mod_rewrite um zuschreiben. Die verwendete RewriteRule lautet:

    RewriteRule ^index\.php\?id=P([0-9]+)&rss=true$ index.php?id=R$1

    Doch leider tritt der gewünschte Effekt nicht auf. Wenn ich index.php?id=P123&rss=true in den Browser eingeben zeigt die Adressleiste nach dem Laden immer noch index.php?id=P123&rss=true an. Eine Fehlermeldung gibt es keine.

    Wenn ich alles über ein Redirect im PHP Skript abfackle, wird die Seite zweimal aufgerufen und damit auch zweimal gewertet. Was einer Statistik etwas abträglich ist.

    Kann mir jemand helfen?

    CU

    ID_profit
     
  2. Kruemel_ddorf

    Kruemel_ddorf MacUser Mitglied

    Beiträge:
    797
    Zustimmungen:
    2
    MacUser seit:
    17.02.2004
    hast du rewrite log aktiviert ???



    gruss
    Kruemel
     
  3. wegus

    wegus MacUser Mitglied

    Beiträge:
    14.713
    Zustimmungen:
    1.348
    MacUser seit:
    13.09.2004
    ich habe mod_rewrite noch nie benutzt und kann dazu nichts sagen. Was mir jedoch auffällt:

    (1) Ich würde die Daten per Post übertragen. Bei GET ist es zu einfach, die rss-Variable zu ändern. Für POST muß man schon etwas schlauer sein.

    (2) Nutzt Dir der HTTP_REFERER aus $_SERVER[] nichts ? Der müßte doch ausreichen oder ?
     
  4. Kruemel_ddorf

    Kruemel_ddorf MacUser Mitglied

    Beiträge:
    797
    Zustimmungen:
    2
    MacUser seit:
    17.02.2004
    Das einzige was mich ein bischen in der Rule wundert :

    RewriteRule ^index\.php\?id=P([0-9]+)&rss=true$ index.php?id=R$1


    ist das +)&rss=true$


    ich wuerde folgendes machen :


    RewriteRule ^index\.php\?id=P([0-9])$ index.php?id=R$1


    gruss
    kruemel
     
  5. id_profit

    id_profit Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    MacUser seit:
    09.05.2004
    Argh, stimmt. Nee habe ich nicht...

    Wenn der User den Link aus einem RSS Reader aufruft, gibt es ja keinen Referer. Ich sehe aber den Unterschied nicht, ob er die Adresse aus seinen Bookmarks nimmt oder aus dem RSS Reader.

    Stimmt, ich habe wohl wieder zu kompliziert gedacht. Nachdem ich gestern den Apache Rewrite Guide durchgelesen hatte, war ich komplett verwirrt...

    Danke für eure Hilfe

    ID_profit
     
  6. wegus

    wegus MacUser Mitglied

    Beiträge:
    14.713
    Zustimmungen:
    1.348
    MacUser seit:
    13.09.2004
    Da hab ich was gelernt, danke! Wußte ich nicht.
     
  7. Kruemel_ddorf

    Kruemel_ddorf MacUser Mitglied

    Beiträge:
    797
    Zustimmungen:
    2
    MacUser seit:
    17.02.2004
    Wer ist/wäre das nicht :D

    lass es uns wissen ob es funktioniert ....


    gruss
    Kruemel
     
  8. id_profit

    id_profit Thread Starter MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    MacUser seit:
    09.05.2004
    Lieder hat es so nicht funktioniert. Es scheint aber weniger am verwendeten Pattern zu liegen, als, dass mod_rewrite die angehängten Variablen in der Eingangsurl nicht zu beachten scheint. Egal, welche Variablen ich übergeben, alles nach dem ? wird nicht verarbeitet und führt immer zu folgendem Eintrag im rewrite log:

    127.0.0.1 - - [01/Nov/2004:18:59:08 +0100] [www.thenewsimplephotography.dev/sid#188ced8][rid#18c1e50/initial] (3) [per-dir /Users/mf/Sites/thenewsimplephotography/] applying pattern '^index\.php\?id=P([0-9])$ index.php?id=R$1' to uri 'index.php'

    Auch habe ich nirgends im Web ein Beispiel gefunden, das irgendwie wie meines geartet ist. Alle rewrites gehen von virtuelle Verzeichnisse hin zu Variablenübergabe an php Skripte.

    Ich muss wohl einen neuen Ansatz finden.

    CU

    ID_profit
     
Die Seite wird geladen...

Diese Seite empfehlen