`

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路径的方法

    NULL 博文链接:https://snowelf.iteye.com/blog/739060

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

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

    opencms开源javacms系统部署包

    opencms开源javacms系统部署包

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

    NULL 博文链接:https://shan1234567.iteye.com/blog/913989

    opencms去掉两个tomcat

    主要讲述在opencms下apache和tomcat配置,去掉两个opencms

    开源内容管理系统OpenCms的研究与应用

    开源内容管理系统OpenCms的研究与应用

    opencms9 java api

    opencms 中文网提供的java api 文档包

    OpenCms 中文用户手册【pdf 格式,译:胡楠】

    opencms 是公认的经典的开源、免费使用的 Java 开发的 cms。app、src、api 完全免费下载,可惜全是英文版的,让 N 多国内程序员无法开发其强大功能。 胡楠先生写的这本《OpenCms 中文用户手册》,为中国程序员打开了...

    opencms配置去掉2个opencms总结

    NULL 博文链接:https://daichangfu.iteye.com/blog/1391964

    OpenCMS内容管理入门指南

    OpenCMS内容管理入门指南,对使用开源的基于java、xml技术OpenCMS构建网站做了详细的说明

    OpenCms6.2千寻汉化包1.1版

    作者会陆续出一些OpenCms相关的东东与大家共享……:) OpenCms是一个专业级开源网站内容管理系统,是一个J2EE的产品,完全基于Java的servlet技术写成,目前最新版本是6.2,官方网站:http://www.opencms.org...

    OpenCms使用手册

    OpenCms中文使用手册,最新版,详细介绍OpenCms工作区使用及部署网站

    Eclipse中引用opencms

    OpenCms是一个专业级、开源Java CMS(内容管理系统),由Alkacon公司发起和维护,OpenCms完全基于Java和XML技术实现,内容维护方便、直观,类型定义简单、快速,基于Jsp的模板机制强大、灵活,OpenCms扩展机制可以很好...

    OpenCMS开发Eclipse插件(新增支持OpenCMS7.5)

    对插件info.rsdev.eclipse.opencms.module.developer进行了功能增强,实现了按选择了项目/目录/文件进行上传;不上传传"."/"test"开头的内容;增加只对classes目录的上传\发布,本版新增支持OpenCMS7.5以上版本

    OpenCms 8.0.0 SRC.zip

    OpenCms是一个专业级别的开源网站内容管理系统。OpenCms可以非常容易的帮助建立和管理复杂的网站而无需专业的HTML知识。当使用一个复杂的模板引擎来规划站点,它提供一个类似于我们熟知的office应用的所见即所得编辑...

    OpenCms 8.0.2.zip

    OpenCms是一个专业级别的开源网站内容管理系统。OpenCms可以非常容易的帮助建立和管理复杂的网站而无需专业的HTML知识。当使用一个复杂的模板引擎来规划站点,它提供一个类似于我们熟知的office应用的所见即所得编辑...

    [CMS程序]OpenCms中文用户手册_opencmshandbook

    [CMS程序]OpenCms中文用户手册_opencmshandbook

    整理的OpenCms7使用手册

    我整理的OpenCms7使用手册,从网上别人的bolg里提取的,如果需要原出处请看里面有具体的链接。

    openCMS 使用手册

    openCMS是一个使用java开发的内容管理系统,他的功能非常强大,适合用来建立比较大规模的网站。

Global site tag (gtag.js) - Google Analytics