Regu

Konfiguracja serwerów, usług, itp.
Awatar użytkownika
czarownik
Beginner
Posty: 240
Rejestracja: 22 maja 2009, 17:23

Reguły mod_rewrite i index.php?

Post autor: czarownik »

Witam.
M
am problem z regułami mod rewrite, muszę przekierować istniejący odnośnik na stronę promocji.

Przykładowo:

Kod: Zaznacz cały

 
http://domena.pl/szukaj.php?nazwa=towar&cid=0&bnh=6534
na odnośnik:
http://domena.pl/240,0,1,promocja_towaru.html
 

Moja reguła wygląda następująco:

Kod: Zaznacz cały

RewriteRule  nazwa=towar&cid=0&bnh=6534$  http://domena.pl/240,0,1,promocja_towaru.html

Próbowałem już różnych kombinacji, mod_rewrite ale z mizernym skutkiem.

Jedyne co zauważyłem to, że przeszkadza mu coś ten znak "?", bo gdy wpiszę w przeglądarce

Kod: Zaznacz cały

http://domena.pl/szukaj.php/nazwa=towar&cid=0&bnh=6534
to reguła działa
Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post autor: timor »

Domyślnie rewritey nie przetwarzają niczego co jest po "?" Dodaj [QSA] na końcu by to zmienić.
Awatar użytkownika
czarownik
Beginner
Posty: 240
Rejestracja: 22 maja 2009, 17:23

Post autor: czarownik »

Niestety nadal nie działa. Mój wpis wygląda tak:

Kod: Zaznacz cały

RewriteRule  nazwa=towar&cid=0&bnh=6534$  [url]http://domena.pl/240,0,1,promocja_towaru.html[/url] [QSA]


Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post autor: timor »

Chyba chwilowe zaciemnienie umysłu miałem jak to pisałem ;) (QSA służy do zupełnie czegoś innego - żeby sprawdzić linka po ? trzeba dodatkowo rewrite cond'a)

Powinno być mniej więcej tak:

Kod: Zaznacz cały

[LEFT]Rewrite Cond   %{QUERY_STRING}   bnh=6534
RewriteRule    /szukaj\.php      http://domena.pl/240,0,1,promocja_towaru.html [R=301][/LEFT]
Awatar użytkownika
czarownik
Beginner
Posty: 240
Rejestracja: 22 maja 2009, 17:23

Post autor: czarownik »

Nadal nie działa, mój wpis:

Kod: Zaznacz cały

RewriteCond   %{QUERY_STRING}   bnh=6534 
RewriteRule    /szukaj\.php      http://domena.pl/240,0,1,promocja_towaru.html [R=301]
piotrd14
Posty: 27
Rejestracja: 03 października 2010, 13:40
Lokalizacja: Kraków

Post autor: piotrd14 »

Zmienna 1 (nieużywana): nazwa = towar
Zmienna 2 ($1): cid = 0 (cyfry)
Zmienna 3 ($2): bnh = 6534 (cyfry)

Kod: Zaznacz cały

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domena\.pl
RewriteRule ^240,([0-9]+),([0-9]+),promocja_towaru.html$ szukaj.php?nazwa=towar&cid=$1&bnh=$2 [L]
Taki zapis oznacza odnośnik w postaci:

Kod: Zaznacz cały

240,CID,BNH,promocja_towaru.html
ODPOWIEDZ