SEO在WebSphere Portal中(页标题)

页面标题

有没有办法来dinamically更改页面标题在运行时?

我知道,你可以在门户级别更改页面的标题,但这种方法不提供任何SEO的价值,因为它并不在页面更改标题标签。

对于我所看到的方式改变了门户网站的标题是非常静态的(这些是全局设置):

  • 在主题策略更改bannerTitleText
  • 如果这是不存在调整bannerTitleTextResourceBundle和bannerTitleTextResourceKey为需要的值。
  • 否则,在主题配置全局设置的标题

我们的目标是能够设置标题在页级,以便它可以从页改变页和包括的相关页面的关键字。

其实,如果这可以从WCM做这将是最为理想的。

更新

我注意到,在WebSphere Portal中6.1.5的默认主题是附加的网页标题,所以检查的主题,肯定够了jspInit.jspf有一些以下新方法:

private static com.ibm.portal.state.service.PortalStateManagerServiceHome portalStateManagerServiceHome; // (This goes in the jspInit constructor) portalStateManagerServiceHome = (com.ibm.portal.state.service.PortalStateManagerServiceHome) ctx.lookup("portal:service/state/PortalStateManager"); protected com.ibm.portal.state.service.PortalStateManagerService getStateManagerService( javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws Exception { final com.ibm.portal.state.service.PortalStateManagerService psms = portalStateManagerServiceHome.getPortalStateManagerService( (javax.servlet.http.HttpServletRequest) request, (javax.servlet.http.HttpServletResponse) response ); return psms; } protected boolean isStaticPage( javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException { final com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider(); final com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response); final com.ibm.portal.navigation.NavigationNode currentNavNode = (com.ibm.portal.navigation.NavigationNode) nsm.getSelectedNode(); final com.ibm.portal.content.ContentNode currentContentNode = currentNavNode.getContentNode(); return currentContentNode.getContentNodeType().equals( com.ibm.portal.content.ContentNodeType.STATICPAGE ); } protected com.ibm.portal.navigation.NavigationNode getSelectedNode( final javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException { com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider(); com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response); return (com.ibm.portal.navigation.NavigationNode) nsm.getSelectedNode(); } protected String getSelectedNodeTitle( final javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException { final String title; if ( localizedContextHome != null ) { com.ibm.portal.model.LocalizedContext context = localizedContextHome.getLocalizedContext( (javax.servlet.http.HttpServletRequest) request ); title = context.getTitle( getSelectedNode( request, response ) ); } else { title = ""; } return title; }

添加这个我能够在head_title.jspf从6.1.5主题复制后; 其中包括以下新行:

<c:set var="selectedNodeTitle" value="<%=getSelectedNodeTitle(request, response)%>" /> <title><c:out value="${siteTitle} - ${selectedNodeTitle}"/></title>

现在,所有剩下的就是找出从WCM获取此的一种方式。

--------------解决方案-------------

我将覆盖WCM缺少的一部分,因为我已经实现了。 我可以给你所需的信息,但没有准备好代码。 这仅仅是从一个流读取和写入到其他反正所以你应该能把握的想法。 使用门户网站6.1最合理的方式是开发这一要求一个Servlet过滤器。 你想要做的是:

  1. 作出这样打印出来要注入到HTML头的正确信息WCM组件。 这最典型的手段,例如导航组件打印当前的路径/称号。
  2. 这些组件添加到您的演示文稿模板。 你想它可能是使用HTML注释标记是什么<!-- -->还有一些方案可以从生成的HTML以后解析。
  3. 建立一个Servlet过滤器从ServletResponse的读取整个页面,如果是HTML / XHTML(使用MIME类型)。 解析意见,而你做到这一点。 现在,改写了新的一页在HTML格式的标题部分正确的标签。
  4. 重新注入其此时对SEO正确的HTML头新的响应页面。

不幸的是,这是你必须采取的方式。 有没有隐藏的连/私有的API,允许你把你从WCM呈现portlet“应用程序上下文想要的东西,并把它放到HTML头。 此外,你必须到Servlet过滤器添加到WPS应用程序。 这里的一个常见的​​问题是,你有你编辑web.xml后重新部署它。

该Servlet过滤器的性能影响可以忽略不计(总共只有几个百分比)和简单的方式工作。 在我的经验,它工作得很好的搜索引擎优化的目的,你可以从几乎任何WCM信息这种方式。

我只是想更新这个问题提到,有一个新的功能,使一个更好的方式来实现这一相同的目标。

新的Web内容查看器(286)采用了JSR 286叫了两个阶段在其中创建一个新的事件称为doHeaders渲染优势的新功能。 下doHeaders事件的响应可以以在头部添加元素如标题进行修改。

现在,Web内容查看器提供的页面显示标题设定,使您从内容做一个选择

现在,所有剩下的真的是让我们的开发人员设置为从Web内容的其他元素,如:典型元素/链接,meta标签等,但我认为,新的Web内容文件夹功能可以使我们能够建立在主题层面的东西。

好运来SEO每个莲花有意识的Web内容管理开发人员在那里。

分类:搜索引擎优化 时间:2012-06-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.808 (s). 9 q(s)