[PHP] Przyjazne URL - czy potrzebne i jak zaimplementować?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
WebCM
Nowy
Nowy
Posty: 31
Rejestracja: sob wrz 10, 2005 6:57 pm

[PHP] Przyjazne URL - czy potrzebne i jak zaimplementować?

Post autor: WebCM »

W .htaccess przekierowujemy domena.pl/moduł/oraz/parametry do: index.php/moduł/oraz/parametry. Następnie taki URL analizujemy w PHP:

Kod: Zaznacz cały

<?php
$_URL = explode('/', $_SERVER['...']);

//Otrzymujemy: $_URL[0], $_URL[1], itd...
?>
W ten sposób poszczególne parametry zawsze są w 1 miejscu i tworzą wrażenie ścieżki do katalogu, np.
* twojastrona.pl/art/50/2 - artykuł o ID=50 i stronie=2.

Problem pojawia się, gdy przekazujemy większą ilość parametrów do GET, a nie wszystkie na raz muszą wystąpić. Co wtedy? Być może tu użyjemy ? i &:
- twojastrona.pl/userlist?city=nazwa_miasta&gid=id_grupy...
- twojastrona.pl/index.php/itemlist?cat=2&... - lista pozycji w centrum zarządzania treścią - przykład bez mod_rewrite.
Jeszcze pytanie od strony technicznej. Są następujące kwestie:
1. Chyba nie obędzie się bez dołączania pełnego URL (wolę względne z wielu powodów).
2. W przypadku braku mod_rewrite trzeba dopisać /index.php/.

Wystarczy przeprowadzić prosty test.

Kod: Zaznacz cały

<a href="/next">nie uwzględnia katalogu skryptu</a> + <a href="next">dodaje elementy niceurl do adresu</a>
Bez funkcji generującej URL-e i dodawającej ścieżkę do katalogu, w którym jest index.php, raczej nie obędzie się. Drugim rozwiązaniem jest definiowanie stałej PATH albo URL. Z jakimi innymi trudnościami spotkaliście się jeszcze?

Zanim zastosuję "nice urls", wolę upewnić się, czy nie wyniknie więcej problemów i potrzeb zmian niż korzyści.

PS. Nic nie mam do zwykłych URL. Są czytelne, jak się ich poprawnie używa. "Nice urls" implementuję ze względu na lepsze indeksowanie stron przez przeglądarki (czy to nadal prawda?) i trend na nie. Czy RZECZYWIŚCIE zastosowanie nice_url wpływa na polepszenie indeksowania stron? Jakie są inne zalety? Czy w ogóle warto to stosować? Chyba, że lepszym wyjściem jest zastosowanie mod_rewrite tylko do niektórych adresów, które będa tłumaczyć "nice urls" na zwykłe URL-e.
Keph
Nowy
Nowy
Posty: 23
Rejestracja: śr gru 06, 2006 10:48 pm
Kontakt:

Re: [PHP] Przyjazne URL - czy potrzebne i jak zaimplementować?

Post autor: Keph »

Wiesz co, osobiście do takich url'i, oraz paru innych przydatnych rzeczy używam framework'a http://www.codeigniter.com - waży względnie niewiele, a oprócz friendlyurl'i ma wiele całkiem przydatnych funkcji, plus wsparcie dla metodyki MVC.

Mam nadzieję, że to coś pomoże

Pzdr,
Keph
ODPOWIEDZ