eZ Publish: Przyjazne linki w eZ

2012-06-27 eZ Publish

Jak usunąć z adresu url człon "index.php?" oraz nazwę site access'ów i w efekcie otrzymać czytelne i proste odnośniki na stronie? Przechodząc proces instalacji eZ z wykorzystaniem plain site'u otrzymujemy dwa siteaccesy o nazwach:

plain_site

który prowadzi do naszego frontend'u, oraz:

plain_site_admin

który jest naszym backend'em bądź jak kto woli, panelem administracyjnym. Domyślnie skonfigurowany eZ Publish w takiej postaci, będzie nam generował odnośniki w postaci:

http://localhost/index.php?plain_site/Jakis-nasz-node
http://localhost/index.php?plain_site/Kolejny/Zagniezdzony/Odnosnik-do-czegos
http://localhost/index.php?plain_site_admin

Powyższe odnośniki, mimo, iż ocierają się o przyjazne linki to posiadają 2 niepotrzebne elementy, które tylko wydłużają adres url. W pierwszej części artykułu, który właśnie czytasz, usuniemy z linków człon:

index.php?

oraz zamienimy domyślną nazwę naszych siteacces'ów na coś bardziej intuicyjnego. Ostatecznie nasze linki będą wyglądać tak:

http://localhost/pl/Jakis-node
http://localhost/admin

Aby uzyskać wspomniany efekt musimy wykonać następujące kroki:

Zmieniamy nazwę katalogu wybranego przez nas siteacces'a. Wchodzimy na serwer na którym stoi nasz eZ Publish, przechodzimy do katalogu:

settings/siteaccess

domyślnie znajdować się tam będą katalogi:

admin, plain_site, plain_site_admin, setup

Dla przykładu zainteresujemy się tylko frontendowym siteacces'em, zmienimy jego nazwę na skrót "pl", który oznajmi użytkownikowi, iż przegląda witrynę w języku polskim. Zatem teraz, w settings/siteaccess, mamy wyświetlone następujące katalogi:

admin, pl, plain_site_admin, setup

Edytujemy odpowiednie pliki ini (usunięcie index.php z adresu). W settings/siteaccess/pl/site.ini.append.php:

Zamieniamy wszystkie wartości atrybutów, które zawierają starą nazwę – po edycji powinniśmy otrzymać mniej więcej takie wpisy w sekcji [SiteAccessSettings]:

[SiteAccessSettings]
RelatedSiteAccessList[]=pl
RelatedSiteAccessList[]=plain_site_admin

W settings/override/site.ini.append.php:

Włączamy opcję wirtualnych hostów oraz również zmieniamy nazwę siteacces'a. Całość w sekcji [SiteAccessSettings] powinna wyglądać mniej więcej tak:

[SiteAccessSettings]
ForceVirtualHost=true
CheckValidity=false
AvailableSiteAccessList[]=pl
AvailableSiteAccessList[]=plain_site_admin
MatchOrder=uri
HostMatchMapItems[]

Wchodzimy do panelu administratora – ponieważ tego siteaccess'a nie ruszaliśmy, jego nazwa nie uległa zmianie, jednak pamiętajmy, iż poprzez ustawienie opcji ForceVirtualHost na true, pozbyliśmy się członu index.php? z każdego wygenerowanego przez eZ odnośnika. Zatem nasz odnośnik do panelu powinien wyglądać teraz mniej więcej tak:

http://localhost/plain_site_admin

W panelu wykonujemy dwie (trzy) ostatnie czynności:

  • czyścimy całą pamięć cache,
  • w tym momencie wchodząc na naszą stronę, zobaczymy, iż eZ wygenerował wszędzie przyjazne linki w naszym wydaniu, jednak dodatkowo naszym oczom okazała się konieczność zalogowania z informacją, iż dostęp jest zabroniony. Przechodzimy zatem w panelu do zakładki "Użytkownicy",
  • wybieramy grupę "Anonymous Users",
  • w sekcji "dostępne uprawnienia" widzimy wpis: Grupa: Anonymous, Moduł: user, Funkcja: login, Ograniczenia: SiteAccess (…) – przechodzimy do edycji tych uprawnień:

eZ-Publish-przyjazne-linki-1

  • na powyższym zdjęciu, jest to pozycja trzecia od góry. Następnie z multiple select'a wybieramy nasz nowo nazwany siteaccess – "pl". Wszystko potwierdzamy kolejnymi przyciskami OK,

eZ-Publish-przyjazne-linki-2

  • po raz drugi dla pewności czyścimy cache.

To wszystko.

Do NOT follow this link or you will be banned from the site!