PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einige Rewrite-Rules


Marscel
2007-01-20, 20:51:07
Abend zusammen,
ich sitze gerade an einer Web-Applikation, die ein wenig Schminke vertragen kann: Links sollen keine Parameter-Schlangen sein, sondern ordentlich. Es läuft ALLES über eine index.php-Datei.

Beispiel dafür:

index.php?mod=products => products/

Soweit so gut, das geht mit
RewriteRule products/ index.php?mod=$1

Das geht auch wunderbar, allerdings gibt es neben Modulen wie 'products' auch andere, z.B. 'category' und alle müssen ggf. einen Parameter abbekommen, die Session-ID.

Gibt es eine Möglichkeit, unabhängig davon, wie der Link davor aussieht, und '/session/1235yxz/' am Ende steht, '&session=1235yxz' für Links gilt?

Also egal, ob '/products/session/1235yxz/' oder '/category/session/1235yxz/', ich möchte bloß nicht für jede einzelne Regel immer noch den Session-Parameter berücksichtigen müssen, da es vorkommen kann, dass in Zukunft noch andere Parameter gebraucht werden, für die sowohl jede einzelne RewriteRule als auch mein Link-Generator bearbeitet werden müssten.

Sprich wie kann ich '/session/1235yxz/' möglichst einfach *global* gültig machen und als Parameter an den bisherigen rewritten-Link anhängen?

Merci beaucoup

Unfug
2007-01-20, 22:27:41
Ich hab kein Wort verstanden. Aber da Du die Sessions mitnehmen willst, brauchst Du die doch gar nicht mittels GET weitergeben. Die sind "immer" verfügbar, bis Du Sie halt zerstörst: Session_Destroy();

Marscel
2007-01-20, 22:42:18
Ich hab kein Wort verstanden. Aber da Du die Sessions mitnehmen willst, brauchst Du die doch gar nicht mittels GET weitergeben. Die sind "immer" verfügbar, bis Du Sie halt zerstörst: Session_Destroy();

Hab ich mir gedacht.

Es ist so, ich verwende nicht die PHP-eigenen Sessions, sondern was eigenes. Und wenn kein Cookie möglich ist, dann wird die ID halt per Parameter übergeben. Wenn doch Cookie, dann ist auch keine Übergabe mittels GET nötig.

Meine Anwendung wird das bei jedem Aufruf prüfen und abhängig davon alle für die Anwendung nötigen Links generieren. Dazu halt auch, als letzten Parameter 's' die Session-ID, die evtl. an den Link drangehängt werden muss.

Mein Problem ist jetzt, dass ich die Sitzungs-ID irgendwie als hintersten Parameter setzen will, auch wenn der Link von Apache 'rewrittten' wird.

Alle anderen GET-Parameter werden irgendwie davor angeordnet, siehe Beispiel oben. Und da ich zig Module mit dutzenden GET-Parametern haben werde, suche ich eine Möglichkeit, mittels RewriteRule für ALLE Aufrufe auf den Server, die als letztes(!) '/session/012345/' tragen, '%s=012345' dranzuhängen. Sonst müsste ich für jede Variante von RewriteRule immer diesen Parameter, der vielleicht gar nicht unbedingt anfällt, berücksichtigen, was etwas Arbeit ist.