• 2008-10-17

    使用urlrewrite去掉/opencms/opencms/ - [opencms配置]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://opencms.blogbus.com/logs/30326157.html

    opencms文档中有关于去掉两个opencms路径的方法,但需要安装并配置apache,对于使用空间的朋友来说,这是个不小的问题,所以今天向大家介绍一下使用urlrewrite去掉opencms的方法。

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

     

    首先我是把opencms安装在ROOT下的,这样可以在web.xml把第一个/opencms去掉,这样不会影响opencms的运行,需要注意的是,web.xml中有两处/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文件,里面的内容为:

    <?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/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>

    至此,已完成了第二个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的去除已成功。


    历史上的今天:


    收藏到:Del.icio.us