mod_rewrite RewriteRule

id_profit

Mitglied
Thread Starter
Dabei seit
09.05.2004
Beiträge
11
Reaktionspunkte
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
 
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 ?
 
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 schrieb:
hast du rewrite log aktiviert ???l
Argh, stimmt. Nee habe ich nicht...

wegus schrieb:
Nutzt Dir der HTTP_REFERER aus $_SERVER[] nichts ? Der müsste doch ausreichen oder ?
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.

Kruemel_ddorf schrieb:
ich wuerde folgendes machen :
RewriteRule ^index\.php\?id=P([0-9])$ index.php?id=R$1
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 schrieb:
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

Wer ist/wäre das nicht :D

lass es uns wissen ob es funktioniert ....


gruss
Kruemel
 
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
 
Zurück
Oben Unten