mod_rewrite RewriteRule

  1. id_profit

    id_profit Thread StarterMacUser Mitglied

    Mitglied seit:
    09.05.2004
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
    id_profit, 29.10.2004
  2. Kruemel_ddorf

    Kruemel_ddorfMacUser Mitglied

    Mitglied seit:
    17.02.2004
    Beiträge:
    787
    Zustimmungen:
    2
    hast du rewrite log aktiviert ???



    gruss
    Kruemel
     
    Kruemel_ddorf, 29.10.2004
  3. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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 ?
     
    wegus, 29.10.2004
  4. Kruemel_ddorf

    Kruemel_ddorfMacUser Mitglied

    Mitglied seit:
    17.02.2004
    Beiträge:
    787
    Zustimmungen:
    2
    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
     
    Kruemel_ddorf, 29.10.2004
  5. id_profit

    id_profit Thread StarterMacUser Mitglied

    Mitglied seit:
    09.05.2004
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
    id_profit, 29.10.2004
  6. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Da hab ich was gelernt, danke! Wußte ich nicht.
     
    wegus, 29.10.2004
  7. Kruemel_ddorf

    Kruemel_ddorfMacUser Mitglied

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

    lass es uns wissen ob es funktioniert ....


    gruss
    Kruemel
     
    Kruemel_ddorf, 29.10.2004
  8. id_profit

    id_profit Thread StarterMacUser Mitglied

    Mitglied seit:
    09.05.2004
    Beiträge:
    11
    Zustimmungen:
    0
    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
     
    id_profit, 01.11.2004
Die Seite wird geladen...
Ähnliche Themen - mod_rewrite RewriteRule
  1. Jackson100
    Antworten:
    5
    Aufrufe:
    631
    falkgottschalk
    31.03.2013
  2. maceis
    Antworten:
    14
    Aufrufe:
    864
    Olivetti
    31.12.2012
  3. Jackson100
    Antworten:
    17
    Aufrufe:
    2.935
  4. laBete
    Antworten:
    7
    Aufrufe:
    4.154