【问题标题】:Liferay 6 / jBoss is there an 'easy' way to have clean urls?Liferay 6 / jBoss 是否有一种“简单”的方式来获得干净的网址?
【发布时间】:2025-12-04 06:00:02
【问题描述】:

我正在使用 Coldfusion 9,在 jBoss/Liferay 6 下运行。

一切都很好,我已经开发了很多我已经解决的 portlet(当我遇到一些我通常可以直接处理的问题时)。总体而言,Coldfusion 9 portlet 在 Liferay 中运行良好。

我真正不喜欢的一件事是 URL 太难读了,我真的希望为我的应用程序提供干净的 url,所以当用户搜索并返回结果时,我可以让他们点击像 @987654321 这样的链接@。

目前我得到一个不完整的 URL,其中包括 portlet 状态、属性、与我传递的变量关联的 portlet ID(通常是 portlet id + 变量的组合)和其他不需要的垃圾。

是否有任何“简单”的方法来获得干净的 URL?我的问题是我不是一个 JAVA 人,所以我不太有信心深入研究 jBoss/Liferay 代码来完成一些事情。然而,我觉得 Liferay 足够“解放双手”,因此我可以构建我的 portlet 并部署它们,而无需修改 JAVA 代码和弄脏它们。

有什么想法吗?我找不到很多关于这方面的文章,特别是因为 Liferay 6 太新了,而且很少有人发布关于它的东西。也许这将是 Jboss 中的某种 URL 重写?

谢谢你,感谢任何和所有的建议:)

【问题讨论】:

    标签: jboss portlet liferay coldfusion-9 clean-urls


    【解决方案1】:

    简短的回答是使用 URL 重写来实现这一点,并将 Liferay URL 转换为您想要的任何形式。我认为有两种可能性:

    1. 在 Liferay 服务器前面放置一个 Apache Web 服务器并使用 mod_rewrite
    2. 使用已包含在 Liferay 中的 URL rewriting filter,因为这模仿了 mod_rewrite 的功能,无需额外的 Apache 服务器

    【讨论】:

      【解决方案2】:

      您可能对 FriendlyUrlMappers 感兴趣。有关基础知识,请参阅 this blog entry

      关于“容易”,您必须自己判断。门户的性质,例如在单个页面上组合完全不同且独立的应用程序 (portlet) 会导致您失去对 URL 的控制(默认情况下),因为门户网站必须消除很多内容的歧义。为了重新获得控制权,您需要做一些工作,FriendlyUrlMappers 会强加一些工作,但恕我直言,结果是值得的。

      【讨论】:

        最近更新 更多