Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

mod_rewrite: Endlosschleife verhindern

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 22.10.2005, 20:34

Ich möchte den Besucher wenn er bestimmte Voraussetzungen erfüllt (die ich per RewriteCond herausfinde) auf eine andere Datei leiten, dort ein paar Sachen speichern und ihn aber direkt per Header-Weiterleitung zurück auf exakt die Seite schicken, die er eigentlich sehen wollte. Durch die Header-Weiterleitung hat er jedoch immernoch den selben Referer, würde also wieder weitergeleitet und in einer Endlosschleife landen :(

Mein erster Ansatz war recht einfach, ich setze einfach in der Datei auf die weitergeleitet wird ein Cookie (Session-Cookie oder Haltbarkeit 3 Sekunden). Wenn der Nutzer zurückgeleitet wird kann mod_rewrite nach diesem Cookie schaun und dann keine Weiterleitung mehr vornehmen.

Das funktioniert aber nur wenn die Datei auf der selben Domain liegt. Sobald ich die Datei auf eine andere Domain auslagern möchte, kann ich dann nach der Rückleitung nicht auf das Cookie zugreifen und es auslesen. Ich kann also nicht erkennen ob ich den Nutzer erst noch weiterleiten möchte oder nicht.

Jemand ne Idee wie ich das machen könnte? Gibt es noch andere Möglichkeiten einen Benutzer zu "taggen"?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Caterham
PostRank 5
PostRank 5
Beiträge: 329
Registriert: 20.09.2004, 19:12

Beitrag von Caterham » 23.10.2005, 14:39

Jemand ne Idee wie ich das machen könnte?
Ich glaube, dann hilft nur noch eine Änderung der Rückleitungs-URL (bspw. per angehängtem QueryString ?1) oder du versuchst den ProxyPass zu nutzen und darüber ein Cookie auf der Domain zu setzen
RewriteRule ^$ https://externe/datei [P,L]
Ob's funktioniert ... keine Ahnung.

Grüße
Robert

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 23.10.2005, 16:47

Ein Query wollte ich eigentlich nicht anhängen da die ganze Sache für den Benutzer möglichst unsichtbar sein muss.

Über den Proxy zu gehen wäre ne Möglichkeit und sollte funktionieren. Werd ich mal testen...

Danke!

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 23.10.2005, 16:52

Ahh ich hab doch was gefunden mit dem es eventuell funktionieren könnte:
'env|E=VAR:VAL' (set environment variable)
This forces an environment variable named VAR to be set to the value VAL, where VAL can contain regexp backreferences $N and %N which will be expanded. You can use this flag more than once to set more than one variable. The variables can be later dereferenced in many situations, but usually from within XSSI (via <!--#echo var="VAR"-->) or CGI (e.g. $ENV{'VAR'}). Additionally you can dereference it in a following RewriteCond pattern via %{ENV:VAR}. Use this to strip but remember information from URLs.
Nun frage ich mich nur was mit "later" gemeint ist, und ob die Info nach einem Redirect zu einer anderen Domain noch da ist.

Caterham
PostRank 5
PostRank 5
Beiträge: 329
Registriert: 20.09.2004, 19:12

Beitrag von Caterham » 23.10.2005, 17:14

und ob die Info nach einem Redirect zu einer anderen Domain noch da ist.
Nein, das ist ja ein ganz neuer Request. Mit der abgeschlossenen HTTP-Response eines Requests (i.d.R. dem Senden des Quelltextes, hier external redirect) sind alle ENVs "futsch".

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 23.10.2005, 17:46

Stimmt, manchmal ist in meinem Hirn echt ein Knoten. hmpf.

Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 24.10.2005, 15:35

Na aber hiermit geht es, einfach eins drüber im Manual:
'cookie|CO=NAME:VAL:domain[:lifetime[:path]]' (set cookie)
This sets a cookie on the client's browser. The cookie's name is specified by NAME and the value is VAL. The domain field is the domain of the cookie, such as '.apache.org',the optional lifetime is the lifetime of the cookie in minutes, and the optional path is the path of the cookie

Wenn ich nun als Condition verlange dass dieses Cookie nicht vorhanden ist, wird die RewriteRule nicht mehr ausgeführt und wir landen nicht in einer Endlosschleife.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag