Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przyjazne URL-e - nieznana liczba parametrów
Forum PHP.pl > Forum > Serwery WWW
czachor
Witam,
mam następujący problem...

URL na wejściu:
Kod
www.site.com/akcja/jakasWartosc


Ta regułka działa:
Kod
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([^/]+)/([^/]*)/?$ /index.php?action=$1&actionData=$2 [L]


Czyli otrzymuję:
Kod
www.site.com/index.php?action=akcja&actionData=jakasWartosc


Sprawa wygląda tak, że chcę zrobić to trochę inaczej... Na wejściu mam:
Kod
www.site.com/akcja/parametr1/wartoscParametru1/parametr2/wartoscParametru2/...
//lub łatwiej chyba:
www.site.com/akcja/parametr1;wartoscParametru1/parametr2;wartoscParametru2/...


Problem:
liczba par parametrN/wartośćParametruN jest zmienna. Nie wiem jaką regułkę zastosować (o ile to możliwe), żeby na wyjściu było:
Kod
www.site.com/index.php?action=akcja&parametr1=wartoscParametru1&parametr2=wartoscParametru2&...


Wolałbym to zrobić przez mod_rewrite jeśli jest to możliwe niż w php...
pozdr. i z góry dzięki za wszelkie podpowiedzi!

Pozwalam sobie odświeżyć temat. Odłożyłem sprawę na jakiś czas, ale znowu muszę się tym zająć. Jakby ktoś mógł mi pomóc, będę wdzięczny.
nospor
Mialem podobny problem:
http://forum.php.pl/index.php?s=&showt...st&p=417007

kazano mi to w php juz zrobic
czachor
Mhm. A to szkoda. Chociaż ostatni post @sf niesie pewną nadzieję winksmiley.jpg W każdym razie dzięki.

Ale gdyby ktoś wiedział, jak to ruszyć, to byłbym wdzięczny (@nospor zapewne też winksmiley.jpg).

-----
W tej chwili zrobiłem tylko coś takiego (sugerując się sposobem @nospora):
Kod
RewriteEngine On
RewriteRule ^([^/]+)/([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*$ ?action=$1&$2=$3&$4=$5&$6=$7&$8=$9 [L]


Co mogę:
Kod
http://localhost/action/p1/v1/p2/v2/p3/v3/p4/v4/
=> http://localhost/$action=action&p1=v1&p2=v2&p3=v3&p4=v4


Czyli mogę podawać do 4 par "parametr=wartość" i do tego nazwa akcji. Trochę kiepskie rozwiązanie, bo jak podam więcej niż 4+1, to mam błąd 404 (nie da się zrobić parametrów > "$9", "$10"). Na szczęście u siebie nie będę miał nigdy więcej niż 4+1, więc jest w miarę dobrze, no ale to nie jest do końca dobre rozwiązanie...
andrzejmarek
Wpisuj wszystko do jednej zmiennej, a już w PHP zrób explode na tym.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.