Início > CMS > Configuração de URLs no Liferay

Configuração de URLs no Liferay

Tive algumas dificuldades para configurar virtual hosts, friendly urls e breadcrumbs no Liferay 6.0 EE SP1. Seguem os problemas que enfrentei e como resolvi.

Configurando Virtual Host

Para explicar o problema, vou utilizar duas comunidades hipotéticas: c1 e c2. Em meu portal, c1 é a comunidade da minha empresa e c2 é a comunidade de outra empresa, que não tem nada a ver com c1.

Meu portal é acessível através de http://www.c1.com.br. Para acessar c2, o caminho é http://www.c1.com.br/c2, ou seja, c2 só pode ser acessado através de c1. Essa hierarquia não faz sentido para o negócio. Precisava, de alguma forma, separar os domínios de c1 e c2 na mesma instância do Liferay, ou seja, acessar c1 através de http://www.c1.com.br e c2 através de http://www.c2.com.br.

Consegui usando virtual hosts, como explicaram no wiki do Liferay, aqui e um pouco nesse blog. Não fiz exatamente como explicaram lá:

1.) A página pública da comunidade c1 ficou:

ww.c1.com.br

2.) A página pública da comunidade c2 ficou:

www.c2.com.br

3.) Para testar, alterei meu hosts da seguinte forma:

127.0.0.1 localhost
127.0.0.1 www.c1.com.br
127.0.0.1 www.c2.com.br

Para produção, será necessário configurar o DNS para mapear o IP da máquina onde está rodando o Liferay para diferentes URLs.

4.) E adicionei proxy bypassers no browser. Também “removi” a necessidade da porta 8080 no Tomcat com as dicas desse artigo.

É só adicionar uma página pública no virtual host para que o “/web/guest” da URL seja suprimido. O interessante é que agora há três formas de acessar c2:

www.c1.com.br/c2
www.c2.com.br
www.c2.com.br/c2

Note que no terceiro caso c2 é acessível à partir de c2. Isso é porque a friendly url aponta para o IP da mesma instância do Liferay e daí navega pelo restante do conteúdo como se fosse c1. Em alguns testes que fiz, mas não consegui reproduzir, ainda era necessário utilizar “/web” para acessar c2.

Problema Com Breadcrumb

Após a criação dos Virtual Hosts e configuração do hosts, as comunidades são acessível à partir de suas respectivas URLs. Porém, quando adiciono um breadcrumb em uma página de c2, o componente exibe o seguinte:

c1 | c2 | page2

Não vi uma forma de configurar o Breadcrumb para exibir apenas as informações de c2:

c2 | page2

Sei que no Liferay 6.1 é possível configurar esse comportamento no breadcrumb. Para o Liferay 6.0, é necessário criar um hook e redefinir o view.jsp do breadcrumb, como explicado aqui, aqui e aqui.

Essa solução funcionou para o portlet de breadcrumb, mas não para o breadcrumb do tema. Se quiser mesmo utilizar aquele breadcrumb, você precisa criar uma Extension e redefinir as propriedades “breadcrumb.show.guest.group” e “breadcrumb.show.parent.groups” do arquivo portal-ext.properties [1 e 2] para “false”. O grande problema da Extension é seu comportamento parasitário. Há duas formas de se livrar dela: instale uma versão limpa do Liferay e faça deploy dos seus .war ou tenha em mãos backup dos arquivos alterados para poder restaurar.

About these ads
  1. 13/12/2012 às 12:09 PM

    Dica: tentei repetir os procedimentos que eu mesmo escrevi e não deu certo…rsrs. O navegador estava com cache. Limpei e funcionou corretamente.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: