Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite] kilka parametrów GET
mathev19
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.11.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Mam pewien problem z mod_rewrite, na chwilę obecną moje linki wyglądają tak:
http://strona.pl?event=products&first=...6&sort=desc

a chciałbym żeby wyglądały tak:
http://strona.pl/products/first,3/last,6/sort,desc

Wiem jak to zrobić na sztywno (czyli przepisywać za pomocą mod_rewrite z góry określonej ilości parametrów) np. dla 2 parametrów wygląda to tak:
[APACHE] pobierz, plaintext
  1. RewriteEngine on
  2. RewriteRule^ ([a-z]*)/([a-z]*),([0-9]*)/([a-z]*),([0-9]*)$ index.php?event=$1&$2=$3&$4=$5
[APACHE] pobierz, plaintext

Powyższe pisane z palca i nie sprawdzone więc może nie działać jak powinno (IMG:style_emoticons/default/snitch.gif)
I właśnie tutaj rodzi się moje pytanie. Czy istnieje możliwość by przepisywać linki z nieograniczoną liczbą parametrów w jednej regule? Będę bardzo wdzięczny za pomoc, ponieważ głowię się nad tym już drugi dzień (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Miałem identyczny problem:
http://forum.php.pl/index.php?s=&showt...st&p=417007

Skończyło się na tym, że obsługę tego zrobiłem w php. Z perspektywy czasu uważam to sa bardzo dobre rozwiązanie
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Jeśli masz nieograniczoną liczbę to nie ma sensu to zostawiać w htaccess. Musiałbyś mieć ilości reguł wyznaczone wzorami gdzie używalibyśmy silnię do obliczeń. Znacznie wygodniejszy jest wspomniany przez nospora plik obsługujący ścieżki. Pozwala bowiem nie tylko radzić sobie z dowolnymi ilościami parametrów, ale i ładnie je organizować pod kątem SEO. Możesz bowiem trafić na parametry pomieszane pod kątem kolejności na zasadzie, raz /a=1/b=2/c=3 , a raz /b=2/c=3/a=1 (oczywiście nie znaki równości ale choćby "/par_jeden/par2_dwa/par3_trzy" ) i dla przeglądarki będą to duplikaty bo zawierają tę samą treść. Taki plik php "poinformuje" przeglądarkę, że to jedna z wersji określonego i ma ją zaindeksować pod tamtym ( canonical address ). Można powiedzieć, że to swego rodzaju predispatcher, gdyż parsuje on adres do formy, która potem dispatcher otrzymuje na wejście.
Go to the top of the page
+Quote Post
mathev19
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.11.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Dzięki chłopaki za odpowiedzi i przede wszystkim za rady. Muszę przyznać, że już sam pomyślałem o tym by to po prostu rozwiązać w PHP. Tak chyba będzie szybciej szczególnie biorąc pod uwagę to, że czas mnie goni i to niemiłosiernie (IMG:style_emoticons/default/tongue.gif)

PS. Mam prośbę do tych, którzy wiedzą jak rozwiązać problem przedstawiony w pierwszym poście. Podajcie rozwiązanie (IMG:style_emoticons/default/rolleyes.gif)
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Wystarczy, że wszystko co dostajesz przekierujesz na ów plik konwertujący. On może zrobić co się tyko da i przepchąć dalej. Możesz też go zaincludować do index.php i on wykona wszystko na starcie. Oczywiście reguła która przepychała by cuda powinna być ostatnia, by nie kolidowała z wcześniejszymi. A najlepiej by reguły wcześniejsze niepozwalałydojść do niej niepotrzebnie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 00:05