Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z parametrami w htaccess
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Robisz jak miales tylko dodajesz flage QSA

RewriteRule ^([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?kategoria=$1&page=$2 [QSA]
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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

ksiazki-2.html?limit=10
Go to the top of the page
+Quote Post
Octobus
post
Post #4





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


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]


Ten post edytował Octobus 29.05.2015, 10:25:54
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




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
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: 27.08.2025 - 23:15