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.