如何将用户从根节点重定向到Magnolia CMS中的子节点

时间:2016-02-19 12:54:55

标签: java spring-mvc content-management-system magnolia

我的项目是使用Magnolia 5.3和Blossom开发的,并使用企业版 - 标准版玉兰。

我是Magnolia和这个项目的新手。

该项目适用于不同国家和不同语言。

它有国家和语言列表的第一页。 对于前者www.localhost:8080显示了此国家/地区列表页面。

当用户点击此页面的任何链接时,他将被重定向到所选语言的国家/地区主页。

例如: 具有语言L1的国家/地区C1具有URL:www.localhost:8080/C1/L1

这显示了国家根页的内容,即C1

Each country has the same heirarchy in Magnolia CMS

C1 - Root Node of country C1
C1/XYZ1 - Page 1
C1/XYZ2 - Page 2

C2 - Root Node of country C2
C2/XYZ1 - Page 1
C2/XYZ2 - Page 2

and so on.

因此,如果我想访问国家/地区的任何根页面,则URL将为:

www.localhost:8080/C1/L1

如果我想访问任何子页面,那么URL将是:

www.localhost:8080/C1/L1/XYZ1

到目前为止这很好。

但现在我想删除或隐藏用户的国家/地区根页面。 因此,如果用户手动键入www.localhost:8080/C1/L1,那么

  1. 用户应该在没有找到页面或
  2. 的情况下发出警告
  3. 用户被重定向到第1页,即www.localhost:8080 / C1 / L1 / XYZ1并显示第1页内容。
  4. 我尝试过设置virtualURIMapping,但这不起作用。

    我也尝试删除C1页面,但我无法删除,因为这是根页面,如果没有它的子节点,就无法删除root。

    请帮助并指导我,我该怎么做?

    谢谢,

    的Manoj

1 个答案:

答案 0 :(得分:0)

如果您使用的是企业版,您只需为您的网站配置域以使其正确识别,然后Magnolia将自动隐藏所有链接的根节点。
如果您使用的是社区版,则不可能,因为此功能仅适用于企业版。

但是,如果您想要重定向到所选站点的子页面(就像您在更新问题后所看到的那样),则需要创建一个虚拟URI映射来执行此操作。

有许多可能的方法来创建这样的映射,其中之一是:
1)在AdminCentral中,转到配置应用并打开config:/modules/ui-admincentral/virtualURIMapping\default
2)将class更改为info.magnolia.multisite.MultiSiteRegexpVirtualURIMapping
3)将fromURI更改为\$
4)将toUri更改为redirect:/XYZ1\.html 5)添加属性site并将其值设置为C1(假设您WebDev/Sites中的网站被称为C1

仅当您在站点配置中正确映射域时,此操作才有效。如果您没有在第一次尝试时使用它,请尝试使用它,更改值,仔细检查您是否正确配置了所有配置。尝试也可以查看映射的代码,以确保您了解它的工作原理。最重要的是,检查您配置的其他VirtualURIM应用程序(您可以在Config Info应用程序中查看所有内容)。

附加免责声明:如果您错误地设置了虚拟uri映射(特别是因为这个是基于正则表达式,所以它非常容易“扩展”它以对所有URL做出反应),有可能使您的实例无法访问。确保在执行此操作时,您在开发实例上执行此操作,并且您有备份并可以返回。仅通过导入先前创建和测试的映射来对生产应用此类更改。

HTH,