我正在使用多个域来访问 liferay 门户实例。
例如以下是Windows的hosts文件中映射的域:
www.liferaytest1.com
www.liferaytest2.com
并在Liferay的控制面板→门户设置中,将www.liferaytest1.com
设置为虚拟主机。
我可以使用上述所有域以及 localhost
访问门户实例。
当我通过 www.liferaytest1.com
访问门户时,我可以直接访问 Guest
网站页面。假设 home
是 Guest
站点中的一个页面,那么我可以访问它,而不是使用 www.liferatest1.com/web/guest/home
进行访问直接使用 www.liferaytest1.com/home
因此 URL 有所缩短。
到目前为止一切顺利。
首先关心的问题
现在,当我尝试通过 www.liferaytest2.com
访问门户时,当我单击 Liferay 的我的网站
portlet 中列出的任何网站时,它会将我重定向到该网站使用虚拟主机中提到的域名,即 www.liferaytest1.com
,而不是保留 www.liferaytest2.com
。
假设我有一个名为 Help
的站点,因此当我单击 My Sites
portlet 中的帮助站点链接时,而不是停留在 www.liferaytest2.com
域,它使用 www.liferaytest1.com
域重定向我。
这是由于 liferay 中完成的虚拟主机映射所致。
第二个问题
当我通过 www.liferaytest2.com
访问门户并订阅任何 Assets 时,电子邮件中的链接包含虚拟主机域,即 www.liferaytest1.com
.
如何克服上述问题?
我的要求是保持与门户访问域的相对关系。
当我通过 www.liferaytest2.com
访问门户时,它不应将我重定向到 www.liferaytest1.com
单击任何站点链接,如上所述,并且我收到的电子邮件也应该与我正在访问的域相关,即 www.liferaytest2.com
。
最佳答案
首先:您不需要使用该功能 - 它是以某种方式实现的(例如您所描述的),如果这不满足您的需求,则无需配置单独的虚拟主机。通过单个虚拟主机提供所有内容或在 Apache(例如)上进行解析是没有问题的 - 也就是说,完全在 Liferay 外部。唯一的缺点是您需要提供要访问的网站的线索(例如/web/guest 作为 URL 的一部分),以便 Liferay 知道要提供哪些内容。
但是,如果将网址更改为 test1.example.com
和 test2.example.com
等结构,您可能会更接近您想要实现的目标- 这样您至少可以共享顶级域,并且可以进行一些更便宜的单点登录(您仍然可以使用完全不同的域进行 SSO)
关于liferay - 在Liferay中设置虚拟主机有什么优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17268592/