ForumCała strona

Nawigacja

Aktualnie online

Gości online: 4

Użytkowników online: 0

Łącznie użytkowników: 25,387
Najnowszy użytkownik: Tyka1125

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
16.05.2024 23:37:03
Z powodu takich zleceniodawców, przerobiłem własne komentarze.

JazOOn
14.05.2024 18:31:17
Znowu serwer down?

Zbigniew@
28.04.2024 21:33:51
Nareszcie udało się .V9 Document checking completed. No errors or warnings to show.

JazOOn
27.04.2024 21:35:25
Jazda. Udało się. Firma rusza.

Zbigniew@
01.04.2024 12:28:45
Wszystkiego najlepszego z okazji świąt.

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
[PHP] Przyjazne SEO Linki
poki289
Witam, od kilku godzin męczę się, jak wykonać przyjazne URLe.
Po przeczytaniu na wortalu php.pl artykułu Przyjazne URLe, postanowiłem że skorzystam z tego sposobu.
Utworzyłem plik index.php a w nim:
Pobierz kod źródłowy  Rozwiń Kod źródłowy PHP

Po otworzeniu strony mam tablice z parametrami, tylko jak się do tych parametrów odwołać?
Czy mógłby mi ktoś łopatologicznie wytłumaczyć lub dać przykład zastosowania.
Z góry thx.
Edytowane przez Pieka dnia 06.03.2010 19:52:01
 
www.add-ons.pl
Wścibski Gość
Dodany dnia 17.05.2024 00:31:11
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
bartek124
Wybrałeś metodę PHP, czyli skorzystanie z tzw. Routera. Elastyczniej, aczkolwiek trudniej. Możesz wykorzystać sam .htaccess do przepisywania linków, a parametry odbierać normalnie poprzez tablicę superglobalną $_GET. Ściągnij i zbadaj mój mod Friendly Url's, jeśli chcesz zobaczyć, jak to działa.

Co do routerów, w .htaccess wystarczy jedna reguła. W Twoim przykładzie adres wygląda tak:
http://www.mojastrona.pl/index.php/newsy/pokaz/1


Więc wystarczy reguła, która przepisze to na:
http://www.mojastrona.pl/newsy/pokaz/1


Bardzo elastycznie, ale wymaga to więcej kombinacji w PHP. Swego czasu napisałem router na własne potrzeby, który pobierał z tablicy, na podstawie linku, odpowiednią wartość, którą była kolejna tablica.

Dla przykładu:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Na tej podstawie, po wywołaniu strony
http://www.mojastrona.pl/newsy/pokaz/1/komentarze/strona_1

została pobrana w/w tablica, następnie za pomocą funkcji array_combine połączyła subtablicę 'getkeys' zawierającą klucze dla tablicy $_GET z wartościami zawartymi w adresie. W ten sposób po wywołaniu strony
http://www.mojastrona.pl/newsy/pokaz/1/komentarze/strona_1


w ostateczności zostaje wywołana strona news.php z tablicą $_GET prezentującą się następująco:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


dla przykładu.
Mam nadzieje, że coś z tego zrozumiałeś, bo troszkę jednak namieszałem. Jeśli drugi przykład wydaje Ci się trudny to spokojnie użyj samego .htaccess, będzie prościej i szybciej, a w przyszłości możesz zacząć kombinować na routerach :)
userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
poki289
Na wstępie dzięki za odpowiedź, naprawdę pomocna.
Dobrze znana jest mi Twoja modyfikacja, pisząc własny system wtyczek, poniekąd wzorowałem się na Twoim modzie (na starcie ładuje wszystkie nazwy plików do tablicy, sprawdzam czy klasa/metoda istnieje itd.), ogólnie mała rzecz a cieszy.
Przepisywanie linków po .htaccess ma tylko jeden plus, to że gdy posiadam adres:
nazwa.pl/articles.php?cat=php&article=urle
To wystarczy jedna reguła w .htaccess aby zmienic na:
nazwa.pl/php/urle.htm
I nic więcej nie muszę kombinować, ale wada jest taka że, reguły muszę ustalać dla każdego pliku z osobna (articles.php downloads.php itp).
I w sumie mógłbym tego użyć, ale według mnie. Nie jest to dobre rozwiązanie.
Korzystając z routingu wystarczy mi poniższy .htaccess i po sprawie.
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Co do Twojego przykładu Routingu, to widziałem gdzieś na php.pl podobny sposób, będę musiał się temu bliżej przyjrzeć.
Trzeba też będzie się przyjrzeć Drupalowi czy WP jak tam wygląda ich Routing.
 
www.add-ons.pl
bartek124
Hmm, no tak. Chyba ze wszystkie pliki by np szły przez index.php, coś w stylu

index.php?strona=articles&cat=php&article=urle, wtedy wystarczyłaby też chyba jedna reguła.

Jeśli chodzi o router, w sumie to sam jakoś na to nie wpadłem, potrzebowałem coś na szybko i jakoś do łba wszedł ten pomysł, ale możliwe ze podobny gdzieś po forach się pelęta. Jak to działa w WP czy innych skryptach, nei mam pojęcia, nie lookałem Smile
userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
poki289
Właśnie na takiej zasadzie działa drupal (w WP nie przyglądałem się dokładnie, ale też coś w ten deseń) i na pewno takie rozwiązanie zastosuję u siebie.
nazwa.pl/index.php?modules=nazwa_modulu

Gdzie nazwa_modulu to nazwa katalogu i pliku .php a w rezultacie otrzymamy includowany plik nazwa_modulu/nazwa_modulu.php.
Wracając do routingu czy byłaby możliwość zerknięcia w źródło Twojego routingu?

Wiadomość doklejona:
Zastanawiam się jeszcze jak to jest ze stroną wielojęzyczną, chce zastosować takie urle.
nazwa.pl/en/download/delphi2007/
nazwa.pl/pl/download/delphi2007/
Ale nie wiem Google nie będzie "krzyczeć", ponieważ url identyczny (tresc oczywiście przetłumaczona na dany jezyk).
Widziałem też że różne skrypty, mają w bazie danych tabele,z polami (id, nie przyjazny adres, przyjazny ,seo_tytul , seo_opis itp). Co o tym myślicie? Czy może lepiej dodać do każdej tabeli powyższe pola?
Edytowane przez poki289 dnia 07.03.2010 18:55:33
 
www.add-ons.pl
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl