![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.07.2012 Skąd: Warsaw Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z kontrukcja pliku .htaccess, obecnie wyglada tak:
Kod Options FollowSymLinks RewriteEngine On RewriteRule ^([a-zA-Z0-9]+)?/?([a-zA-Z0-9]+)?/?$ index.php?controller=$1&action=$2 [L] Obsługuje mi odpowiednio kontroler i akcję. np. Kontroler/akcja. I teraz potrzebuję przerobić to tak żeby była możliwa obsługa innych zmiennych url, nie znam ich ilości, i nazw, po prostu zawsze musze miec mozliwosc ich odczytania. Napisanie http://127.0.0.1/framework/?a=4 i później w kodzie print $_GET['a']; nie działa.. .htaccess obcina mi reszte zmiennych. Proszę o pomoc! (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kod RewriteRule ^([a-zA-Z0-9]+)?/?([a-zA-Z0-9]+)?/?$ index.php?controller=$1&action=$2 [L,QSA]
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Cytat $_GET['a']; nie działa
Po mod_rewrite obsłuży ci jedynie do 9 zmiennych. Możesz przekazać sobie np. ostatni parametr jako string /controller/akcja/id/string/string/string i parsować go po stronie PHP. Poszukaj pod hasłem router. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.07.2012 Skąd: Warsaw Ostrzeżenie: (0%) ![]() ![]() |
Kod RewriteRule ^([a-zA-Z0-9]+)?/?([a-zA-Z0-9]+)?/?$ index.php?controller=$1&action=$2 [L,QSA] Dzięki wielkie, nie wiedziałem o QSA (IMG:style_emoticons/default/smile.gif) A gdybym chciał żeby wszystkie konstrukcje wygladaly tak: kontroler/akcja/id/5/id2/18 itd ? Jak skonstruować takie wyrażenie? bo teraz to mam ?id=5&id2=18 i oczywiście niezależnie od ilości zmiennych. Ten post edytował webdepsh 9.07.2012, 14:57:17 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W tym temacie popieram w pełni przedmówcę... najlepiej jest wtedy dać:
Kod ^.+$ index.php [L,QSA] I przekierować wszystko na index.php (oczywiście foldery ze statyką czyli grafika, skrypty js itp trzeba zaopatrzeć wtedy w .htaccess z rewriteEngine off). W index.php sprawdzasz jaki jest adres i sobie odpowiednio go splitujesz (explode()). Możesz sprawdzać $_SERVER['REQUEST_URI'] na przykład - ale metod jest wiele. Poczytaj o tym routerze (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 01:44 |