Podręcznik użytkownika CodeIgniter wersja 2.2.1


Adresy URL

Domyślanie URLe w CodeIgniterze są zaprojektowane tak, aby być przyjazne wyszukiwarkom. Zamiast standardowej kwerendy zaimplementowano inne tj. segmentowe podejście do adresów URL. W CodeIgniterze używa się URLi opartych o segmenty:

przykład.com/nowosci/artykuł/moj_artykuł

Nota: Kwerenda standardowego zapytania może być włączona – szczegóły niżej.

Segmenty

Segmenty w adresie URL, w architekturze MVC najczęściej są przedstawione jako:

przyklad.com/klasa/metoda/zmienna
  1. Pierwszy segment reprezentuje kontroler który ma być użyty w danym wywołaniu.
  2. Drugi segment odnosi się do metody bądź funkcji w kontrolerze.
  3. Trzeci segment (opcjonalnie także kolejne) reprezentują zmienne przekazane do metody kontrolera.

Klasa "URI Class" oraz pomocnik "URL Helper" zawiera funkcje które pomagają przy pracy z URL. Dodatkowe twoje adresy URL mogą być przekierowywane dzięki "URI Routing" co daje większą elastyczność rozwiązań.

Usuwanie index.php z URL.

Domyślenie człon "index.php" jest dodawany do URLi:

przyklad.com/index.php/nowosci/artykuł/moj_artykuł

Można go usunąc bez większych przeszkód dzięki plikowi ".htaccess" i umieszczaniu w nim kilku prostych komend. Poniżej jest przykład przekierowuje on wszystko za wyjątkiem określonych elementów:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

W powyższym przykładzie zapytanie HTTP do serwera nie skierowane bezpośrednio do pliku "index.php", folderu "images" czy pliku "robots.txt" jest potraktowane jako zapytanie skierowane do index.php.

Dodanie przyrostka do URL

W pliku "config/config.php" możesz określić przedrostek dodawany do URL wygenerowanego przez CodeIgnitera. Dla przykładu, jeśli URL wygląda nastepująco:

example.com/index.php/produkty/widok/buty

Możesz dodać, przyrostek ".html" tworząc złudzie, iż strona jest typem dokumentu html:

example.com/index.php/produkty/widok/buty.html

Włączenie kwerend standardowych

W niektórych przypadkach możesz chcieć użyć standardowych kwerend:

index.php?c=products&m=view&id=345

CodeIgniter daje ci taką możliwość poprzez zmianę w pliku "application/config.php". Po otwarciu pliku zobaczysz następujące linie kodu:

$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'k';
$config['function_trigger'] = 'm';

Zmieniając wartość "enable_query_strings" na TRUE (prawda) zostaje zainicjowany mechanizm obsługi standardowych kwerend. Twoje kontrolery i metody będą miały dostęp do "wyzwalaczy" czyli słów które ustalisz do wzbudzania danego kontrolera lub metody:

index.php?k=kontroler&k=metoda

Nota: Jeśli używasz standardowych kwerend będziesz zmuszony konstruować własne adresy URLs zamiast używać pomocników URL (i innych bazujących na tej funkcjonalności pomocników) ponieważ są one zaprojektowane do współdziałania do bardziej pożądanych tj. segmentowych adresów URL.