使用友好URL(或类似解决方案)从社区URL中删除/ web组件

时间:2014-10-29 17:52:02

标签: liferay

我们的网站正在将网站用于网站的特定主题领域。出于SEO原因,我们要删除URL中的/ web组件。我们希望为网站中的所有社区排除此组件。

从本质上讲,给定一个site.com,以及一个来自命名用户[1-inf]的社区,而不是: site.com/web/user1 我们想要这个: site.com/user1

对于每个用户的公共页面。

我一直在篡改layout.friendly.url.public.servlet.mapping,给它一个空字符串并替换web.xml文件中的相应行,但这个解决方案不起作用一点都不

有没有人能够做到这一点?

目前正在使用liferay 6.2 提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果是针对单个网站,您应该探索"虚拟主机"在一个网站中设置,删除整个" / web / site-name" part并将其分配给唯一的主机名(或" / group / site-name"用于私人页面)。

当您要求所有用户帐户时,这有点困难。想到的一些解决方案:

  • 如果您的用户数量有限且很少添加新用户,那么Apache级重写可能会有意义。
  • ServletFilter(您可以添加为插件)可以帮助解析所需的页面并重写Liferay内部。这样做的好处是可以完全响应当前现有的用户帐户 - 只要有新用户,就可以解析他们的页面。确保不允许用户名虽然会与Liferay路径发生冲突 - 例如" c"," web"," group"," images"," html"等
  • 如果您希望内部生成的所有链接都指向用户的主页,则可能需要覆盖Liferay的某些服务。您必须找到生成URL的位置(如果没有从db读取)并覆盖它。我期待一个简单的服务覆盖就足够了,但是没有看到它

答案 1 :(得分:0)

你的.htaccess

中的

RewriteEngine On RewriteRule ^$ /web [L]