Liferay. Избавляемся от /web/guest

06.12.2012
Отключаем приставку web/guest в url адресе Liferay портала.

Допустим, у вас портал установлен по адресу

http://myportal.ru

При переходе по страницам сайта ваш url представляет из себя следующий вид:
http://myportal.ru/web/guest/test

Вы хотите избавиться от приставки “web/guest”.

 

Решение

Для этого вам необходимо:

  1. Зайти в панель управления
  2. Установить значение параметра равным адресу портала.
    Control Panel -> Site -> Site Settings -> Site URL ->Virtual Hosts -> Public Pages = myportal.ru

    Теперь при навигации по сайту ваш адрес будет такой:
    http://myportal.ru/test

Теория

Liferay обладает возможностью хранить в себе несколько сайтов одновременно.
Каждый сайт будет обладать абсолютно независимым от другого сайта контентом.
По умолчанию, url для доступа к страницам сайта формируется по следующему правилу:
http://<PORTAL_HOST>/web/<SITE_FRIENDLY_URL>/<SITE_PAGE>

Где

<portal_host>
основной адрес портала, обозначает, что доступ происходит к публичным страницам сайта,
<site_friendly_url>
значение конфигурационного параметра сайта
Control Panel -> Site -> Site Settings -> Site URL -> Параметр Friendly URL
<site_page>
наименование страницы (home — главная страница сайта по умолчанию)

Мы можем настроить доступ к отдельному сайту напрямую через отдельное доменное имя, например в виде поддомена.

Для этого необходимо задать значение параметра равным нашему поддомену.

Control Panel -> Site -> Site Settings -> Site URL ->Virtual Hosts -> Public Pages = <PORTAL_HOST>

Теперь по адресу
http://<portal_host>
будет открываться страница
http://<portal_host>/web/<site_friendly_url>/home
Таким образом, мы успешно избавились от приставок вида «/web/site».

Пример

Liferay. Убираем web/guest
К сайту, отображенному на рисунке доступ можно получить двумя путями:
http://localhost:8080/web/guest/home
http://liferay.dev:8080/

Побочные явления применения виртуальных хостов

  • В версии портала liferay-6.1.0-ce-ga1 не работают ссылки «Читать далее» в базовом портлете «Публикатор», если название статьи включает символы кириллицы.
  • Остается проблема того, что домены с "www" и без "www" рассматриваются лайфреем как разные адреса. Соответственно только для одного из них можно отключить приставку "web/guest".