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

RIA知识库 
flex 
RIA 

http://opencms-wiki.org/Removing_the_/opencms/opencms_prefix_without_using_Apache
---------------------------------------------------------------------------------------------------------------------------------------------

第一步:去掉第一个/opencms

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

(方法二)
在tomcat\conf\server.xml 中找到以下配置片断:

<Host name="localhost" appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
      ......
</Host>


修改以上配置,然后在<Host></Host>之间加入一行配置,最后形式如下:

<Host name="localhost" appBase="webapps"
           unpackWARs="true" autoDeploy="false"
           xmlValidation="false" xmlNamespaceAware="false" deployOnStartup="false">
  <Context  path=""  docBase="C:\apache-tomcat-5.5.25\webapps\opencms" /> 
      ......
</Host>



在tomcat\webapps\opencms\WEB-INF\web.xml 中找到以下配置片断:

  <context-param>
        <param-name>DefaultWebApplication</param-name>
        <param-value>ROOT</param-value>
  </context-param> 



把以上配置片断修改为以下形式:

  <context-param>
        <param-name>DefaultWebApplication</param-name>
        <param-value>opencms</param-value>
  </context-param> 


重新启动 Tomcat 服务,利用 http://localhost:8080/opencms 访问默认站点,如果出现如图
------------------------------------------------------------------------- 

去掉第二个/opencms

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

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

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


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

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

附件一:urlrewrite.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>  
    <rule>  
        <from>^/tc-mgr/(.*)$</from>  
        <to>/tc-mgr/$1</to>  
    </rule> 
  <rule>
   <condition type="request-uri" operator="notequal">^/export/.*$</condition>
   <condition type="request-uri" operator="notequal">^/resources/.*$</condition>
   <condition type="request-uri" operator="notequal">^/opencms-errorhandler/.*$</condition>
   <condition type="request-uri" operator="notequal">^/webdav/.*$</condition>
   <condition type="request-uri" operator="notequal">^/opencms/.*$</condition>
   <condition type="request-uri" operator="notequal">^/setup/.*$</condition>
   <from>^/(.*)$</from>
   <to>/opencms/$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>

	 <init-param>
	  <param-name>confReloadCheckInterval</param-name>
	  <param-value>-1</param-value>
	 </init-param>

	 <init-param>
	  <param-name>logLevel</param-name>
	  <param-value>ERROR</param-value>
	 </init-param>
	  
	 <init-param>
	  <param-name>statusEnabled</param-name>
	  <param-value>false</param-value>
	 </init-param>
	 
	 <init-param>
	  <param-name>statusPath</param-name>
	  <param-value>/status</param-value>
	 </init-param>
	</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的去除已成功。


http://nhy520.iteye.com/blog/713831  该链接方法在添加用户选择用户组 时候 会有页面路径经错误问题

 

你可能感兴趣的:(apache,tomcat,xml,Web,servlet)