Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ModRewrite] - pomoc przy robiciu adresu
Forum PHP.pl > Forum > PHP
Czadus
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&params=$2 [L]
RewriteRule ^([a-zA-Z0-9\_\/\-\,]+)\/((show)([a-zA-Z0-9\_\/\-]+)?)\/$ /index.php?url=$1&params=$2 [L]
RewriteRule ^([a-zA-Z0-9\_\/\-\,]+)\/((search)([a-zA-Z0-9\_\/\-]+)?)\/$ /index.php?url=$1&params=$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\_\/\-\,]+)/
NEO.pl
Cytat(Czadus @ 25.03.2011, 16:55:32 ) *
- /1,coalition/3,profiles/5,eventsAll/events/search/,,,2011-03-02,2011-03-24,/


Ten to szczegolnie przyjazny jest... smile.gif

Cytat
Jak widać, słowa profiles, events, etc są pewnego rodzaju słowami, po których adres rozbijany jest na dwie części


Wszystkie Twoje regulki sa takie same za wyjatkiem owych slowek. Wiec moze albo przemysl swoje "przyjazne" linki i zrob je na nowo albo skoro i tak masz juz to co masz dodaj jakis unikalny element (np ,X,) i po tym rozbijaj. Albo, skoro kierujesz i tak w jedno miejsce, rozbijaj sobie w kodzie a nie mod_rewrite
Czadus
Z nazywaniem ich przyjaznymi może i przesadziłem smile.gif

Generalnie może faktycznie po prosty potrzeba jakiegoś separatora w postaci odpowiedniej nazwy, albo, zostawić to w takiej formie, jaka jest obecnie.
kiler129
Jeśli masz możliwość to zmień format tych linków smile.gif
Mod rewrite nie służy do ukrycia .php?costam ale do tworzenia linków które normalny user zapisze przez telefon na kartce albo wyszukiwarka będzie w stanie określić na podstawie samego linku co tam mniej więcej jest.
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.