Mod RewriteRule (zmiana linków)


(Qba Ilza) #1

Witam!

Chciałbym zamienić link np. taki test.php?id=897234hdsf76fs4 na test/897234hdsf76fs4 tylko nie wiem jak zastosować funkcje RewriteRule.

robiłem coś takiego

RewriteRule ^test/$ test.php?id= [L] i wstawiałem w kodzie test/ potem miała byc dopisywana dalsza czesc linku czyli np. test/897234hdsf76fs4. Niestety to nie działa :confused:

Proszę o pomoc.


(Zbyszekborkowski) #2

mod_rewrite korzysta z wyrażeń regularnych, więc powinieneś się tego nauczyć :wink:.

RewriteRule ^test/([a-zA-Z0-9]+)$ test.php?id=$1

(Qba Ilza) #3

Zrobiłem cos w tym stylu co mi napisałeś.

Niestety coś myli ciąg znaków ID.

Czyli tutaj ([a-zA-Z0-9]+)$ podajemy zakres i rodzaj znaków które są w linku? Tylko nie mam pojęcia skąd ta regula będzie wiedziała jak te znaki "poukładać" aby wyswietlic prawidłowo link.

Mam rozumiec ze odpowiedzialny jest za to znacznik $i (test.php?id=$i)?


(Zbyszekborkowski) #4

Ehh, drobna literówka z mojej strony. Na końcu powinno być $1 , a nie $i .

Wyrażenie w nawiasach, czyli "([a-zA-Z0-9]+)", odpowiada za Twoją zmienną (mogą się w niej znaleźć małe litery, duże litery oraz cyfry), a "+" oznacza, że musi być w tym miejscu przynajmniej jeden znak z tego zakresu. "$1" to tak jakby nazwa zmiennej utworzonej z tamtego nawiasu.


(Airborn) #5

maciek_1222 , proszę poprawić tytuł tematu na konkretny, mówiący o problemie. W przeciwnym razie temat zostanie usunięty.


(Qba Ilza) #6

Bardzo dziękuję Ci za pomoc.

Wszystko działa :wink: