mod_rewrite: Folgende URL umschreiben
bjoern
- webserver
Hallo.
angenommen ich möchte folgende Url umschreiben:
warenkorb.php?buyID=20
in
index.php?buyID=20
benutze ich folgenden Befehl:
RewriteRule ^warenkorb.php(.*)$ /index.php$1 [L]
Nun möchte ich aber beim Aufruf von
warenkorb.php
das die Index wie folgt aufgerufen wird:
index.php?warenkorb=1
Kriege ich dies in eine Rewriterule, oder muss ich da zwei draus machen?
Gruß Björn
Lösungsansatz mit zwei Rules:
RewriteRule ^warenkorb.php([^/]*)$ /index.php$1 [L]
RewriteRule ^warenkorb.php$ /index.php?warenkorb=1 [L]
Allerdings ist ja [^/]* beliebig viele zeichen, also auch keins -> es wir immer die erste Rule verwendet.
EIN oder mehrerer Zeichen sollte .+ sein. Funktioniert aber leider nicht
Gruß Björn
Heißa, bjoern,
angenommen ich möchte folgende Url umschreiben:
warenkorb.php?buyID=20
in
index.php?buyID=20
RewriteRule ^warenkorb\.php$ /index.php [QSA]
QSA steht für QueryStringAppend und hängt den QueryString automatisch an.
warenkorb.php
das die Index wie folgt aufgerufen wird:
index.php?warenkorb=1
Es wäre doch weitaus einfacher, das im PHP-Script zu lösen:
if(!isset($_GET['warenkorb'])) $_GET['warenkorb'] = '1';
Gautera!
Grüße aus Biberach Riss,
Candid Dauth
Hallo Candid!
RewriteRule ^warenkorb\.php$ /index.php [QSA]
QSA steht für QueryStringAppend und hängt den QueryString automatisch an.
Hat jetzt so geklappt:
RewriteRule ^warenkorb.php$ /index.php?warenkorb=1 [QSA] [L]