Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][PHP]Mod Rewrite - zmiana kolejności parametrów
paramyksowiroza
post 23.02.2010, 15:12:17
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.10.2009

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


Witam, mam mały problem z mod rewritem.

Strona typu "katalog firm"
Mam trzy parametry: kategorię, województwo, oraz powiat (ten ostatni oczywiście zależy od województwa).

Użytkownik witryny ma dowolność w wybieraniu kolejności - może zacząć od przefiltrowania przez województwo, może zacząć od kategorii.

Jeśli wybrał kategorię, to ma do wyboru województwo, a następnie powiat
Jeśli wybrał województwo, to może wybrać kategorię, a następnie powiat, albo na odwrót

Parametry w adresie mają oczywiście tą samą kolejność, jak wybory użytkownika.
W mod rewrite mam następującą regułę (dla dwóch parametrów):

  1. Options FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^index.html$ index.php
  4.  
  5. RewriteRule ^sala,nocleg-([^-]*).html$ index.php?kat=sala,nocleg&woj=$1 [L]
  6. RewriteRule ^fotograf,kamerzysta-([^-]*).html$ index.php?kat=fotograf,kamerzysta&woj=$1 [L]
  7. RewriteRule ^catering-([^-]*).html$ index.php?kat=catering&woj=$1 [L]
  8. RewriteRule ^muzyka-([^-]*).html$ index.php?kat=muzyka&woj=$1 [L]
  9. RewriteRule ^stroj-([^-]*).html$ index.php?kat=stroj&woj=$1 [L]
  10. RewriteRule ^auto,transport-([^-]*).html$ index.php?kat=auto,transport&woj=$1 [L]
  11. RewriteRule ^zaproszenia-([^-]*).html$ index.php?kat=zaproszenia&woj=$1 [L]
  12. RewriteRule ^fryzjer,kosmetyczka-([^-]*).html$ index.php?kat=fryzjer,kosmetyczka&woj=$1 [L]
  13. RewriteRule ^torty,desery-([^-]*).html$ index.php?kat=torty,desery&woj=$1 [L]
  14. RewriteRule ^kwiaty-([^-]*).html$ index.php?kat=kwiaty&woj=$1 [L]
  15.  
  16. RewriteRule ^([^-]*)-([^-]*).html$ index.php?woj=$1&kat=$2 [L]
  17.  
  18.  
  19. RewriteRule ^sala,nocleg.html$ index.php?kat=sala,nocleg [L]
  20. RewriteRule ^fotograf,kamerzysta.html$ index.php?kat=fotograf,kamerzysta [L]
  21. RewriteRule ^catering.html$ index.php?kat=catering [L]
  22. RewriteRule ^muzyka.html$ index.php?kat=muzyka [L]
  23. RewriteRule ^stroj.html$ index.php?kat=stroj [L]
  24. RewriteRule ^auto,transport.html$ index.php?kat=auto,transport [L]
  25. RewriteRule ^zaproszenia.html$ index.php?kat=zaproszenia [L]
  26. RewriteRule ^fryzjer,kosmetyczka.html$ index.php?kat=fryzjer,kosmetyczka [L]
  27. RewriteRule ^torty,desery.html$ index.php?kat=torty,desery [L]
  28. RewriteRule ^kwiaty.html$ index.php?kat=kwiaty [L]
  29.  
  30. RewriteRule ^([a-z0-9-_,]*).html$ index.php?woj=$1 [L]


Problem polega na tym, że linki do jednej strony się oczywiście dublują.
(do tej samej strony prowadzą np. mazowieckie-catering, i catering-mazowieckie
Czy ktoś mógłby podsunąć mi pomysł, jak to regulować?

Przez skrypt php? Jakieś przekierowania?

Pozdrawiam
paramyksowiroza
Go to the top of the page
+Quote Post
erix
post 23.02.2010, 15:23:23
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Za dużo danych, aby pilnować tego przez mod_rewrite.

Przebuduj skrypt, który generuje te adresy; to chyba jedyne racjonalne rozwiązanie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
paramyksowiroza
post 23.02.2010, 15:36:36
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.10.2009

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


Za dużo ich chyba nie jest? Do tego co jest, doszłoby jeszcze 21 reguł dla 3 parametrów.
Ale masz rację, chyba prościej będzie przebudować generator.
Pozdrawiam
paramyksowiroza
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 15:47