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:
To wszystko.