mod rewrite: variable wird per get nicht ausgegeben

florifliegt1

Grünschnabel
Hi,

folgendes Problem:
ich habe ein folgende .htaccess-datei mit dieseer RewriteRule:

RewriteRule ^browse/(.*)/(.*)/(.*)$ browse\.php?kategorie=$1&filter=$2&show=$3 [L]


nun möchte ich wenn ich in der Adresszeile dies so eingebe umd an Ende ?page=2
das ich dies auch ausgeben kann. Leider wird mit
PHP:
echo $_GET["page"];
nichts ausgegeben.

Wie mache ich das?
Denn ich möchte es nicht unendlich lange haben.
Und auch -2 nach show ranzuhängen und nach dem - die zahl filtern wäre doof.
 
Das prpoblem ist, dass er es auch als ?page weitergibt
Aufruf: browse/abc/def/ghii?page=2
Weiterleitung: browse.php?kategorie=abc&filter=def&show=ghi?page=2

Dort müsste aber in der Weiterleitung ein & stehen und kein ?
Mit dem folgenden Aufruf sollte es eigentlich gehen
browse/abc/def/ghi&page=2
 
Wow, das funktionier. :-)
Aber kannst du mir plausibel erklären, warum das mir einem ? nicht geht?
Oder liegt es an meiner RewriteRule?

So ist es schonmal gelöst, allerdings gibt es bestimmt einen Trick. Denn bei PHP-Dateien ist es ja auch so das zuerst ein ? kommt. Also ich beaupte das es nicht unmöglich ist.
 
Deienn rewriteRule nimmt alles nach dem dritten / als $3.
Deine Variablen des Rewrite sehen dann so aus
Code:
# URL
browse/abc/def/ghi?page=2
# Pattern
^browse/(.*)/(.*)/(.*)$
# Variablen
$1 = abc
$2 = def
$3 = ghi?page=2
Diese setzt der Rewrite nun neu nach deinem Ersatzmuster zusammen
Code:
# Ersatzmuster
browse\.php?kategorie=$1&filter=$2&show=$3
# ersezter String
browse\.php?kategorie=abc&filter=def&show=ghi?page=2
Jetzt hast du als letztes Trennzeichen kein & sondern ein ?. Jedoch wird ein ? nur nach dem Dateinamen akzeptiert, nicht jedoch zum zusammensetzen der Parameters. wahrscheinlich ist so der Inhalt von $_GET['show'] das folgende: 'ghi?page=2'.

Wenndu da aber in deiner URL ein & anstelle des ? setzt, wird eine gültige URL zusammengesetzt.
 
Zurück