Variable $style geht verloren

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Variable $style geht verloren

Beitragvon Robert Hauser » 11.02.2009 20:49

Mit echo '<a href="/test/?in='.$in.'&style=red">red</a>';
und echo '<a href="/test/?in='.$in.'&style=blue">blue</a>';
kann man das Style Sheets aussuchen.
Code: Alles auswählen
RewriteEngine on
Options FollowSymLinks
RewriteBase /test
RewriteRule seite1 ?in=s1&style=$style
RewriteRule seite2 ?in=s2&style=$style
RewriteRule seite3 ?in=s3&style=$style

Bei echo '<a href="/test/seite1/">seite1/</a>';
oder echo '<a href="/test/seite2/">seite2/</a>'; ...
verliere ich die Variable "$style" :?:
Robert Hauser
.
.
 
Beiträge: 8
Registriert: 09.02.2009 15:21

Beitragvon Gumbo » 11.02.2009 21:52

Setze das QSA-Flag, damit die ursprünglich angefragte Query an die neue angehängt wird:
Code: Alles auswählen
RewriteRule ^seite1$ ?in=s1 [QSA]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Robert Hauser » 11.02.2009 22:44

Code: Alles auswählen
RewriteEngine on
Options FollowSymLinks
RewriteBase /test
RewriteRule ^seite1 ?in=s1&style=red [QSA]
RewriteRule ^seite2 ?in=s2&style=blue [QSA]
RewriteRule ^seite3 ?in=s3&style=red [QSA]


:arrow: "/test/seite1/", "/test/seite2/" u. "/test/seite3/" funktioniert,
die Variable "style" sollte aber nicht immer red bzw. blue sein

RewriteRule ^seite1$ ?in=s1 [QSA] :arrow: $style==futsch :oops:
Robert Hauser
.
.
 
Beiträge: 8
Registriert: 09.02.2009 15:21

Beitragvon Gumbo » 12.02.2009 00:00

Dann hab ich deine Frage wohl aus Flüchtigkeit missverstanden. Muss sie jetzt aber damit beantworten, dass das so nicht möglich ist. Entweder du gibst den Stil explizit in der URL an (und damit also auch in den Links) oder du setzt auf eine andere Möglichkeit, diesen Wert mitzuführen, beispielsweise mit einem Cookie.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Herzlichen Dank

Beitragvon Robert Hauser » 12.02.2009 09:55

Hallo,
nochmal vielen Dank,
verwende jetzt für das dynamische Stylesheet die Session-Funktionen von PHP.
Code: Alles auswählen
session_start();
if (isset($stylex)){$_SESSION['style']='x';}
if (isset($stylez)){$_SESSION['style']='z';} ...
Robert Hauser
.
.
 
Beiträge: 8
Registriert: 09.02.2009 15:21


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste