Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z parametrami w htaccess
Forum PHP.pl > Forum > Przedszkole
Octobus
Mam taki schemat adresów:

strona.pl/ksiazki-2.html
co daje w zmiennych
Cytat
$kategoria=ksiazki,
$strona=2


regula w htaccess:

Cytat
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2


Teraz potrzebuje obsługi
strona.pl/ksiazki-2.html?limit=12 gdzie limit to ilosc produktow na stronie. Niestety taki adres jest nie obsługiwany, próbowałem go dokleić w htaccess ale takie coś nie działa:
Cytat
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html?limit=([0-9]+)$ index.php?kategoria=$1&page=$2&limit=$3

liczba produktów zależy mi żeby była parametrem, bez przyjaznych adresów, bo inaczej powstanie multum url które będą powielały tą samą treść. Tylko jak to ogarnąć żeby dodatkowe zmienne były traktowane jako zmienne, żeby wszytko dało się przekazać, ewentualnie na sztywno wpisywać parametry dodatkowe.
nospor
Robisz jak miales tylko dodajesz flage QSA

RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2 [QSA]
Turson
Kod
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2&%{QUERY_STRING}

ksiazki-2.html?limit=10
Octobus
Dziękuję za odpowiedzi. Działają oba sposoby, tylko że tak jakby w połowie.

1. Przykład (działający)
http://strona.pl/table-and-chairs.html?limit=3
  1. $_SERVER:
  2. [QUERY_STRING] => kategoria=table-and-chairs&limit=3
  3. [REQUEST_URI] => /table-and-chairs.html?limit=3


2. Przykład (nie działający)
http://strona.pl/sofas/sofas-ireland-dublin.html?limit=48
  1. $_SERVER:
  2. [QUERY_STRING] => kategoria=sofas&produkt=sofas-ireland-dublin
  3. [REQUEST_URI] => /sofas/sofas-ireland-dublin.html?limit=48


jak widać w QUERY_STRING czyli w GET, nie ma parametru limit.

Mój cały htaccess:
  1. RewriteEngine on
  2. DirectoryIndex index.php
  3.  
  4. #produkt
  5. RewriteRule ^([^/]+)/(.*).html$ index.php?kategoria=$1&produkt=$2
  6.  
  7. #kategoria
  8. RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2&%{QUERY_STRING}
  9. RewriteRule ^([a-zA-Z0-9\-]+).html$ index.php?kategoria=$1&%{QUERY_STRING}
  10.  
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteCond %{REQUEST_FILENAME} !-d
  13. RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
nospor
Jesli masz jeszcze inne reguly, to ta:
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2 [QSA]
musi zawierac jeszcze L
RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2 [L,QSA]

ps: ale ty nie masz wyswietlac query_string tylko $_GET
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.