`

java 开源cms opencms的使用,如何去掉两个/opemcms路径的方法

阅读更多

哈哈。。。经过本人测试成功:

 

买空间的朋友,因为无法配置apache配置,所以得用urlRewrite.jar来url重写的方式,去掉/opencms

我的环境是:JDK6.0 ,TOMCAT 6

 

第一步:去掉第一个/opencms

 

把下载来的opencms.jar改成ROOT.jar包,放在tomcat/webapps下,运行安装。。这样第一个/opencms 自然就去掉了,不用什么力气,也不用配置什么别的,如果您不想把opencms放了ROOT目录,也可以像其它人一样,配置虚拟目录来设置,在baidu搜索一下就有很多方法去掉第一下opencms

 

 

第二步:去掉第二个/opencms  也是我们要处理的关键部分。

现在的任务是要去掉第二个,opencms文档中,是安装apache,并使用apache的urlrewrite模块来对项目的URL进行重定向, 现在我们要使用 urlrewrite来完成这任务,如果不知道urlrewrite的朋友,可以到http://tuckey.org/urlrewrite/下载。

 下载完以后,把urlrewrite.zip里面的/WEB-INF/lib/urlrewrite.jar放到我们项目的/WEB-INF/lib/urlrewrite.jar里。

然后,在/WEB-INF/目录下新建一个urlrewrite.xml文件,里面的内容为:

 

注意一定要下载:urlrewrite-3.1.0.jar 版本,因为我之前使用的其它版本,没有成功。后台页面乱码。

 

附件一:urlrewrite.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
"http://tuckey.org/res/dtds/urlrewrite3.1.dtd">

<!--

Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/

-->
<urlrewrite>
<rule>
<from>^/(.*)</from>
<to>/opencms/$1</to></rule>

 

<rule>
<from>^/opencms/webdav/(.*)</from>
<to>/webdav/$1</to></rule>

 

[备注:这个是为了后面学习在eclipse导入webdav时用的,只有匹配了这种的规则,才可以通过http://localhost:8080/webdav 访问,否则无法访问资源。此备注,在copy时要删除。]

 

<rule>
<from>^/opencms/opencms/(.*)</from>
<to>/ztend/$1</to></rule>

<rule>
<from>^/opencms/resources/(.*)</from>
<to>/resources/$1</to></rule>

<rule>
<from>^/opencms/export/(.*)</from>
<to>/export/$1</to></rule>
</urlrewrite> 

 

创建好以后,打开/WEB-INF/web.xml文件,找到以下代码:

    <listener>
        <listener-class>org.opencms.main.OpenCmsListener</listener-class>
    </listener>

 

然后在其后面加上:

    <filter>
       <filter-name>UrlRewriteFilter</filter-name>
       <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

 

附本人:web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
 version="2.4">

    <display-name>OpenCms</display-name>
   
    <description>
        OpenCms, the Open Source Content Management System.
        (c) 2010 Alkacon Software GmbH with contributions from the OpenCms community.
        For more details about OpenCms, please see http://www.opencms.org/.
        For more details about Alkacon Software GmbH, please see http://www.alkacon.com/.   
    </description>

    <!--
        Changing the servlet name from "opencms" to something else requires 2 changes in this file.       
        For example, to change the servlet name to "mycms" you must:
       
        1. Change the <context-param> called "OpenCmsServlet" from "/opencms/*" to "/mycms/*"
        2. Change the <servlet-mapping> for "OpenCmsServlet" from "/opencms/*" to "/mycms/*"
    -->
   
    <!--
     Changing the errorhandler servlet name from "opencms-errorhandler" to something
  else requires 3 changes in this file.
  For example, to change the servlet name to "mycms-errorhandler" you must:

  1. Change the <servlet-mapping> for "OpenCmsServletErrorHandler" from
     "/opencms-errorhandler/*" to "/mycms-errorhandler/*"
  2. Change the <error-page> setting for the 404 error from
     "/opencms-errorhandler/handle404" to "/mycms-errorhandler/handle404"
  3. Change the <error-page> setting for the 500 error from
        "/opencms-errorhandler/system/handler/handle500.html" to
        "/mycms-errorhandler/system/handler/handle500.html"
    -->

    <context-param>
        <param-name>OpenCmsServlet</param-name>
        <param-value>/opencms/*</param-value>
    </context-param>
   
    <context-param>
        <param-name>DefaultWebApplication</param-name>
        <param-value>ROOT</param-value>
    </context-param>   
   
 <!--
     Uncomment this parameter in case you change the web application context using an application server
     specific deployment descriptor. E.g. in Jboss, you could use the jboss-web.xml file to deploy opencms under the
     context 'myopencms' but still keep the files in the folder 'opencms.war'

    <context-param>
        <param-name>WebApplicationContext</param-name>
        <param-value>myopencms</param-value>
    </context-param>
    -->

    <listener>
        <listener-class>org.opencms.main.OpenCmsListener</listener-class>
    </listener>
   
     <filter>
   <filter-name>UrlRewriteFilter</filter-name>
   <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>UrlRewriteFilter</filter-name>
   <url-pattern>/*</url-pattern>
   </filter-mapping>

       
    <servlet>
        <description>
            The main servlet that handles all requests to the OpenCms VFS. 
        </description>
        <servlet-name>OpenCmsServlet</servlet-name>
        <servlet-class>org.opencms.main.OpenCmsServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
   
    <servlet>
        <description>
            The error handling servlet, also serves as trigger for static export requests. 
        </description>
        <servlet-name>OpenCmsServletErrorHandler</servlet-name>
        <servlet-class>org.opencms.main.OpenCmsServletErrorHandler</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>   

    <servlet>
        <description>
            Creates an access to OpenCms through WebDAV.
        </description>
        <servlet-name>OpenCmsWebDavServlet</servlet-name>
        <servlet-class>org.opencms.webdav.CmsWebdavServlet</servlet-class>
        <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
          <param-name>readonly</param-name>
          <param-value>false</param-value>
        </init-param>
        <init-param>
          <param-name>repository</param-name>
          <param-value>standard</param-value>
        </init-param>
    </servlet>
   
    <servlet-mapping>
        <servlet-name>OpenCmsServlet</servlet-name>
        <url-pattern>/opencms/*</url-pattern>
    </servlet-mapping>
   
    <servlet-mapping>
        <servlet-name>OpenCmsServletErrorHandler</servlet-name>
        <url-pattern>/opencms-errorhandler/*</url-pattern>
    </servlet-mapping>
   
    <servlet-mapping>
      <servlet-name>OpenCmsWebDavServlet</servlet-name>
      <url-pattern>/webdav/*</url-pattern>
    </servlet-mapping>
   
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index_export.html</welcome-file>
    </welcome-file-list>
   
    <error-page>
        <error-code>404</error-code>
        <location>/opencms-errorhandler/handle404</location>
    </error-page>

 <error-page>
        <error-code>500</error-code>
        <location>/opencms-errorhandler/system/handler/handle500.html</location>
    </error-page>

 <jsp-config>
     <taglib>
         <taglib-uri>http://www.opencms.org/taglib/cms</taglib-uri>
         <taglib-location>/WEB-INF/opencms.tld</taglib-location>
     </taglib>
 </jsp-config>

</web-app>

 

 

第三步:

至此,已完成了第二个opencms的去除,但如果此时运行项目的话,项目中的URL地址还是会有/opencms/,所以我们要把URL中的这个路径去掉。

 

 

打开/WEB-INF/config/opencms-importexport.xml

找到代码:<vfs-prefix>${CONTEXT_NAME}${SERVLET_NAME}</vfs-prefix>

将其修改为: <vfs-prefix>${CONTEXT_NAME}</vfs-prefix>

现在,第二个opencms的去除已成功。

 

 

我的小站:http://www.lsoba.com

 

 

分享到:
评论
2 楼 lldss 2011-02-12  
[color=red]上传图片的路径没有修改过来。路经里面还是多个OPENCMS。老师有没有办法把这个BUG修改过来呢?[/color]
1 楼 wangyi878750 2010-07-24  
不错不错
这个工作做得很有意义!

相关推荐

    opencms 去掉两个/opemcms路径的方法

    标题 "opencms 去掉两个/opencms路径的方法" 涉及的是在OpenCMS系统中修改URL结构的问题,通常是为了优化用户体验和搜索引擎优化(SEO)。OpenCMS是一款开源的内容管理系统,它允许用户通过Web界面创建、管理和发布...

    opencms路径去掉两个opencms的方法总结

    本文将详细探讨如何通过不同的方法去除URL中的冗余“opencms”,以实现更加简洁和友好的路径。 1. **配置Web服务器** - 如果你使用的是Apache HTTP Server,可以编辑`httpd.conf`文件,通过重写规则来修改URL。...

    opencms应用中去掉路径中的两个/opencms

    干货,opencms应用中去掉路径中两个/opencms。利用urlrewritefilter,网上方法走不通,自己琢磨得出,完美去除。官方文档中方法会带来一些问题。 学习过程中使用了很多积分,各位不缺的话,支援下。实在没有积分又很...

    18个Java开源CMS系统一览.doc

    ### Java开源CMS系统知识点概述 #### 1. InfoGlue - **简介**: InfoGlue是一款采用Java语言编写的高级内容管理系统(CMS),以其高度可扩展性和稳健性著称。 - **特点**: - 完全支持多语言环境,满足国际化需求。 ...

    18个 Java开源 CMS系统 一览 1

    以下是对18个Java开源CMS系统的详细概述,这些系统不仅提供了强大的功能,还拥有活跃的社区支持,是企业和个人进行网站建设和内容管理的理想选择。 1. **InfoGlue**:InfoGlue是一款基于Java的全面内容管理系统,它...

    opencms开源javacms系统部署包

    opencms开源javacms系统部署包

    Java开源CMS系统.docx

    Java 开源 CMS(内容管理系统)是指使用 Java 语言开发的开放源代码的内容管理解决方案。这些系统为企业和个人提供了一种高效的方式来创建、编辑、管理和发布数字内容,如网页、博客、新闻、论坛等。以下是一些知名...

    Java开源CMS系统.pdf

    Java 开源内容管理系统(CMS)是用于构建和管理网站内容的软件平台,它们通常基于Java编程语言和相关的J2EE(Java 2 Platform, Enterprise Edition)标准。这些系统提供了丰富的功能,如多语言支持、内容重用、集成...

    网站建设系统解决方案Java开源CMS系统.pdf

    Java开源内容管理系统(CMS)是用于构建和管理网站的强大工具,尤其适合企业级应用。它们通常基于Java技术和J2EE架构,确保了系统的稳定性和可扩展性。以下是一些知名的Java开源CMS系统的详细介绍: 1. **InfoGlue*...

    Java开源CMS内容管理系统大全.pdf

    3. **OpenCms**: OpenCms 是一个基于 J2EE 的 CMS,使用 Java 开发,并与 Tomcat 结合。它支持多种数据库,如 Oracle、SQL Server、Sybase 和 MySQL。新版本改进了模板引擎,增加了 JSP 支持和连接管理系统,增强了...

    Java开源CMS内容管理系统大全.docx

    Java 开源 CMS(内容管理系统)是企业或组织用于创建、管理和发布数字内容的软件平台。以下是一些基于 Java 的开源 CMS 系统的详细介绍: 1. **InfoGlue**: InfoGlue 是一个高度可扩展和稳定的 CMS,完全使用 Java ...

    opencms9 java api

    OpenCMS 是一个开源的内容管理系统(CMS),主要由Java语言开发,专为构建企业级网站提供了一个强大而灵活的平台。其Java API 提供了丰富的功能,使得开发者可以通过编程方式与OpenCMS系统进行交互,实现内容的创建...

    opencms配置去掉2个opencms总结

    标题中的“opencms配置去掉2个opencms”指的是在OpenCms系统中,可能有用户想要移除或禁用两个特定的OpenCms组件或功能,可能是出于优化性能、减少冗余或者简化系统的考虑。OpenCms是一款开源的内容管理系统,它允许...

    OpenCms创建网站过程图解——献给OpenCms的初学者们

    OpenCms是一款开源的内容管理系统(Content Management System, CMS),它基于Java技术,主要用于构建和管理复杂的多语言网站。OpenCms提供了强大的功能集,包括内容管理、工作流、版本控制等,非常适合企业和组织用来...

    OpenCms使用手册

    OpenCms是一款开源的内容管理系统(Content Management System, CMS),适用于构建和管理复杂的多语言网站。它支持多种数据库,并且具有灵活的内容管理功能,使其成为企业和组织进行网站建设和内容管理的理想选择。 #...

    tomcat服务器以url重写的方式除去两个opencms

    "Tomcat服务器以URL重写的方式除去两个opencms"的主题聚焦于如何在OpenCms平台上通过URL重写技术来改善网站的URL结构,以提高其可读性并促进搜索引擎的抓取。OpenCms是一款开源的内容管理系统,它允许开发者创建、...

    cms书籍 OpenCms 7 Development.pdf

    OpenCms是一个基于Java技术的开源内容管理解决方案,它提供了一个强大的平台来创建、管理和发布数字内容。在本书中,读者将深入理解OpenCms 7的核心功能和开发流程。 1. **OpenCms概述**:OpenCms是一个开源的内容...

Global site tag (gtag.js) - Google Analytics