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.
Be the first person to leave a comment
Please login to leave your comment.