Finde bei RewriteRule die $_GET Variablen nicht

webdoktor

Angesehenes Mitglied
Hallo zusammen

Ich habe in meiner .htaccess Datei folgende Regel hinzugefügt:

RewriteRule ^(.*)__(.*).html$ deal_counter_alle.php?kategorie=$2 [L]

Das klappt auch alle schön, doch wenn ich nun eine $_GET Variable habe
wie in diesem Link hier:

http://www.younique.ch/Computer-und-Zubeho...e=2&kategorie=6

Kann ich die $_GET[page] nicht abfragen. Ist das normal? Habe ich da keine Chance?

LG Marco
 
Möglicherweise hilft da das QSA Flag

CODE RewriteRule ^(.*)__(.*).html$ deal_counter_alle.php?kategorie=$2 [L,QSA]
 
Hallo Jörg

Wow, du bist mein Retter! Jetzt funktioniert es. Was genau macht den das QSA?
Kann ich das bei allen RewriteRule hinzufügen auch wenn ich nicht unbedingt die
$_GET brauche?

LG Marco
 
Du hast mit deiner Rule einen neuen Query String "?kategorie=$2"c geschrieben, welcher den alten ersetzt. Das QSA sorgt dafür, dass der alte Query String hinten dran gehängt wird ("Query String Append")

QUOTE Kann ich das bei allen RewriteRule hinzufügen auch wenn ich nicht unbedingt die
$_GET brauche?


Ich würde das nur dort hinzufügen, wo es benötigt wird.
 
Hi Jörg

Super, vielen herzlichen Dank für Deine Bemühungen. Ich merke
Du kennst Dich aus damit :)

Hab noch eine kleine Frage, mache ich das richtige, wenn ich mehrere
RewriteRules erstelle. Meine .htacces sieht so aus:


QUOTE DirectoryIndex index.php
RewriteEngine on

RewriteRule ^(.*)__(.*).html$ deal_counter_alle.php?kategorie=$2 [L]
RewriteRule ^(.*)_(.*).html$ deal_counter_benutzer.php?id=$2 [L]
RewriteRule ^(.*)-(.*).html$ themen_lang.php?id=$2 [L]

RewriteCond %{HTTP_HOST} ^younique.ch$ [NC]
RewriteRule ^(.*) http://www.younique.ch/$1 [L,R=301]

ErrorDocument 404 /404.shtml


Denke das passt so oder?
 
Bei der RewriteCond würde ich noch den Punkt maskieren:

CODE RewriteCond %{HTTP_HOST} ^younique\.ch$ [NC]


und am Ende alles nochmal testen
smile.gif
 
Hi Jörg

Danke für Deine Antwort.
Was genau macht es aus, wenn ich noch den Punkt maskiere?

Und ist es richtig, dass man mehrere RewriteRule machen kann
so wie ich das gemacht habe?

LG Marco
 
Hi Sascha

habe den Punkt mal maskiert. Wobei ich nicht ganz verstehe wenn er als beliebiges Zeichen
gelten sollte was das für Nachteile hat d.h. ich kann ja trotzdem nicht www.youniqe,ch eingeben (komma).

LG Marco
 
In diesem Fall funktioniert die Rule auch ohne das Maskieren, aber ich würde es mir grundsätzlich angwöhnen, den Punkt zu maskieren, weil sonst irgendwann auch URLs von einer Rule erfasst werden, die nicht erfasst werden sollen.

Habe ich eben übersehen, hier sollten die Punkte auch maskiert werden:

CODE RewriteRule ^(.*)__(.*)\.html$ deal_counter_alle.php?kategorie=$2 [L]
RewriteRule ^(.*)_(.*)\.html$ deal_counter_benutzer.php?id=$2 [L]
RewriteRule ^(.*)-(.*)\.html$ themen_lang.php?id=$2 [L]



QUOTE Und ist es richtig, dass man mehrere RewriteRule machen kann
so wie ich das gemacht habe?


Ja. Man muss halt aufpassen, dass die Rules sich nicht gegenseitig in die Quere kommen. Mit der Reihenfolge der drei Umschreibungen sollte es keine Probleme geben - die Standardweiterleitung würde ich allerdings noch nach oben schieben
 
Zurück
Oben