Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Mod Rewrite - zmiana kolejności parametrów
Forum PHP.pl > Forum > Przedszkole
paramyksowiroza
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
erix
Za dużo danych, aby pilnować tego przez mod_rewrite.

Przebuduj skrypt, który generuje te adresy; to chyba jedyne racjonalne rozwiązanie.
paramyksowiroza
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
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.