Adresy URL łączące różne strony naszego blogu wyglądają obecnie brzydko. Na przykład, URL dla strony wyświetlającej wiadomości wygląda następująco:
/index.php?r=post/show&id=1
W części tej opiszemy jak upiększyć te adresy URL i uczynić je przyjaznymi dla SEO. Naszym celem jest używanie następujących adresów URL w aplikacji:
/index.php/tag/yii
: prowadzi do strony pokazującej listę wiadomości zawierających tak yii
;/index.php/posts
: prowadzi do strony pokazującej ostatnie wiadomości;/index.php/post/1
: prowadzi do strony pokazującej szczegóły wiadomości o ID równym 1;/index.php/post/update/1
: prowadzi do strony, która pozwala aktualizować wiadomość o ID 1;Aby osiągnąć nasz cel, zmodyfikujemy konfigurację aplikacji w następujący sposób:
return array(
......
'components'=>array(
......
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'tag/<tag>'=>'post/list',
'posts'=>'post/list',
'post/<id:\d+>'=>'post/show',
'post/update/<id:\d+>'=>'post/update',
),
),
),
);
W powyższym kodzie, skonfigurowaliśmy komponent urlManager
poprzez ustawienie jego właściwości urlFormat
jako path
oraz dodanie zestawu reguł rules
.
Reguły używane są przez urlManager
do analizowanie i tworzenia URLi w zaprojektowanym
formacie. Na przykład, pierwsza reguła mówi, że jeśli żądamy URLa /index.php/tag/yii
komponent urlManager
powinien być odpowiedzialny za wysłania żądania do
trasy post/list
oraz wygenerowania parametru GET o nazwietag
i wartości yii
. Z drugiej strony,
podczas tworzenia URL-a o ścieżce post/list
oraz parametrze tag
, komponent
urlManager
również użyje tej reguły do wygenerowania pożądanego adresu URL
/index.php/tag/yii
. Z tego też powodu mówimy, że urlManager
jest dwukierunkowym
menadżerem URLi.
Komponent urlManager
może później upiększyć nasze URLe, np. poprzez ukrycie index.php
w URLach, dodanie sufisku takiego jak .html
do URLi. Możemy uzyskać te funkcje
w prosty sposób poprzez konfigurowanie różnych właściwości urlManager
w konfiguracji
aplikacji. Aby uzyskać więcej szczegółów, zajrzyj do przewodnika.
Signup or Login in order to comment.