![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 12.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Probuje zrobic przyjazne linki na stronie. Czytalem kilka tutoriali o mod_rewrite dla kilku zmiennych, ale nie moge sobie poradzic z moim problemem mam w .htaccess takie cos:
czyli chce zamienic kazde index.php?tid=$costam&kid=$costam na /nazwa-czegos-tam/nazwa-czegos-siam nastepnie mam funkcje, ktora ma pobierac id z linku
teraz w pliku index.php robie: 1. includuje configa z powyzsza funkcja 2. includuje menu boczne (tam maja byc wlasnie te mile odnosniki) 3. odpalam wszystko linki w menu wygladaja tak gdzie $root_dir to moj katalog glowny "/moj-katalog/" a $technologia i $kategoria pobieram z tablicy, przypisujac do urla nazwy niestety w index.php musze pobrac z tego menu kid i tid, ktore przeciez sa juz nazwami..
i chociaz po otwarciu index.php w menu wyswietlaja sie przyjazne linki, czyli: /murowane/parter zamiast index.php?tid=1&kid=1 to nie wiem jak to ogarnac foreach naturalnie wywala blad, bo przeciez nie ma tid ani kid.. pytanie: w ktorym miejscu mam wstawic funkcje pobierz_parametr zeby to zadzialalo? |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat nastepnie mam funkcje, ktora ma pobierac id z linku I na co? :| Wystarczy przecież prosta konstrukcja:
Nie trzeba pisać osobnej funkcji... Cytat czyli chce zamienic kazde index.php?tid=$costam&kid=$costam na /nazwa-czegos-tam/nazwa-czegos-siam Chyba na odwrót... Cytat niestety w index.php musze pobrac z tego menu kid i tid, ktore przeciez sa juz nazwami.. Napultałeś trochę, ale spróbuję. Podejrzewam, że namieszałeś z regułkami, spróbuj coś takiego: Kod RewriteRule ^([a-zA-Z\-_0-9]+)/([a-zA-Z\-_0-9]+)/?$ index.php?tid=$1&kid=$2 [L]
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 12.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem, przeciez jak dam w menu.php taki link
to w pasku bedzie "index.php?tid=1&kid=1" a jak dam to owszem, w pasku jest "/murowane/parter", ale jak tu pobrac tid i kid z takiego adresu? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
To pójdź na kompromis, aby w URL przekazać również identyfikatory:
Kod /murowane-1/parter-1 Pozostaje jeszcze wyciąganie z bazy po nazwie, ale IMHO lepiej przekazywać ID. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 12.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem tak i dziala chociaz nie jestem przekonany czy to jest przyjazny dla oka link..
w pasku jest teraz "1/1" foreach dziala, ale nie wiem dlaczego sypie mi sie caly css i nie pokazuje zadnych obrazkow. poza tym zastanawiam sie jak teraz zrobic odwolanie do konkretnego wyniku. w .htaccess jest: Kod RewriteRule ^([a-zA-Z\-_0-9]+)/([a-zA-Z\-_0-9]+)/?$ index.php?tid=$1&kid=$2 [L] RewriteRule ^([a-zA-Z\-_0-9]+)/([a-zA-Z\-_0-9]+)/?$ index.php?id=$1 [L] i w linku jest np. "1/index.php?id=1" co oczywiscie nie dziala. a powinno byc np. "1/cieply" //EDIT poradzilem sobie z tym linkiem tak: Kod RewriteRule ^([a-zA-Z\-_0-9]+)/?$ index.php?id=$1 [L] teraz kolejnosc wyglada tak: 1. index.php = 'www.bla/' 2. index.php?tid=1&kid=1 = 'www.bla/1/1' 3. index.php?id=20 = 'www.bla/20' dziala, oprocz tego, ze takich linkow i tak nikt nie zrozumie oprocz moze google.. i nie wiem nadal co sie dzieje ze po wywolaniu pkt 2 caly css sie sypie i nie ma obrazkow? css wraca do normy po wywolaniu pkt 3 (?) Ten post edytował colachips 14.01.2009, 16:36:51 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat caly css sie sypie i nie ma obrazkow? Korzystaj ze ścieżek bezwzględnych, to będzie ok. Przeglądarka nie wie, że przepisujesz adresy i jak masz np. ścieżkę css/style.css, to wtedy klient szuka w przepisz-regule-1/pseudokatalog/css/style.css, która to ścieżka nie istnieje. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Cytat dziala, oprocz tego, ze takich linkow i tak nikt nie zrozumie oprocz moze google.. To zrób osobną, "olewany" wzorzec (który będzie przeszukiwany, ale go nie użyjesz, np: asdasdasd-1=>(.+)-([0-9]+). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.09.2025 - 15:34 |