0 follower

Upiększanie URLs

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.