【问题标题】:Liferay page friendly URL generation URLLiferay 页面友好的 URL 生成 URL
【发布时间】:2016-01-13 18:36:31
【问题描述】:

当我在 Liferay(我使用的是 6.2)中创建页面时,它会收到一个自动生成的友好 URL,遵循几个内部规则。

因此,例如,如果我创建一个名为 aaa 的页面,它将自动收到 /aaa 友好 URL。

此外,如果我将页面“aaa”创建为页面 xxx, 的子页面,它将收到相同的 /aaa 友好 URL。

对于 SEO 问题,我需要按照不同的模式创建:parent_friendlyURL + page_friendlyURL

这意味着,如果 xxx 父页面具有 /xxx 友好 URL,则其子页面 aaa 应该具有 /xxx/aaa 友好 URL,而不仅仅是 /aaa

我搜索了 portal.properties 选项,但没有找到任何解决问题的方法。 你认为有一种快速的方法可以实现这一点,还是我必须通过钩子来做到这一点?

谢谢

【问题讨论】:

    标签: liferay liferay-6


    【解决方案1】:

    我查看了LayoutLocalServiceImpl.java,如果用户没有传入friendlyURL,它会从LayoutLocalServiceHelper.java 获取自动生成的链接。

    因此,您可以采取 2 种方法。

    1. 您可以通过管理页面简单地编辑页面的friendlyURL。
    2. 您可以编写一个挂钩来包装 LayoutLocalService 类,如果 friendlyURL 参数为 null 或空字符串,请编写您自己的逻辑来生成friendlyURL。如果您不确定如何使用,请查看以下问题:How to replace a function on a Liferay native portlet

    【讨论】:

    • 如果使用方法 2,扩展 Liferay 的服务包装器LayoutLocalServiceWrapper 会更容易。 Check out the Liferay docs on that
    • 我不相信你可以不使用 ext 插件,我个人会避免使用 EXT 插件。
    • 是的,在问之前我已经看过助手类......我的问题是“有没有快速的方法,或者我应该使用钩子吗?”......阅读你的答案似乎钩子是唯一的方法。谢谢。
    • 如果其他人会遵循这种方式,请注意处理已经存在的 URL(重复的 url):LR 仅在它也自动生成友好 URL 的情况下管理它们,否则它只会验证 URL 格式。 .
    猜你喜欢
    • 2012-12-24
    • 2015-01-01
    • 2010-11-07
    • 2015-01-06
    • 2017-02-06
    • 2021-10-27
    • 2016-05-09
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多