Pretty URL w Yii2 – jak to zrobić w kilku krokach


Czasem istnieje potrzeba by nasza strona miała ładne adresy po domenie. Nie zawsze jest wskazane by było to strona.pl/site&view?id=123&name=contact.  Dużo lepiej i dla klienta i dla samego SEO wygląda adres strona.pl/kontakt/123. Rozwiązaniem naszego problemu są właśnie Pretty URL. Poniżej pokażę jak je włączyć w Yii2 i jak wstępnie skonfigurować nasze aliasy.

Uruchomienie Pretty URL w Apache2

By wszystko działało jak należy musimy mieć odpowiednio skonfigurowany serwer www. Ja używam Apache2 oraz modułu mod_rewrite. To on właśnie odpowiedzialny jest za obsługę plików .htaccess.

Zakładam więc, że macie podobną konfigurację i wiecie jak to odpalić. Jeśli nie… odsyłam do google i na fora, ponieważ nie jest to temat obecnego wpisu.

Plik .htaccess powinien mieć zawartość jak ta przedstawiona poniżej i powinien znajdować się w naszym katalogu public_html lub web zaraz obok pliku index.php.

Konfiguracja Yii2 pod Pretty URL

Kolejnym krokiem do uruchomienia Pretty URL jest konfiguracja w samym Yii2. Dokonujemy tego w pliku /config/web.php. W sekcji components odnajdujemy zakomentowany komponent urlManager. Odkomentujmy całość sekcji i… nie działa. Zniknęła nam tylko nazwa skryptu czyli index.php z adresu. Co jest nie tak? Ano wszystko gra. Musimy dodać jeszcze reguły zamiany adresów.

Tak wygląda moja konfiguracja. Już śpieszę z wyjaśnieniami.

enablePrettyUrl – włącz/wyłącz obsługę ładnych adresów
showScriptName – pokaż/ukryj nazwę skryptu startowego (index.php)
rules – reguły przepisywania adresów

Ta reguła odpowiada za usunięcie nazwy akcji view z adresu. Zamiast gallery/view/12 wpisując gallery/12 od razu mamy przekierowanie do akcji view z id podanym w adresie

Tutaj mamy przekierowanie wszystkich kontrolerów i akcji oraz parametrów do odpowiednich akcji czyli zamiast gallery%2delete?id=123 wpisujemy gallery/delete/123 i działa.

Jak wyżej, ale bez przekazania parametrów. Stosuje się do stron statycznych np. site%2contact na site/contact

Moja reguła przekierowania adresu strona.pl/zobacz/nazwa do kontrolera galeria, akcja look parametr akcji name to nazwa.

Podsumowanie

Jak widać Pretty URL są proste i łatwe w implementacji do stronki. Korzyści jest sporo, bo mamy ładne, łatwe do zapamiętania adresy najważniejszych stron i dodatkowe korzyści z SEO (albo tak mi się wydaje).

Sam wpis być może nie wyczerpuje wszystkich możliwości komponentu i możliwych zastosowań, ale dla domorosłych programistów w zupełności wystarczy.

Zainteresowanych odsyłam do stron:
yii2-cookbook, StackOverfloworaz do bazy wiedzy Google


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *