Witam,
rozwijając jeden z tworzonych przeze mnie serwisów opieram o przyjazne adresy url.
Za pomocą ModRewrite chciałem rozbić adres na dwie części, i tak dla przykładów podam kilka linków:
- /7,events/events/1/
- /1,coalition/5,account/
- /1,coalition/3,profiles/profiles/show/president-2/
- /1,coalition/3,profiles/5,eventsAll/events/search/,,,2011-03-02,2011-03-24,/
składa się ze struktury kategorii oraz parametrów. Struktura kategorii zbudowana jest w formie drzewka w postaci 1,nazwa i struktura ta kończy się w momencie, kiedy pojawia się parametr o strukturze innej, niż wcześniej wymieniona. I tak kolejne adres chciałbym, aby rozbite były tak:
- [url]: 7,events [params]: events/1
- [url]: 1,coalition/5,account [params]:
- [url]: 1,coalition/3,profiles [params]: profiles/show/president-2
- [url]: 1,coalition/3,profiles/5,eventsAll [params]: events/search/,,,2011-03-02,2011-03-24,
Napisałem coś takiego, ale to jest mało uniwersalne:
RewriteRule ^([a-zA-Z0-9\_\/\-\,]+)\/((profiles|events)([a-zA-Z0-9\_\/\-]+)?)\/$ /index.php?url=$1¶ms=$2 [L]
RewriteRule ^([a-zA-Z0-9\_\/\-\,]+)\/((show)([a-zA-Z0-9\_\/\-]+)?)\/$ /index.php?url=$1¶ms=$2 [L]
RewriteRule ^([a-zA-Z0-9\_\/\-\,]+)\/((search)([a-zA-Z0-9\_\/\-]+)?)\/$ /index.php?url=$1¶ms=$2 [L]
Jak widać, słowa profiles, events, etc są pewnego rodzaju słowami, po których adres rozbijany jest na dwie części, a chciałbym zrobić bardziej uniwersalnie. Struktura kategorii zawiera od 0...n elementów postaci: /([0-9]\,[a-zA-Z0-9\_\/\-\,]+)/